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

我想知道BQ限制是否减少了,因为以前没有问题的视图突然抛出“查询执行期间超出资源:用于查询的表元数据太大”。

这是一个示例查询:

SELECT COUNT(*) FROM [myproject:mydataset.myview]

我的看法是:

SELECT *
FROM TABLE_QUERY([myproject:daily_mydataset],'REGEXP_MATCH(table_id, "^mytable_")')

我每个表有 61 个字段和 376 个表(在配额下)。 我删除了大约 120 个表,所以这意味着最近发生了一些变化(查询在几天前工作)。

可能旧版 SQL 的配额减少了?

注意:我试图用视图中的字段名称替换 *,它没有任何改变

谢谢

【问题讨论】:

  • 您的表中的数据量可能已经改变,而不是限制。以前您因为数据量而没有达到限制,但现在您超过了限制。
  • 我删除了 120 个表,这样我的数据就少了很多。我的意思是我只有 15M 行。我实际上尝试使用正则表达式查询 2018 年 1 月至 9 月(含),但它也失败了。表大小相当稳定(40k 行)
  • 这里遇到的问题与表元数据有关,与表内数据无关。换句话说,这与您可能已添加到表列中的描述有关,而不是与表中的行数有关。看到很多查询在一夜之间开始失败,这让我(像你一样)认为 BigQuery 中的处理逻辑发生了变化。

标签: google-bigquery quota


【解决方案1】:

我建议你尝试使用标准 SQL

#legacySQL 
SELECT * FROM TABLE_QUERY([myproject:daily_mydataset],
'REGEXP_MATCH(table_id, "^mytable_")';

完整的迁移语法可以在link中找到

如果这没有帮助,请在使用 WHERE 子句减少返回数据的大小后提供更多信息

【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多