单表数据量和分区的一些疑问

Viewed 19

现在有两张表,两张表的字段是一样的
A表 明细模型,字段顺序是 data_time、data_md5、.....
使用 data_time 进行按月分区,data_md5建立了布隆索引,同时该字段作为分桶字段
A表基本上只会使用 data_time、data_md5 同时作为查询条件,此时这张表按data_time进行分区应该是没有问题的

B表 唯一模型
data_md5建立了布隆索引,同时该字段作为分桶字段
B表基本上只会使用data_md5作为查询条件,此时分区就不太合适使用data_time了?
可doris的分区没法按字段进行hash取模,请问这种表该如何分区呢?

A表相当于是B表的流水记录表,B表是最新结果记录表
A表的数据量预估可达数百亿级、B表预估可达数十亿级

请问A表的分桶数量建议多少合适?B表的分区该如何设置?如果B表不进行分区只进行分桶,数据量大起来了,查询效率会不会降低?

1 Answers
  1. A表分桶按照每个分区的数据量大小进行判断,每个 tablet 建议是 1~10G的大小,一般建议1~3GB 可能性能比较好,但是如果数据量比较大的话,为了防止 tablet 过多,可以略大一些。
    具体可以参考 分桶
    也可以同步看这篇文章:https://mp.weixin.qq.com/s/y6HALPqgwQsQjMxA71vyQA

  2. B表分区这块,Doris 目前只支持 Range 和 List 分区,如果没有合适的分区字段的话,数据量如果不是很大的话,10亿级别其实合理分桶也不会影响到查询效率。