Clickhouse中的自定义分区

问题描述 投票:0回答:1

我在clickhouse中有几个关于自定义分区的问题。背景:我正在尝试在Clickhouse上构建TSDB。我们需要支持非常大的批量写入和复杂的OLAP读取。

  1. 假设我们按月使用标准分区,并且我们的clickhouse群集中有20个节点。我想知道同月的数据是否会流向同一个节点,还是clickhouse会做一些内部平衡,并将同月的数据放到几个节点上?
  2. 如果同月的所有数据写入同一节点,那么对我们的场景来说将是非常糟糕的。我可能会考虑(timestamp,tags),其中标签是定义数据源的不同标签。我们的监控系统每30秒将数据写入TSDB。我们的读取模式通常是单表范围扫描或列上的多个表连接。关于如何自定义分区策略的任何建议?
  3. 由于clickhouse不支持二级索引,我们将在列上运行选择查询,我想我应该把那些重要的列放到主键中,所以我的主键可能就像(timestamp,ip,port ...),any关于这个设计的建议或者说明为什么clickhouse不支持像其他非主列上的位图索引这样的二级索引?
olap opentsdb clickhouse
1个回答
0
投票
  1. 在ClickHouse中,分区和分片是两个独立的机制。按月分区意味着来自不同月份的数据永远不会被合并以存储在文件系统上的相同文件中,并且与节点之间的数据放置无关(通过选择如何设置表并运行INSERT INTO查询来控制) )。
  2. 几个月或几周的分区通常都很好,因为选择主键请参阅官方文档:https://clickhouse.yandex/docs/en/operations/table_engines/mergetree/#selecting-the-primary-key
  3. 添加它们没有根本问题,例如正在进行布隆过滤器索引开发:https://github.com/yandex/ClickHouse/pull/4499
© www.soinside.com 2019 - 2024. All rights reserved.