I am trying to using the google bigquery v2 api to run a query job and store the query resultset into another bigquery table, I did not find any doc or example on how to do it in the go wrapper of the v2 api. I can see there is a way to specify the destination table in the raw REST api payload, but need to make it working in the go.
See documentation here package bigquery
Below is simple example. Hope this will give you right direction
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"
}