我在clickhouse中有几个关于自定义分区的问题。背景:我正在尝试在Clickhouse上构建TSDB。我们需要支持非常大的批量写入和复杂的OLAP读取。
- 假设我们按月使用标准分区,并且我们的clickhouse群集中有20个节点。我想知道同月的数据是否会流向同一个节点,还是clickhouse会做一些内部平衡,并将同月的数据放到几个节点上?
- 如果同月的所有数据写入同一节点,那么对我们的场景来说将是非常糟糕的。我可能会考虑(timestamp,tags),其中标签是定义数据源的不同标签。我们的监控系统每30秒将数据写入TSDB。我们的读取模式通常是单表范围扫描或列上的多个表连接。关于如何自定义分区策略的任何建议?
- 由于clickhouse不支持二级索引,我们将在列上运行选择查询,我想我应该把那些重要的列放到主键中,所以我的主键可能就像(timestamp,ip,port ...),any关于这个设计的建议或者说明为什么clickhouse不支持像其他非主列上的位图索引这样的二级索引?