首页 > 解决方案 > 来自参数的 BigQuery 数据集和项目 ID

问题描述

我希望能够为 BigQuery 查询注入数据集和项目 ID。例如:

SELECT
  COUNT(1)
FROM @ProjectId.@DataSet.`StackOverflowPosts`
WHERE occurredAt > '2020-01-01 00:00:00'

有谁知道这是否可能?

标签: google-bigquery

解决方案


截至 2020 年 5 月 20 日,BigQuery为您发布了动态 SQL 功能以实现目标。

Dynamic SQL 现在作为测试版在所有 BigQuery 区域提供。动态 SQL 允许您在运行时动态生成和执行 SQL 语句。有关详细信息,请参阅立即执行

您的查询可以写成

EXECUTE IMMEDIATE CONCAT(
  "SELECT COUNT(1)",
  "FROM ", @ProjectId, ".", @DataSet, ".`StackOverflowPosts`"
  "WHERE occurredAt > '2020-01-01 00:00:00'"

推荐阅读