了解Clickhouse分区

时间:2018-08-09 15:34:01

标签: clickhouse

我看到clickhouse为每个分区键(在每个节点中)创建了多个目录。 文档说目录名称格式为:分区ID_最小块号_最大块号_level。 知道这里的水平吗? 一个节点(用于一个表)上的347个不同的分区键创建了1358个目录。 (自定义分区)

文档建议分区不要超过1000个。我们应该只记住分区键的数量还是目录的数量?

此外,是否有关于如何控制此目录数量的配置?

enter image description here

2 个答案:

答案 0 :(得分:0)

  

任何想法在这里是什么水平?

级别是LSM-tree的概念。 MergeTree表具有将数据部分合并为更大和更深(w.r.t级)的机制。

  

我们应该记住分区键的数量还是目录的数量?

好吧,我认为这不是一个好主意,因为这种方法无法很好地扩展。您最好选择一个低基数的列或表达式作为分区键。

  

此外,是否有关于如何控制此目录数量的配置?

没有明确的设置。但是您可以轻松地使用模块化表达式来限制分区的总数。

答案 1 :(得分:0)

在此讨论中,您可以通过以下方式检查零件和分区:

对于活动分区:

select count(distinct partition)  from system.parts  where the table in ('table_name') and active

对于活动部件:

select count() from system.parts  where   table in ('table_name') and active

不活动的零件将在不到10分钟的时间内删除。

此外,您还可以阅读更多here有关部件,分区和合并方式的信息。

要一起查看表部件和分区:

SELECT
    partition,
    name,
    active
FROM system.parts
WHERE table = 'table_name'