doushui3216 2016-05-04 20:08
浏览 49
已采纳

golang google-bigquery v2 api指定目标表

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.

  • 写回答

1条回答 默认 最新

  • dongshi4773 2016-05-04 20:14
    关注

    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"
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?