首页 > 解决方案 > 尚不支持 BigQuery、非分区表上的通配符表和基于字段的分区表

问题描述

我正在尝试在 Bigquery 上使用标准 SQL 使用通配符表运行一个简单的查询。这是代码:

#standardSQL
SELECT dataset_id, SUM(totals.visits) AS sessions
FROM `dataset_*`
WHERE _TABLE_SUFFIX BETWEEN '20150518' AND '20210406'
GROUP BY 1

自 2015 年 5 月 18 日以来,我的分片数据集每天都包含一个表。所以今天的表格将是“dataset_20150518”。

错误是:“不支持非分区表和基于字段的分区表上的通配符表,第一个普通表 dataset_test,第一个列表 dataset_20150518。”

我尝试了不同类型的选择和聚合,但错误无法修复。我只想查询该时间范围内的所有表。

标签: google-bigquery

解决方案


这是因为在通配符中,您必须拥有具有相同架构的所有表。在您的情况下,您还添加dataset_test了与其他模式不同的模式(dataset_test是分区表吗?)

您应该能够通过删除 _test 和其他具有不同架构的表或运行以下查询来解决此限制:

#standardSQL
SELECT dataset_id, SUM(totals.visits) AS sessions
FROM `dataset_20*`
WHERE _TABLE_SUFFIX BETWEEN '150518' AND '210406'
GROUP BY 1

官方文档


推荐阅读