我正在尝试使用google bigquery v2 api来运行查询作业并将查询结果集存储到另一个bigquery表中,我没有找到任何关于如何在v2 api的go包装器中执行此操作的文档或示例。我可以看到有一种方法可以在原始REST api有效负载中指定目标表,但需要让它在运行中工作。
答案 0 :(得分:3)
请参阅此处的文档package bigquery
下面是一个简单的例子。希望这会给你正确的方向
import "google.golang.org/api/bigquery/v2"
bigqueryService, err := bigquery.New(oauthHttpClient)
if(err != nil) {
return "ERROR"
}
var projectId = "your-project"
var datasetId = "your-dataset"
var tableId = "your-table"
var queryText = "your-query"
var writeDisposition = "WRITE_TRUNCATE"
job := &bigquery.Job{
Configuration: &bigquery.JobConfiguration{
Query: &bigquery.JobConfigurationQuery{
DestinationTable: &bigquery.TableReference{
DatasetId: datasetId,
ProjectId: projectId,
TableId: tableId,
},
Query: queryText,
WriteDisposition: writeDisposition,
},
},
}
call := bigqueryService.Jobs.Insert(projectId, job)
job, err2 := call.Do()
if err2 != nil {
return "ERROR"
}
//check job status
var jobid = job.JobReference.JobId
bqjob, err3 := bigqueryService.Jobs.Get(projectId, jobid).Do()
if(err3 != nil) {
return "ERROR"
}