Doris简介
Doris是一个MPP架构的分析型列式存储OLAP数据库。
特点:
1.架构简单,易于运维,扩容和缩容方便。
2.亚秒级响应,支持实时分析。
3.支持10PB以上超大数据集。
4.可满足多种数据分析场景:固定报表,实时分析,交互式分析,探索式分析等
Doris架构
两类进程:FrontEnd和BackEnd
FrontEnd:主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作
BackEnd:主要负责数据存储、查询计划的执行
Doris借助MySQL协议,用户使用任意MySQL的ODBC/JDBC以及MySQL的客户端,都可以直接访问Doris
数据表设计:
数据以Table的形式组织。
Column 可以分为两大类:Key 和 Value。从业务角度看,Key 和 Value 可以分别对应维度列和指标列。
Partition:分区,按行分区
bucket:分桶,按字段的hash值分桶,最小物理存储单元。
三类建表模型:
Aggregate 模型
四种聚合类型:REPLACE, SUM, MAX, MIN
数据会按key列对value列进行预聚合。
Unique 模型
会按key列进行去重。
Duplicate 模型
保存明细数据,允许数据重复。
分区类型:RANGE分区和LIST分区
RANGE是按照字段值的范围分区,LIST是按照字段的枚举值分区。
动态分区:手动创建分区太麻烦,因此提供了自动创建分区的方式,称为动态分区,FE会启动一个后台线程,根据用户指定的规则创建或删除分区。
ROLLUP:
ROLLUP 表的基本作用,在于在 Base 表的基础上,获得更粗粒度的聚合数据,提升查询性能。
物化视图
物化视图是将预先计算(根据定义好的 SELECT 语句)好的数据集,存储在 Doris 中的一个特殊的表。
既能对原始明细数据的任意维度分析,也能快速的对固定维度进行分析查询。
Doris和Flink的集成
Doris官方提供了和flink的连接器
Flink Doris Connector 可以支持通过 Flink 操作(读取、插入、修改、删除) Doris 中存储的数据。
可以将 Doris 表映射为 DataStream 或者 Table。