DevilKing's blog

冷灯看剑,剑上几分功名?炉香无需计苍生,纵一穿烟逝,万丈云埋,孤阳还照古陵

0%

From mesa to doris

原文链接

Mesa

mesa的预聚合数据模型

针对广告的背景,原始数据没有意义,但查询的时候需要有各种维度的数据

Example of Mesa Tables

上面的 Table A~D 其实表示的是同一批原始数据的在四个不同维度的聚合结果,供不同的业务查询使用

只支持按照batch来更新,同spark-streaming天然贴合?

每次导入的 delta 数据不会立即和基线数据合并,而是会先以单独的文件存在,积累一定数量后再做 Compaction

kylin的预聚合?

Doris

支持以下三种模型的表:

  1. Aggregate 表:需要定义 Key 列和 Value 列,Key 列相同的数据行会自动合并,合并时 Value 列的数据按预先定义好的聚合函数进行聚合
  2. Duplicate 表:不会自动合并 Key 相同的数据,其语义类似于其他数据库中的关系表,Key 表示表的排序键(sort key)而不是唯一键
  3. Uniq 表,Key 列相同时新的行覆盖(Replace)旧的行,本质上是一种特化的 Aggregate 表

Base->ROLLUP

物化视图的概念,允许用户基于明细表(Duplicate 表)定义预聚合。Doris 的物化视图仅支持定义聚合(Group-By)