bigquery 表可以创建的最大分区数

Posted

技术标签:

【中文标题】bigquery 表可以创建的最大分区数【英文标题】:Max number of partitions that can be created on bigquery table 【发布时间】:2017-12-15 01:59:03 【问题描述】:

在将数据从未分区表移动到分区表时出现以下错误。

“查询执行期间资源超出:表mydataset.mytable$20101213在作业完成时将有2501个分区,超过限制2500..']”

--> bigquery 是否限制了可以在表上创建的最大分区数?或者这是否只是一天的配额?

此外,他们的 BigQuery“配额和限制”页面中并未提及此限制

【问题讨论】:

有这么多分区对我来说似乎有一种难闻的气味。您能与我们分享查询/数据吗? 我正在使用气流大查询作业将数据从 2010 年移动到 2017 年。所以,基本上我试图将 7 年的数据移动到每天分区的目标表中,这将是大约 2555 (365 * 7) 个分区 你能包括查询和一些数据吗?也许有一种解决方法不会使 Big Query 崩溃。 查看以下问题,了解如何通过按周/月/年进行分区来绕过此限制:***.com/a/56125049/132438 【参考方案1】:

文档中提到了。目前,每个表的分区不能超过 4000 个。您需要将数据/分区拆分到多个表(每个表大约 7 年的数据)。

每个分区表最多可以有 4000 个分区。

https://cloud.google.com/bigquery/docs/partitioned-tables#partitioned_table_limits

【讨论】:

超过这个界限会发生什么? BigQuery 将返回错误,并且不会在表中插入更多数据! @约翰安德鲁斯【参考方案2】:

一旦您的数据被拆分到多个表中,您就可以编写一个视图来将这两个表合并在一起。每当使用 where 子句中的分区字段查询视图时,BigQuery 只会处理相关分区。

这会产生一个包含 4,000 多个分区的视图,业务用户可以查询这些分区,而无需担心他们需要使用哪个版本的表或将这些表联合起来。

【讨论】:

以上是关于bigquery 表可以创建的最大分区数的主要内容,如果未能解决你的问题,请参考以下文章

mysql表分区使用及详细介绍

为数据集创建了外部 Bigquery 配置单元分区表,但无法查看具有分区键的列

ORA-14300: 分区关键字映射到超出允许的最大分区数的分区

怎么循环创建mysql表分区和清空表分区

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

mysql之表分区