BigQuery:超过对列分区表的分区修改次数的配额
Posted
技术标签:
【中文标题】BigQuery:超过对列分区表的分区修改次数的配额【英文标题】:BigQuery: Exceeded quota for Number of partition modifications to a column partitioned table 【发布时间】:2018-06-08 17:56:01 【问题描述】:尝试在 BigQuery 上运行大量导入 CSV 作业时出现此错误,该作业使用自定义 Timestamp
列进行日期分区。
您的表超出了对列分区表的分区修改次数的配额
下面的完整错误:
Location: "partition_modifications_per_column_partitioned_table.long"; Message: "Quota exceeded: Your table exceeded quota for Number of partition modifications to a column partitioned table. For more information, see https://cloud.google.com/bigquery/troubleshooting-errors"; Reason: "quotaExceeded"
我不清楚:Number of partition modifications
的配额是多少?以及它是如何被超过的?
谢谢!
【问题讨论】:
【参考方案1】:分区修改次数的配额是多少?
见Quotas for Partitioned tables
特别是:
单个作业修改的最大分区数 - 2,000
每个作业操作(查询或加载)最多可影响 2,000 个分区。任何影响超过 2000 个分区的查询或加载作业都会被 Google BigQuery 拒绝。
每个表每天的最大分区修改次数 - 5,000
您每天最多只能对分区表进行 5,000 次分区修改。可以使用追加或覆盖分区中的数据的操作来修改分区。修改分区的操作包括:加载作业、将结果写入分区的查询或修改分区中数据的 DML 语句(INSERT、DELETE、UPDATE 或 MERGE)。
您可以在上面的链接中查看更多详细信息
【讨论】:
我们总共有大约 6500 个 CSV 文件要加载大约 110 天的数据。每个 csv 都有一个项目的一天数据。据我了解,这将导致每个 csv 进行一次“分区修改” - 对吗?但是,我们看到在错误发生之前只有 389 个 CSV 加载作业成功。即 389 分区修改后的错误 为什么不一次加载所有文件? 如果你的 csv 文件包含 110 天的数据,那么一个 csv 将导致 110 分区修改,因为它的数据将写入 110 个分区。正如 Elliott 建议的那样,只需一次加载所有文件。您总共只有 110 次分区修改。 @ElliottBrossard 谢谢 - 这是有道理的。我还不确定为什么我在 389 而不是 5000 被止损 - 但在我合并文件后这应该不是问题。 您能否提供389分区修改后出现此错误的作业的job_id?常见原因是对该表的其他写入消耗了此配额。 (我不需要项目 id,只需要 job_id 和运行日期就足够了)。谢谢!【参考方案2】:如果您要经常更改数据,我强烈建议您删除表格,然后使用新值再次上传。每次上传新表时,都会刷新限制。
【讨论】:
以上是关于BigQuery:超过对列分区表的分区修改次数的配额的主要内容,如果未能解决你的问题,请参考以下文章