我有以下要求。
我们在 BQ 中有 1400 个基于特定功能分组的分表。这些单独的分片表中的最大值也为 DAY 进行了时间分区。
较小的表不按时间分区。
我试图通过对所有分表执行 UNION 并在 _partitiontime 上编写 WHERE 过滤条件,在 BigQuery 中动态创建视图。
但问题是可能存在未按时间分区的较小表,查询失败。
每天创建的表更多,我无法满足于静态排除解决方案,因为这需要手动维护带有表名等的文件(Apache Beam + BQ 使用传入的数据并为较新的数据创建新的分片表无需人工干预的功能组。)
我试图通过使用bq实用程序连接到 BQ 超过 1000 次以检查表是否已时间分区来排除非时间分区表。
bq show --format=prettyjson
并检查该timepartitioning type字段。
这个很慢,30多分钟。
我试过__TABLES_SUMMARY__,但它没有分区信息。
我也检查过
SELECT partition_id from [mydataset.table1$__PARTITIONS_SUMMARY__];,但如果表已经分区,这有效。