【问题标题】:How to know the minimum cluster size in a bigquery table?如何知道 bigquery 表中的最小集群大小?
【发布时间】:2021-07-01 05:59:45
【问题描述】:

我正在比较集群和分区的性能。

比较分区表和聚簇表,聚簇表的访问数据大小有时比分区表大。 (例如,集群 122.4MB 与分区 35.6MB)

我预计这是由于集群的最小数据大小的限制。

有没有办法知道限制?或者有没有其他的 访问数据大小不同的原因?

编辑 我发现前 Google 发布的帖子 12

帖子 2 说“BigQuery 中的每个数据集群都有一个最小大小。”,帖子 1 说“如果您每天的数据少于 100MB,那么集群对您的用处不大”。

从这些帖子中,我推断出聚簇表大尺寸的原因是一个簇的最小尺寸。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    集群不像分区。事实上,不能保证每个列值都会有一个集群(或者如果您对它们的每个组合使用多个列)。这也是为什么 BigQuery 无法在运行之前很好地估计查询将使用多少数据(就像它对分区所做的那样)。同时,不同的分区使用不同的内存块。

    此外,请考虑 BigQuery 执行 Auto-clustering(免费),因此会更改所有集群。这样做是为了使表具有更有效的集群。这是必需的,因为当您插入/删除数据时,集群会导致非常倾斜的集群,从而导致查询效率低下。这将导致数据被同一查询扫描,即使在 BigQuery 执行自动集群之间没有插入/删除数据。

    此实现的另一个效果是单个表具有最大分区数(4000)。但是,您对用于聚类的键的数量没有任何限制。

    因此,BigQuery 中的单个集群可能包含多个集群值,并且底层集群数据块可能会由于自动集群而自动更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-21
      • 2021-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      • 2012-02-26
      相关资源
      最近更新 更多