首页 > 解决方案 > 使用 --time_partitioning_field 查询流数据

问题描述

我目前正在探索如何仅定期查询表中的流缓冲区数据以近乎实时地生成性能报告,并找到了以下 StackOverflow 链接:

如何仅在 BigQuery 中查询流缓冲区中的数据?

但是,当前的分区类型是使用--time_partitioning_field

使用以下查询强制查询表中的所有数据:

SELECT * FROM `<project>.<data-set>.<time-partitioned-streaming-table>`
where <time-partitioning-field> is null

在此处输入图像描述

查询没有显示任何差异,因为理想情况下,峰值流缓冲区为 @ ~60MB/小时

有没有办法只查询这种分区的流数据?

标签: google-cloud-platformgoogle-bigquery

解决方案


我相信这应该可行(但它是旧版 SQL)

#standardSQL
 CREATE TABLE test.newtable (transaction_id INT64, transaction_date DATE)
 PARTITION BY transaction_date
 OPTIONS(
   partition_expiration_days=3,
   description="a table partitioned by transaction_date"
 )

#legacySQL
select * from [test.newtable$__UNPARTITIONED__] 

推荐阅读