我对这个问题有一个几乎相同的场景:
How to choose the latest partition in BigQuery table?
带有一个额外的复杂功能。我需要在数据洞察中显示结果。
设置
我有一系列以不同时间间隔出现的数据集,我需要获取最新的分区。因为它们的时间段不一致,所以我不能只得到最后一天并使用它。
我可以使用 BigQuery 脚本通过动态查询成功修剪查询,但是当我将此查询移动到数据洞察时,查询无法正确加载。
该表在数据源部分加载:
但是当我真正尝试在报告中使用它时:
Data Studio cannot connect to your data set.
Failed to fetch data from the underlying data set
Error ID: e6546a97
有没有办法让 Data Studio 通过修剪正确显示它?示例查询
DECLARE max_date DATE;
SET max_date = (SELECT DATE(MAX(_partitiontime)) FROM `dataset.table`);
SELECT *
FROM `dataset.table`
WHERE DATE(_partitiontime ) = max_date
最佳答案
解决方法:
一种可能性是使用日期参数并进行如下查询:
SELECT *
FROM `dataset.table`
WHERE DATE(_PARTITION_TIME)>= PARSE_DATE("%Y%m%d", @DS_START_DATE)
这并不是确切的答案,但由于日期范围默认为“昨天到今天”数据,您可以有效地将表修剪为仅最近的分区。如果您提到的数据不规则,用户仍然可以手动扩展日期范围,直到找到数据。同时,您还可以将以下自定义查询添加到您的数据源:
SELECT
MAX(SAFE.PARSE_DATE('%Y%m%d',partition_id)) AS latest_available_partition
FROM `dataset.INFORMATION_SCHEMA.PARTITIONS`
WHERE TABLE_NAME = "table"
并将其显示在表格中以向用户提供信息。事实上,这种变通方法意味着您相信您的最终用户不会过多地使用日期范围。
关于google-bigquery - 使用 Data Studio 修剪 BigQuery 分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67697079/