Вставка результатов запроса в существующую таблицу BigQuery - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть некоторые опасения по поводу QueryConfig в Go. Он говорит, что:

WriteDisposition указывает, как обрабатываются существующие данные в целевой таблице. По умолчанию это WriteEmpty.

Так что я предполагаю, что всякий раз, когда таблица назначения существует, она автоматически добавляет результат в существующую таблицу вместо создания новой таблицы. Тем не менее, на моей стороне он создает новую таблицу, которая собирается поднять исключение tableID already exists.

Вот мой пример кода:

ctx := context.Background()
client, err := bigquery.NewClient(ctx, projectID)
if err != nil {
   return fmt.Errorf("bigquery.NewClient: %v", err)
}
defer client.Close()
query := SELECT * FROM `projectID.datasetID.tableID`
q := client.Query(query)
q.QueryConfig.Dst = client.Dataset(datasetID).Table(tableID)
job, err := q.Run(ctx)
if err != nil {
return err
}
 status, err := job.Wait(ctx)
 if err != nil {
    return err
}
if err := status.Err(); err != nil {
   return err
}
it, err := job.Read(ctx)

Что я пропустил?

1 Ответ

1 голос
/ 24 февраля 2020

Получил ответ, прочитав большой запрос Go Документация. https://godoc.org/cloud.google.com/go/bigquery#TableWriteDisposition

Добавлена ​​эта строка кода для установки QueryConfig WriteDisposition для добавления данных в существующую таблицу

q.QueryConfig.WriteDisposition = "WRITE_APPEND"

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...