Doris 写入流程 列存储 分区分桶 读取流程 向量化引擎

Doris 是一个 MPP(大规模并行处理)分析型数据库,通常用于实时分析场景。它结合了列式存储、向量化查询引擎等技术来提供高性能的查询能力。下面我将简单介绍 Doris 的写入流程、列存储、分区分桶规划,以及读取流程和向量化引擎的调用。

写入流程

  1. 数据接收:客户端将数据发送到 Doris 的 BE(Backend)节点。
  2. 数据解析:BE 节点对接收到的数据进行解析,转换成 Doris 内部的数据格式。
  3. 数据预处理:可能包括数据清洗、类型转换等操作。
  4. 数据写入:数据被写入到相应的存储引擎中。Doris 使用的是列式存储。
  5. 数据合并:为了保持数据的有序性,Doris 会进行数据的合并操作。
  6. 写入完成:数据写入完成,客户端收到写入成功的反馈。

列存储

Doris 采用列式存储,这与传统的行式存储不同。在列式存储中,相同类型的数据被存储在一起,这样可以更有效地进行数据的压缩和编码,从而提高查询性能。此外,列式存储也更适合进行向量化的查询操作。

分区分桶规划

  1. 分区:Doris 支持表的分区功能,可以根据业务需求将数据按照某个字段进行分区。例如,可以按照日期字段进行分区,每天一个分区。这样查询时就可以只扫描相关的分区,提高查询效率。
  2. 分桶:分桶是将数据在物理存储层面上进行分散存储的一种方式。Doris 支持对表进行分桶操作,通常是根据某个字段的哈希值进行分桶。分桶有助于数据的均衡分布,避免数据热点,提高并发查询能力。

读取流程

  1. 查询解析:客户端发送查询请求到 Doris 的 FE(Frontend)节点,FE 对查询进行解析和优化。
  2. 查询计划生成:FE 生成查询执行计划。
  3. 查询执行:查询计划被发送到相应的 BE 节点执行。
  4. 数据读取:BE 节点根据查询计划从存储引擎中读取数据。
  5. 数据聚合:如果查询涉及到聚合操作,BE 节点会对读取到的数据进行聚合。
  6. 结果返回:最终的结果被返回给客户端。

向量化引擎的调用

在 Doris 的读取流程中,向量化引擎被用于加速查询的执行。向量化引擎能够一次性处理多个数据行,而不是像传统的行式引擎那样一行一行地处理,这大大提高了查询的性能。在查询执行过程中,当 BE 节点从存储引擎中读取到数据时,这些数据会被送入向量化引擎进行处理,最终得到查询结果。

总的来说,Doris 通过列式存储、分区分桶规划以及向量化引擎等技术,实现了高性能的实时分析功能。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值