使用 bigquery 和 Data Studio 进行动态查询
Posted
技术标签:
【中文标题】使用 bigquery 和 Data Studio 进行动态查询【英文标题】:Dynamic query using bigquery and data studio 【发布时间】:2020-07-08 02:18:49 【问题描述】:我想在 Data Studio 中提取每个日期范围的数据,而无需一直更改我的 BigQuery 中的日期范围选择器。但是,不确定是否有可能这样做。我这样做的原因是为了确保查询的数据只有 30 天,因为稍后它会使用这 30 天的数据进行某种细分。
然后我发现Data Studio可以使用dynamic_date,但是这种方式永远不会产生任何数据表(数据表将用于从中进行其他查询)。是否可以在 BigQuery 中使用 dynamic_date 代替?比如使用查询中未定义的日期范围从 BigQuery 中检索数据。
在我看来,代码应该是这样的:
SELECT
ID,
FROM `table`
WHERE DATE(Timestamp) between $DS_START_DATE and $DS_START_DATE + INTERVAL 30 DAY)
或
WHERE DATE(Timestamp) >= @DS_START_DATE
【问题讨论】:
您在寻找 Bigquery parameterized 查询吗?但是,目前经典 BigQuery 网页界面不支持它们。 【参考方案1】:我相信在纯 Bigquery 中,您可以为此目的使用 DECLARE
clause,定义指定类型的变量:
declare DS_START_DATE date default "2020-03-03";
declare DS_END_DATE date default "2020-03-04";
WITH sample AS (
SELECT '10001' AS id, cast('2020-03-01' AS timestamp) as date_id UNION ALL
SELECT '10002', cast('2020-03-02' AS timestamp) UNION ALL
SELECT '10003', cast('2020-03-03' AS timestamp) UNION ALL
SELECT '10004', cast('2020-03-04' AS timestamp) UNION ALL
SELECT '10005', cast('2020-03-05' AS timestamp) UNION ALL
SELECT '10006', cast('2020-03-06' AS timestamp)
)
select id, date_id from sample
where date(date_id) between DS_START_DATE and DS_END_DATE
或者,您可以查看parameterized queries,但正如我在评论中提到的,经典 BigQuery 网络用户界面不支持它们。
【讨论】:
是的。目前不支持。以上是关于使用 bigquery 和 Data Studio 进行动态查询的主要内容,如果未能解决你的问题,请参考以下文章
使用来自 Bigquery 的新数据更新 Data Studio
Google Data Studio (BigQuery) - 创建过滤器以按最新时间选择
Google Data Studio (BigQuery) 从 1 到 01