【问题标题】:Bigquery Tier 1 exceeded for partitioned table but not for by day tables分区表超出 Bigquery 第 1 层,但按天表未超出
【发布时间】:2017-10-11 03:00:23
【问题描述】:

我们在 bigquery 中有两个表:一个很大(几十亿行),以“每天一个表”为基础,另一个是日期分区的,具有完全相同的架构,但只有一小部分行(约 1 亿行)。

我想在小型分区数据集上运行一个(标准 SQL)查询,其中包含一个连接形式的子选择(当子选择位于 where 子句中时也是如此)。我无法运行它,因为超过了第 1 层。 如果我在大数据集(包含我需要的数据和许多其他数据)上运行相同的查询,它运行良好。 我不明白这是为什么。 是不是因为:

  1. 分区表需要更多资源来查询
  2. Bigquery 有一些内部规则,即处理的数据与所需资源的比率必须达到某个阈值,即在我需要的资源量的情况下查询小数据集时我支付的费用不够。

如果 1. 为真,我们可以简单地使小数据集也以“每天表”为基础,以解决问题。但在我们这样做之前,虽然我们想知道它是否真的能解决我们的问题。

查询详情:

  1. 大数据集

查询 11 GB,运行 50 秒,作业 ID remilon-study:bquijob_2adced71_15bf9a59b0a

  1. 小数据集

工作 ID remilon-study:bquijob_5b09f646_15bf9acd941

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    我是 BigQuery 的一名工程师,我刚刚查看了您的工作,但您的第二个查询似乎有一个额外的过滤器,其中包含您的第一个查询没有的嵌套子句。额外的处理很可能使您的查询超出您的层级。我建议在 BigQuery UI 中运行查询并查看 Explanation 选项卡,以了解查询在查询计划中有何不同。

    如果您尝试对两个表运行 exact 相同的查询(仅修改分区语法)并且仍然得到相同的错误,我建议您提交一个错误。

    【讨论】:

    • 谢谢,我们将提交错误报告。只是为了验证我重新编写并重新运行了查询。不适用于分区表:remilon-study:bquijob_68c6ac66_15c2173cde0,每天使用表:remilon-study:bquijob_78abd25f_15c217618a7。两者都包含来自与外部查询相同的表的子查询。
    猜你喜欢
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    相关资源
    最近更新 更多