Bigquery - 如何将 QueryResponse 保存到表中?

Posted

技术标签:

【中文标题】Bigquery - 如何将 QueryResponse 保存到表中?【英文标题】:Bigquery - how to save QueryResponse to a table? 【发布时间】:2014-04-15 15:56:15 【问题描述】:

我正在尝试执行此操作:

  QueryRequest queryRequest = new QueryRequest().setQuery(query);
  Jobs jobs = getBigquery().jobs();
  Query queryResponse = jobs.query(PROJECT_ID, queryRequest);
  QueryResponse execute = queryResponse.execute();

如何将响应保存到表格中?我在哪里设置目标表?在创建插入作业时,我可以在 JobConfigurationQuery 中设置它。如何使用查询作业执行此操作?

【问题讨论】:

这个类似问题的答案可能会有所帮助:***.com/questions/14622526/… 这适用于插入作业。它如何用于查询作业? IE。在调用 getBigquery().jobs.query() 时?由于并发作业数量的限制,我使用查询而不是插入。 【参考方案1】:

如果要将结果保存为目标表,则需要使用 jobs.insert()。 jobs.query() 方法只是一种快捷方式,提供了一组有限的功能。在幕后,jobs.query() 的作用与jobs.insert() 完全相同。

如果您使用 jobs.insert() 达到并发作业限制,jobs.query() 将遇到完全相同的问题。也就是说,避免并发作业错误的一种方法是在查询作业中使用批处理优先级。

【讨论】:

谢谢。这就是我一直在寻找的。我对查询、插入和批处理作业感到困惑。

以上是关于Bigquery - 如何将 QueryResponse 保存到表中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 PySpark 连接到 Bigquery

如何将 JSON 文件上传到 BigQuery

如何使用气流将 bigquery 导出到 bigtable?架构问题

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

如何使用 BigQuery 连接器将自定义查询从谷歌数据工作室传递到 BigQuery?

如何将扳手 TIMESTAMP 转换为 BigQuery TIMESTAMP?