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 来轮询作业的状态,例如running
、failed
、done
等
JobConfig
对象是您在要运行作业时传递给Job
的对象。这个对象封装了你工作的所有细节,例如它可能包含使用 QueryJob 等时要运行的 SQL。
希望这会有所帮助。
【讨论】:
感谢您的回复,但如果您参考他们提供的链接Job Class
也需要 bigquery 客户端作为参数,并且在文档中它特别指出异步这给我带来了困惑,因为我可以这样做通过在job.QueryJobConfig
中设置priority
参数并将配置传递给Client
的query
方法来处理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 创建范围分区表