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?

如何查询 BigQuery 视图和表的依赖关系?

Google BigQuery SQL:使滚动平均子查询或加入对大型数据集更有效

无法识别的名称:使用 bigquery 标准 sql 进行嵌套查询时出错