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

时间:2016-07-22 08:51:15

标签: google-api google-bigquery

我想将查询结果保存到新表中。 使用像bigquery.cloud.google这样的BigQuery在线编辑器,我可以轻松地使用来自Felipe Hoffa的micro-solution。 几秒钟内插入~1​​50.000.000行的结果。

但是如何使用" Destination Table"运行查询?参数通过BigQuery API

1 个答案:

答案 0 :(得分:3)

使用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();
[...]