【问题标题】:Bigquery query fails “Resources exceeded during query execution: Table metadata used for the query is too large”Bigquery 查询失败“查询执行期间资源超出:用于查询的表元数据太大”
【发布时间】:2019-06-13 19:57:12
【问题描述】:

我遇到了错误

“查询执行期间资源超出:表元数据用于 查询过大”

执行此查询时:

SELECT
  EXACT_COUNT_DISTINCT(a.id)
FROM (
  SELECT
    id
  FROM (TABLE_DATE_RANGE([*****],
        TIMESTAMP('2019-4-1'),
        TIMESTAMP('2019-4-22')))
  GROUP BY
    id) AS a
JOIN (
  SELECT
    id
  FROM (TABLE_DATE_RANGE([*****],
        TIMESTAMP('2017-1-1'),
        TIMESTAMP('2018-12-31')))
  GROUP BY
    id) AS b
ON
  a.id = b.id

如果我将 TIMESTAMP('2017-1-1'),TIMESTAMP('2018-12-31') 更改为 TIMESTAMP('2018-1-1'),TIMESTAMP('2018-12-31') ,它将起作用。在不更改 TIMESTAMP 的情况下我能做些什么来修复它?

【问题讨论】:

    标签: sql google-bigquery legacy-sql


    【解决方案1】:

    首先,您为什么使用旧版 SQL 而不是标准 SQL?

    其次,您通过id 聚合每个子查询,因此没有重复。您不需要在外部查询 COUNT(*) 中计算不同的 id 做同样的事情。这可能会解决问题。

    【讨论】:

    • 为什么旧版 SQL 不能工作,而标准 SQL 可以?限制标准不同?
    • @Evan.Chen 。 . . Legacy SQL 顾名思义——旧版本的 SQL。 Google 已经努力创建一个更加标准兼容的界面,并在该界面中提供了新功能。你应该使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    相关资源
    最近更新 更多