bigquery 通配符表查询不允许选择某些字段

Posted

技术标签:

【中文标题】bigquery 通配符表查询不允许选择某些字段【英文标题】:bigquery wildcard table query not allowing to select some fields 【发布时间】:2020-08-03 15:47:22 【问题描述】:

起初我将表 TableA_YYMMDD 分片,其中包含字段 ColumnA、ColumnB、TableA_20200803、TableA_20200802 等。然后出现了一个新表 TableA_B_YYMMDD,它只有 ColumnA。如何只查询TableA?我试过这个:

SELECT ColumnA, ColumnB
FROM `TableA_*`
WHERE _TABLE_SUFFIX IN ('20200803')

即使它正确计算成本,但抛出错误,ColumnB 也不存在。

【问题讨论】:

【参考方案1】:

查询通配符表时,使用与前缀匹配的最近创建的表https://cloud.google.com/bigquery/docs/querying-wildcard-tables#schema_used_for_query_evaluation。在您的情况下,使用了 TableA_B_YYMMDD 的架构,它不包含 ColumnB。

将您的前缀更新为“TableA_2020*”,使其与 TableA_B 不匹配?

【讨论】:

如何匹配1999? 在这种情况下,您必须重新设计表的名称方案,以便可以通过前缀过滤它们。此外,看起来这些是每日餐桌。为什么不使用分区表而不是通配符表?

以上是关于bigquery 通配符表查询不允许选择某些字段的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 通配符表 - 有啥限制?

从 BigQuery 中的最新表分区通配符查询

通配符表和表列中的差异

google bigquery 使用通配符表查询表集

Bigquery 如果字段存在

Google BigQuery - 将通配符表查询与日期分区表一起使用?