如何将BigQuery查询结果保存到另一个表中?

问题描述:

我想将查询结果保存到新表中。 使用BigQuery在线编辑器如bigquery.cloud.google,我可以很容易地通过Felipe Hoffa的micro-solution来完成。 用几秒钟插入〜150.000.000行的结果。如何将BigQuery查询结果保存到另一个表中?

但是,我如何通过BigQuery API运行带有“Destination Table”参数的查询

+0

设置configuration.query.destinationTable *在作业配置字段,然后调用jobs.insert? https://cloud.google.com/bigquery/docs/reference/v2/jobs/insert有更多信息。 – shollyman

通过使用Jobs.insert API调用。

例如,在Java:

[...] 
TableReference tableRef = new TableReference(); 
tableRef.setProjectId("<project>"); 
tableRef.setDatasetId("<dataset>"); 
tableRef.setTableId("<name>"); 

JobConfigurationQuery queryConfig = new JobConfigurationQuery(); 
queryConfig.setDestinationTable(tableRef); 
queryConfig.setAllowLargeResults(true); 
queryConfig.setQuery("some sql"); 
queryConfig.setCreateDisposition(CREATE_IF_NEEDED); 
queryConfig.setWriteDisposition(WRITE_APPEND); 

JobConfiguration config = new JobConfiguration().setQuery(queryConfig); 
Job job = new Job(); 
job.setConfiguration(config); 

Bigquery.Jobs.Insert insert = bigquery.jobs().insert("<projectid>", job); 
JobReference jobId = insert.execute().getJobReference(); 
[...]