Apache Doris 开源MPP分析型数据库-入门介绍

一、Apache Doris概览Apache Doris是一个现代化的MPP分析型数据库(OLAP)产品 。仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析 。Apache Doris的分布式架构非常简洁,易于运维,并且可以支持10PB以上的超大数据集 。
【Apache Doris 开源MPP分析型数据库-入门介绍】Doris 由百度大数据部研发 ( 之前叫百度 Palo,2018年贡献到 Apache 社区后,更名为 Doris ),在百度内部,有超过200个产品线在使用,部署机器超过1000台,单一业务最大可达到上百 TB 。

Apache Doris 开源MPP分析型数据库-入门介绍

文章插图
 
Doris 主要整合了google Mesa(数据模型),Apache Impala(MPP Query Engine)和Apache ORCFile (存储格式,编码和压缩) 的技术 。
 
二、Doris使用场景下图是整个 Doris 的具体使用场景,可以接入多数据源,基于Doris引擎进行数据处理和存储,最后是一个可视化的呈现 。
Apache Doris 开源MPP分析型数据库-入门介绍

文章插图
 
在数据分析处理框架中,Doris 主要做的是 Online 层面的数据服务,主要处理的是数据分析方面的服务 。
Doris的特点:
  • 同时支持高并发点查询和高吞吐的Ad-hoc查询
  • 同时支持离线批量导入和实时数据导入
  • 同时支持明细和聚合查询
  • 兼容MySQL协议和标准SQL
  • 支持Rollup Table和Rollup Table的智能查询路由
  • 支持较好的多表Join策略和灵活的表达式查询
  • 支持Schema在线变更
  • 支持Range和Hash二级分区
 
三、Doris 系统架构Doris 的整体架构和 TiDB 类似,借助 MySQL 协议,用户使用任意 MySQL 的 ODBC/JDBC以及MySQL 的客户端,都可以直接访问 Doris 。
Doris 中的模块包括 FE 和 BE 两类:FE 主要负责元数据的管理、存储,以及查询的解析等;一个用户请求经过 FE 解析、规划后,具体的执行计划会发送给 BE,BE 则会完成查询的具体执行 。BE 节点主要负责数据的存储、以及查询计划的执行 。
目前平台的 FE 部分主要使用 JAVA,BE 部分主要使用 C++ 。
Apache Doris 开源MPP分析型数据库-入门介绍

文章插图
 
Doris 的架构很简洁,只设 FE(Frontend)、BE(Backend)两种角色、两个进程,不依赖于外部组件,方便部署和运维 。FE和BE 都可线性扩展 。
FE 主要有三个角色,一个是 leader,一个是 follower,还有一个 observer 。leader 跟 follower,主要是用来达到元数据的高可用,保证单节点宕机的情况下,元数据能够实时地在线恢复,而不影响整个服务 。
右边 observer 只是用来扩展查询节点,就是说如果在发现集群压力非常大的情况下,需要去扩展整个查询的能力,那么可以加 observer 的节点 。observer 不参与任何的写入,只参与读取 。
数据主要都是存储在 BE 里面,数据的可靠性由 BE 保证,BE 会对整个数据存储多副本或者是三副本 。副本数可根据需求动态调整 。
Apache Doris 开源MPP分析型数据库-入门介绍

文章插图
 
四、Doris 用户Doris社区刚刚起步,社区活跃度比较低 。目前核心用户是百度,还有小米和美团 。
Apache Doris 开源MPP分析型数据库-入门介绍

文章插图




    推荐阅读