gpt4 book ai didi

google-bigquery - 是否有元数据表来检查 BigQuery 中的表是否已分区?

转载 作者:行者123 更新时间:2023-12-05 01:17:48 25 4
gpt4 key购买 nike

我有以下要求。

我们在 BQ 中有 1400 个基于特定功能分组的分表。
这些单独的分片表中的最大值也为 DAY 进行了时间分区。

较小的表不按时间分区。

我试图通过对所有分表执行 UNION 并在 _partitiontime 上编写 WHERE 过滤条件,在 BigQuery 中动态创建 View 。

但问题是可能存在未按时间分区的较小表,查询失败。

每天都会创建更多的表,我无法满足于静态排除解决方案,因为这需要手动维护带有表名等的文件(Apache Beam + BQ 使用传入的数据并为更新创建新的分片表无需人工干预的功能组。)

我正在尝试使用 bq 排除非时间分区表连接到 BQ 超过 1000 次以检查表是否按时间分区的实用程序。
bq show --format=prettyjson并检查 timepartitioning type field 。

这个很慢,30多分钟。

我试过 __TABLES_SUMMARY__ ,但它没有分区信息。

我也检查过SELECT partition_id from [mydataset.table1$__PARTITIONS_SUMMARY__]; ,但如果表已经分区,这有效。

最佳答案

您可以在 BQ 中以标准 SQL 编写以下查询以获取信息

SELECT * 
FROM `project_id.dataset_name.INFORMATION_SCHEMA.COLUMNS`
WHERE TABLE_NAME = Table_Name
AND is_partitioning_column = "YES"

关于google-bigquery - 是否有元数据表来检查 BigQuery 中的表是否已分区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44881100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com