Doris 是一个 MPP(大规模并行处理)分析型数据库,通常用于实时分析场景。它结合了列式存储、向量化查询引擎等技术来提供高性能的查询能力。下面我将简单介绍 Doris 的写入流程、列存储、分区分桶规划,以及读取流程和向量化引擎的调用。
写入流程
- 数据接收:客户端将数据发送到 Doris 的 BE(Backend)节点。
- 数据解析:BE 节点对接收到的数据进行解析,转换成 Doris 内部的数据格式。
- 数据预处理:可能包括数据清洗、类型转换等操作。
- 数据写入:数据被写入到相应的存储引擎中。Doris 使用的是列式存储。
- 数据合并:为了保持数据的有序性,Doris 会进行数据的合并操作。
- 写入完成:数据写入完成,客户端收到写入成功的反馈。
列存储
Doris 采用列式存储,这与传统的行式存储不同。在列式存储中,相同类型的数据被存储在一起,这样可以更有效地进行数据的压缩和编码,从而提高查询性能。此外,列式存储也更适合进行向量化的查询操作。
分区分桶规划
- 分区:Doris 支持表的分区功能,可以根据业务需求将数据按照某个字段进行分区。例如,可以按照日期字段进行分区,每天一个分区。这样查询时就可以只扫描相关的分区,提高查询效率。
- 分桶