【问题标题】:What does a BigQuery dry run return?BigQuery 试运行会返回什么?
【发布时间】:2015-02-05 00:26:18
【问题描述】:

BigQuery 文档说:

“在表的较小分区而不是一张大表上测试您的查询。如果使用 API,请验证查询的语法并使用 dryRun 标志获取数据处理统计信息。”

但他们也说,对于 dryRun:

“如果设置,则不实际运行查询。有效查询将返回空响应,而无效查询将返回与未试运行时相同的错误。默认值为 false。 "

这些似乎是矛盾的,还是我遗漏了什么?

【问题讨论】:

  • 它将populate the totalBytesProcessed field in the response,定义为“为此查询处理的总字节数。如果此查询是空运行,这是运行查询时将处理的字节数。”
  • 同意斯图尔特 - 所以标志的文档充其量是很差的(我会说它完全是错误的)。
  • 澄清一下——“空响应”与“数据处理统计”似乎是矛盾的。
  • 请注意,即使设置了dry_run,查询也可能返回尚未完成的作业,这会带来额外的复杂性。请参阅 Returns: 字段以获取 this attribute from Python API docs

标签: google-bigquery


【解决方案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”,所以如果你想接受这个而不是你的,我不会得到任何代表 ^ ^
    猜你喜欢
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 2014-02-28
    • 2012-04-07
    • 2014-12-13
    • 2021-03-23
    相关资源
    最近更新 更多