У меня есть некоторые опасения по поводу 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)
Что я пропустил?