对于分区表,超出了Bigquery第1层,但是没有用于日表

时间:2017-05-11 22:44:12

标签: google-bigquery

我们在bigquery中有两个表:一个是大表(几十亿行),每天一个表上有一个表#39;基础,另一个是日期分区,具有完全相同的模式,但行的一小部分(约1亿行)。

我想在小分区数据集上以连接形式(当subselect在where子句中时相同)运行(standard-sql)查询。我无法运行它,因为超过了第1层。 如果我对大数据集(包含我需要的数据和许多其他数据)运行相同的查询,它运行正常。 我不明白这个的原因。 是因为:

  1. 分区表需要更多资源来查询
  2. Bigquery有一些内部规则,即所处理的数据与所需资源的比率必须达到一定的阈值,即在我根据需要的资源量查询小数据集时,我的报酬不足。
  3. 如果1.为真,我们可以简单地将小数据集放在每天的表格中。基础是为了解决这个问题。但在我们这样做之前,我们想知道它是否真的能够解决我们的问题。

    查询详情:

    1. 大数据集
    2. 查询11 GB,运行50秒,Job Id remilon-study:bquijob_2adced71_15bf9a59b0a

      1. 小数据集
      2. Job Id remilon-study:bquijob_5b09f646_15bf9acd941

1 个答案:

答案 0 :(得分:0)

我是BigQuery的工程师,我刚看了一下你的工作,但看起来你的第二个查询还有一个带有嵌套子句的额外过滤器,而你的第一个查询却没有。额外的处理可能会使您的查询超出您的等级。我建议在BigQuery UI中运行查询并查看Explanation选项卡,以查看查询计划中查询的不同。

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