BigQuery 试运行会返回啥?
Posted
技术标签:
【中文标题】BigQuery 试运行会返回啥?【英文标题】:What does a BigQuery dry run return?BigQuery 试运行会返回什么? 【发布时间】:2015-02-05 00:26:18 【问题描述】:BigQuery 文档说:
“在表的较小分区而不是一张大表上测试您的查询。如果使用 API,请验证查询的语法并使用 dryRun 标志获取数据处理统计信息。”
但他们也说,对于 dryRun:
“如果设置,则不实际运行查询。有效查询将返回空响应,而无效查询将返回与未试运行时相同的错误。默认值为 false。 "
这些似乎是矛盾的,还是我遗漏了什么?
【问题讨论】:
它将populate thetotalBytesProcessed
field in the response,定义为“为此查询处理的总字节数。如果此查询是空运行,这是运行查询时将处理的字节数。”
同意斯图尔特 - 所以标志的文档充其量是很差的(我会说它完全是错误的)。
澄清一下——“空响应”与“数据处理统计”似乎是矛盾的。
请注意,即使设置了dry_run
,查询也可能返回尚未完成的作业,这会带来额外的复杂性。请参阅 Returns:
字段以获取 this attribute from Python API docs
【参考方案1】:
我发现这些有点不同步,需要澄清一下。
这是对dryRun
的另一种更准确的描述。从https://cloud.google.com/bigquery/docs/reference/v2/jobs,搜索dryRun:
[可选] 如果设置,则不实际运行此作业。一个有效的查询将 返回带有一些处理统计信息的大部分为空的响应,而 一个无效的查询将返回相同的错误,如果它不是 空跑。非查询作业的行为未定义。
看起来https://cloud.google.com/bigquery/launch-checklist 文档只是在两个独立建议之间缺少一个要点。
我已经记录了一个内部跟踪错误以进行清理。感谢您提请我们注意!
【讨论】:
【参考方案2】:不,这并不矛盾。
在我看来,第一条消息是“尝试通过打开“试运行”标志来查看您的查询是否可以运行”。
虽然第二条消息说“如果您将 DryRun 标志设置为 true,它将返回有关您的查询的统计信息,因此“totalBytesProcessed”,如果查询有效,则不会运行您的查询,并且出现与您相同的错误查询无效正常接收”
因此,将“试运行”视为语法检查器/错误检查/检查处理的字节。
【讨论】:
但它不会返回任何内容,它会返回“数据处理统计”,即将要处理的字节数。因此,标志本身的文档充其量只是误导。 在这里@GrahamWheeler,我在答案中添加了 Stuartd 的部分并将其切换到“communityWiki”,所以如果你想接受这个而不是你的,我不会得到任何代表 ^ ^以上是关于BigQuery 试运行会返回啥?的主要内容,如果未能解决你的问题,请参考以下文章
在链接到 BigQuery 之前,有啥方法可以访问 Firebase 原始事件数据?