golang google-bigquery v2 api指定目标表

时间:2016-05-04 20:08:51

标签: go google-bigquery

我正在尝试使用google bigquery v2 api来运行查询作业并将查询结果集存储到另一个bigquery表中,我没有找到任何关于如何在v2 api的go包装器中执行此操作的文档或示例。我可以看到有一种方法可以在原始REST api有效负载中指定目标表,但需要让它在运行中工作。

1 个答案:

答案 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"
}