我有一个相当大的表,其中包含大约 7 年的数据,并且每天进行分区(大约 2000-2500 个分区)。不久前我开始收到错误
Quota exceeded: Your table exceeded quota for Number of partition modifications to a column partitioned table
。据我所知,有一个限制“每个表每天更新 5000 个分区”,但看起来不久前它增加了 x6(至少在文档中声明为 30000)。然而,错误以相同的频率出现。
之后我决定将粒度从按天划分更改为按月划分。与往常一样,我用
CREATE TABLE ... AS ...
制作了一份副本,并用修改后的表格替换了旧表格。因此,我现在的分区数量不再是 2000-2500 个,而是不到 100 个。但我仍然收到这个错误!
我用
INFORMATIONS_SCHEMA.PARTITIONS
检查了分区数量,一切都是正确的。我尝试从 total_modified_partitions
数 INFORMATIONS_SCHEMA.JOBS
,但得到的数字远小于限制。
有什么解决办法吗?我可以保留表具有相同的旧名称,但消除此错误吗?
嗯,我找到了一个原因,它与 BigQuery 无关。我使用 DBT 进行数据转换,实际上由于所谓的“增量”模型而出现错误。错误的文本指向最终表,而实际问题出在 DBT 创建的用于执行“增量”更新的临时表中。 DBT 没有自动更改该表的粒度,这是根本原因。