Bigquery Async Job 与 Batch Query 有何不同?

Posted

技术标签:

【中文标题】Bigquery Async Job 与 Batch Query 有何不同?【英文标题】:How is Bigquery Async Job is different from Batch Query? 【发布时间】:2019-03-26 12:09:22 【问题描述】:

在我的应用程序中定义作业功能时,我在作业与作业类之间进行选择,批处理查询与作业类有何不同? https://googleapis.github.io/google-cloud-python/latest/bigquery/reference.html#job

【问题讨论】:

【参考方案1】:

我不是 100% 清楚你在问什么,但我会试一试。

BigQuery 中的所有 jobs 都是异步的。这意味着当您将作业提交到 BigQuery(查询、复制、加载或提取)时,作业开始在 BigQuery 服务上执行并立即返回作业 ID。然后,您可以使用该作业 ID 来轮询作业的状态,例如runningfaileddone

JobConfig 对象是您在要运行作业时传递给Job 的对象。这个对象封装了你工作的所有细节,例如它可能包含使用 QueryJob 等时要运行的 SQL。

希望这会有所帮助。

【讨论】:

感谢您的回复,但如果您参考他们提供的链接 Job Class 也需要 bigquery 客户端作为参数,并且在文档中它特别指出异步这给我带来了困惑,因为我可以这样做通过在job.QueryJobConfig 中设置priority 参数并将配置传递给Clientquery 方法来处理BATCH 查询。所以我的问题是 Job Class 的用途是什么以及它与 BATCH 查询有何不同 “作业类”是实际的异步作业。有两种类型的查询:交互式和批处理。此处解释了差异:cloud.google.com/bigquery/docs/running-queries

以上是关于Bigquery Async Job 与 Batch Query 有何不同?的主要内容,如果未能解决你的问题,请参考以下文章

Python BigQuery API - 获取表架构/标题

bigquery.job.ExtractJobConfig()

使用 Python,将 google.cloud.bigquery.job.query.QueryJob 输出保存到本地 JSON 文件

在 Bigquery 中使用 Job Config 创建范围分区表

ruby async_job_push_notification.rb

bigquery python client.run_async_query 给出错误:409 已经存在