MAPREDUCE服务 MRS-Doris建表规范:Doris建表建议

时间:2024-05-28 14:22:57

Doris建表建议

  • 单表物化视图不能超过6个,物化视图不建议嵌套,不建议数据写入时通过物化视图进行重型聚合和Join计算等ETL任务。
  • 对于有大量历史分区数据,但是历史数据比较少,或者数据不均衡,或者数据查询概率较小的情况,可以创建历史分区(比如年分区,月分区),将所有历史数据放到对应分区里。

    创建历史分区方式为:FROM ("2000-01-01") TO ("2022-01-01") INTERVAL 1 YEAR

  • 1千万~2亿以内数据为了方便可以不设置分区(Doris内部有一个默认分区),直接用分桶策略即可。
  • 如果分桶字段存在30%以上的数据倾斜,则禁止使用Hash分桶策略,改为使用Random分桶策略,相关命令为:

    Create table ... DISTRIBUTED BY RANDOM BUCKETS 10 ...

  • 建表时第一个字段一定是最常查询使用的列,默认有前缀索引快速查询能力,选取最常查询且高基数的列作为前缀索引,默认将一行数据的前36个字节作为这行数据的前缀索引(varchar类型的列只能匹配20个字节,并且会匹配不足36个字节截断前缀索引) 。
  • 超过亿级别的数据,如果有模糊匹配或者等值/in条件,可以使用倒排索引(Doris 2.x版本开始支持)或者Bloomfilter。如果是低基数列的正交查询适合使用bitmap索引(bitmap索引的基数在10000~100000之间效果较好)。
  • 建表时需要提前规划将来要使用的字段个数,可以多预留几十个字段,类型包括整型、字符型等。避免将来字段不够使用,需要较高代价临时去添加字段。
support.huaweicloud.com/devg-rule-mrs/mrs_07_450069.html