BigQuery 最大分区数达到 2000 而不是 2500

Posted

技术标签:

【中文标题】BigQuery 最大分区数达到 2000 而不是 2500【英文标题】:BigQuery max partitions topping out at 2000 instead of 2500 【发布时间】:2018-03-28 11:30:41 【问题描述】:

根据BigQuery docs,分区表可以有2500个分区:

每个分区表的最大分区数 - 2,500

还是:

$ bq query --destination_table grey-sort-challenge:partitioning_magic.nyc_taxi_trips_partitioned --time_partitioning_field pickup_datetime --use_legacy_sql=false "select * from \`grey-sort-challenge.partitioning_magic.nyc_taxi_trips\`"

查询字符串出错:错误处理作业“grey-sort-challenge:bqjob_r37b076ef0d3c4338_000001626c539e6a_1”:查询产生的分区太多,允许 2000,查询产生至少 2372 个分区

是2000还是2500?

【问题讨论】:

我提交了a bug 以跟踪问题。 查看以下问题,了解如何通过按周/月/年进行分区来绕过此限制:***.com/a/56125049/132438 【参考方案1】:

表中支持的最大分区数为 4000。 2000 是我们允许单个操作(在本例中为查询作业)生成的分区数。

配额和限制 - 分区表

每个分区表的最大分区数 - 4,000

单个作业修改的最大分区数 - 2,000

每个作业操作(查询或加载)最多可影响 2,000 个分区。任何影响超过 2000 个分区的查询或加载作业都会被 Google BigQuery 拒绝。

每个表每天的最大分区修改次数 - 5,000 对于分区表,您每天最多可以进行 5,000 次分区修改。可以使用追加或覆盖分区中的数据的操作来修改分区。修改分区的操作包括:加载作业、将结果写入分区的查询或修改分区中数据的 DML 语句(INSERT、DELETE、UPDATE 或 MERGE)。

一个作业可能会影响多个分区。例如,DML 语句可以更新多个分区中的数据(对于摄取时间表和分区表)。查询作业和加载作业也可以写入多个分区,但仅限于分区表。在确定作业消耗多少配额时,Google BigQuery 使用受作业影响的分区数。流式插入不会影响此配额。

最大分区操作率 - 每 10 秒 50 次分区操作

【讨论】:

这太严格了。想象一下,我有一个包含 10 年数据的标准表,我想对它进行分区!有了这些限制,我不得不把它分成两个 5 年的表格。 是否有任何不涉及对原始表进行切片和切块的解决方法? 单桌 2500 人的限制是我们正在积极寻求全面提高的限制。目前,我们是根据需要做的,如果您能提供项目编号,我们很乐意为您的项目做。 今天已增加到 4000。cloud.google.com/bigquery/quotas#partitioned_tables 查看以下问题以了解如何通过按周/月/年进行分区来绕过此限制:***.com/a/56125049/132438

以上是关于BigQuery 最大分区数达到 2000 而不是 2500的主要内容,如果未能解决你的问题,请参考以下文章

Bigquery:某些行属于不同的分区而不是目标分区

Bigquery:分区数据超过 2000 限制(更新:现在 4000 限制)[重复]

BigQuery 插入作业而不是流式传输

NZLOAD 正在工作,而 Netezza 中的外部表因错误输入行数达到最大错误而失败

BigQuery 中消耗的时隙时间

如何在 BigQuery 中设置项目默认计费的最大字节数?