BigQuery:抑制“错误 404:未找到:表...”
Posted
技术标签:
【中文标题】BigQuery:抑制“错误 404:未找到:表...”【英文标题】:BigQuery: suppressing "Error 404: Not found: Table..." 【发布时间】:2017-05-15 03:18:06 【问题描述】:我有如下 BigQuery 表。
AAAAAA_yyyymmdd
BBBBBB_yyyymmdd
CCCCCC_yyyymmdd
我想检索这一分钟内插入的数据。我执行了如下 SQL。
SELECT * FROM [AAAAAA_20170515@-60000-],[BBBBBB_20170515@-60000-],[CCCCCC_20170515@-60000-]
如果所有 AAAAAA_20170515
和 BBBBBB_20170515
和 CCCCCC_20170515
都存在,但不是每天都创建所有表,则此 SQL 工作正常。
如果缺少某些表,我会收到如下错误。
Error 404: Not found: Table BBBBBB_20150515, notFound
我想忽略不存在的表。我知道我可以先检查每个表是否存在,然后构造 SQL。但是,如果我可以抑制Error 404: Not found: Table
错误以提高效率,那是可取的。
我可以吗?
【问题讨论】:
【参考方案1】:一种方法是使用Wildcard Tables with _TABLE_SUFFIX filter,尽管如果您对表有一个共同的前缀,它的性能会更好。
例如:
SELECT * from `vimota.PREFIX*` where _TABLE_SUFFIX = '_20170515';
【讨论】:
我想使用table decorator。通配符表不支持。 你是对的,目前没有办法完全按照你的要求去做。我建议像您提到的那样以编程方式执行此操作,方法是运行SELECT table_id FROM vimota.__TABLES__ WHERE table_id like '%_20170515'
,获取所有现有表并在 FROM 子句中使用它们构建查询。以上是关于BigQuery:抑制“错误 404:未找到:表...”的主要内容,如果未能解决你的问题,请参考以下文章