01DORIS历史回顾
Apache Doris 诞生于百度,2012 年开源,2017 年捐赠至 Apache 软件基金会,2021 年毕业成为顶级项目。发展历程包括:2008 年诞生用于解决凤巢报表问题,2012 年成为百度首个公司级 OLAP 分析平台并改名 PALO,2018 年捐赠核心引擎至 Apache 软件基金会孵化为 Doris,2022 年完成毕业成为顶级项目。
02DORIS数据结构
DORIS 采用列式存储,数据结构包括:TABLET(表的物理分桶)、ROWSET(数据导入批次)、SEGMENT(ROWSET 拆分的数据文件)。文件结构包含 Footer(文件信息及片段位置)、IndexRegion(索引信息)、DataRegion(实际数据)、Page(基本存储单元)。本地存储的优缺点为:读写速度快、文件合并简单,但成本高、负载均衡受限、迁移困难。
03存算分离
DORIS 通过 IO 层抽象实现存算分离,支持远端数据存储(S3、HDFS)和本地缓存(CACHE)。PALO 存算分离的具体表现为:TABLET 元数据与 BE 分离,远端存储全量数据,BE 缓存部分热数据,且不再保存多副本,数据与远端存储一致。
04PALO湖仓一体
PALO 支持湖仓一体,通过外表方式访问其他数据源,包括 MySQL、ES、Oracle 等。实现方式为:FE 读取外表元数据解析格式及存储,BE 读取实际文件;同时支持与 Spark/Flink 对接,通过 Flink/Spark connector 进行 ETL。