全部产品
云市场
云游戏

分片

更新时间:2020-09-10 11:34:48

 每个Partition会被切分为多个shard,shard的数量是在建表语句时进行设置的。shard本质上是为了提升查询的并发。

Shard设置

 TSDB2.0 里面shard默认分片数是:max[4, nodenums*2]。也可以在建表时通过clustered into指定分片数:

  1. create table my_table (
  2. first_column integer
  3. ) clustered into 10 shards;

分片键默认是文档的 id(无主键时) ,也可以通过clustered by指定分片键,如下:

  1. create table my_table (
  2. first_column integer,
  3. second_column text
  4. ) clustered by (first_column) into 10 shards;

如果建表时存在主键,则默认会使用主键进行分片。

Shard建议

 合理的分片的数量设置与很多因素有关,比如查询类型、数据类型、硬件等。从原理上看,为了尽量达到并行处理的目的,shard数量应该配置等同于cpu核数的shard。

 如果shard数量分配过多,会有大量的shard实例运行,会产生大量的文件,线程池,会导致内存、cpu频繁切换,性能下降,所以shard的数量也不能太多。

所以,对于每个table,一般配置比cpu数量稍微多一点的shard是比较合理的。