分片
每个Partition会被切分为多个shard,shard的数量是在建表语句时进行设置的。shard本质上是为了提升查询的并发。
Shard设置
TSDB2.0 里面shard默认分片数是:max[4, nodenums*2]。也可以在建表时通过clustered into指定分片数:
create table my_table (
first_column integer
) clustered into 10 shards;
分片键默认是文档的 id(无主键时) ,也可以通过clustered by指定分片键,如下:
create table my_table (
first_column integer,
second_column text
) clustered by (first_column) into 10 shards;
如果建表时存在主键,则默认会使用主键进行分片。
Shard建议
合理的分片的数量设置与很多因素有关,比如查询类型、数据类型、硬件等。从原理上看,为了尽量达到并行处理的目的,shard数量应该配置等同于cpu核数的shard。
如果shard数量分配过多,会有大量的shard实例运行,会产生大量的文件,线程池,会导致内存、cpu频繁切换,性能下降,所以shard的数量也不能太多。
所以,对于每个table,一般配置比cpu数量稍微多一点的shard是比较合理的。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论