Вставить в BigQuery без четко определенной структуры - PullRequest
1 голос
/ 02 мая 2019

Я бы хотел вставить любой тип JSON непосредственно в BigQuery, но не нашел хорошего способа сделать это? Все способы предполагают, что у меня есть четко определенная структура, которую я вставляю. Кажется, это было возможно со старым устаревшим API, но не с новым пакетом «cloud.google.com/go/bigquery».

Мне бы хотелось, чтобы / api / table_name / insert мог принимать json любого типа и вставлять его в BigQuery, поскольку и клиент, и сервер знают схему, которую конечная точка должна просто переслать.

Спасибо

1 Ответ

2 голосов
/ 15 июня 2019

похоже, это было заменено ValueSaver, который вы можете реализовать следующим образом:

type genericRecord map[string]bigquery.Value

func (rec genericRecord) Save() (map[string]bigquery.Value, string, error) {
    insertID := uuid.New().String()
    return rec, insertID, nil
}

var data []*genericRecord
json.Unmarshal(<YOUR JSON BYTE>, &data)

ctx := context.Background()
client, err := bigquery.NewClient(ctx, <YOUR PROJECT ID>)
ins := client.Dataset(<DATASET>).Table(<TABLE>).Inserter()
ins.Put(ctx, data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...