BigQuery:使用标准 SQL 查询多个数据集和表
Posted
技术标签:
【中文标题】BigQuery:使用标准 SQL 查询多个数据集和表【英文标题】:BigQuery: Querying multiple datasets and tables using Standard SQL 【发布时间】:2016-07-25 10:24:08 【问题描述】:我的 Google Analytics(分析)数据分布在多个 BigQuery 数据集中,全部使用相同的架构。我想使用 BigQuery 的新标准 SQL 方言同时查询这些数据集中的多个表。我知道我可以像这样在一个数据库中查询多个表:
FROM `12345678`.`ga_sessions_2016*` s
WHERE s._TABLE_SUFFIX BETWEEN '0501' AND '0720'
我想不通的是如何不仅查询12345678
,还查询23456789
。
【问题讨论】:
【参考方案1】:如何使用简单的UNION
,并用SELECT
包裹它(我使用新的标准 SQL 选项对此进行了测试,它按预期工作):
SELECT
SUM(foo)
FROM (
SELECT
COUNT(*) AS foo
FROM
<YOUR_DATASET_1>.<YOUR_TABLE_1>
UNION ALL
SELECT
COUNT(*) AS foo
FROM
<YOUR_DATASET_1>.<YOUR_TABLE_1>)
【讨论】:
【参考方案2】:我相信如果表具有相同的架构,使用表通配符和联合(在bigquery中,使用逗号来实现联合功能)会很快得到你需要的东西。
select *
from
(select * from table_table_range([dataset1], date1, date2),
(select * from table_table_range([dataset2], date3, date4),
......
【讨论】:
OP 要求提供一个新的标准 SQL 示例。这是 BigQuery 的旧版 SQL。以上是关于BigQuery:使用标准 SQL 查询多个数据集和表的主要内容,如果未能解决你的问题,请参考以下文章
在 bigquery 中使用标准 sql 查询缓冲区/未分区数据
如何在 Big Query 的标准 SQL 中使用通配符为特定分区查询多个表
如何在 BigQuery 中使用标准 SQL 查询 GA RealtimeView?