数据模型、ROLLUP及前缀索引

数据模型、ROLLUP及前缀索引

基本概念

  • 一张表包括行(Row)和列(Column).Row即用户的一行数据.Column用于描述一行数据中不同的字段.
  • Column可以分为两大类:Key和Value.从业务角度看,Key和Value可以分为对应维度列和指标列.
  • Doris的数据模型主要分为三类:
    • Aggregate
    • Uniq
    • Duplicate

Aggregate模型

当导入数据时,对于Key列相同的行会聚合成一行,而Value列会按照设置的AggregationType进行聚合.AggregationType目前有以下四种聚合方式:

  1. SUM:求和
  2. REPLACE:替代
  3. MAX:保留最大值
  4. MIN:保留最小值

数据的聚合,在Doris中有如下三阶段发生:

  1. 每一批次数据导入的ETL阶段,该阶段会在每一个批次导入的数据内部进行聚合.
  2. 底层BE进行数据Compaction的阶段.该阶段,BE会对已导入的不同批次的数据进行进一步的聚合.
  3. 数据查询阶段.在数据查询时,对于查询涉及到的数据,会进行对应的聚合.

Uniq模型

Uniq模型完全可以用聚合模型中的REPLACE方式替换,其内部实现方式和数据存储方式也完全一样.

Duplicate模型

Duplicate模型区别于Aggregate和Uniq模型.数据完全按照导入文件中的数据进行存储,不会有任何聚合.即使两行数据完全相同,也都会保留.而在建表语句中指定DUPLICATE KEY,只是用来指明底层数据按照那些列进行排序.

上一篇:Vue + Element UI 实现权限管理系统 前端篇(三):工具模块封装


下一篇:Doris Rollup物化视图及应用实践