Apache Doris 2.0.0 特性分析

1、存算分离 所谓存算分离是指查询外表时,使用一种专门做计算的BE节点,但对于存储在BE上的内部表,目前还不能做到存储分离。 doris可以查询外部表,包括: Hive、Iceberg、Hudi、Elasticsearch、JDBC、Paimon 早期版本中,FE通过BE节点查询外部表,并且在BE节点内执行join、sort、agg等计算, 这些BE节点同时也负责doris的内部表的存储和计算, 新版本改造了BE节点,通过修改配置,它可以仅用于查询外表时的计算,内部表数据不会存到它上面, 这种BE称为"计算节点",而既存储内部表数据又执行计算的BE节点称为"混合节点"。 两者的代码和二进制安装文件是一样的,只是配置不同,在集群中扮演的角色不同。 配置方法如下: 修改FE的配置文件: prefer_compute_node_for_external_table=true min_backend_num_for_external_table=3 修改BE配置: be_node_role=computation 然后将这个BE加入集群: ALTER SYSTEM ADD BACKEND "be_ip:be_port"; 可以如此加入多个"计算节点"。

当集群中有充足的计算节点时,当FE查询外表时,执行计划优先下发给"计算节点",而不发给"混合节点"。

以上就是2.0.0存算分离特性的原理和状态,以下是这一特性的限制和理解上的澄清: 目前访问外部表(无论是否使用存算分离)只支持读取,不能写入。 存算分离的计算节点,只能用于外表的访问和计算,对内部表算子(例如JOIN、AGG、SORT)还不能调度到计算节点执行, 可能以后版本会支持,这个称为"计算外溢"。 SelectDB在apache doris官网上说,2023年10月会上传更成熟的存算分离架构给社区,估计目前的存算分离还不够完善。 查看了一下StarRocks的官网,没有存算分离的文档,只有3.1的release note提了一下。

2、多源数据目录(Multi-Catalog) 这是一种管理外部数据源更好的模型,数据库层级的模型: Catalog -- 可以理解为一个种类型的数据库集群,里面包含多个同一类型的数据库。 Database -- 用于数据管理的隔离,有独立的元数据存储,字符编码、数据存储格式等属性,内部包含schema和table。 Doris的Multi-Catalog可以将外部数据源,映射到一个新的Catalog,并自动读取外部数据源的所有元数据,在本地创建对应的database和表。 例如,hive里有如下数据库: default random ssb100 tpch1 tpch100 tpch1_orc 其中tpch100中有表: customer lineitem nation orders part partsupp region supplier 使用Multi-Catalog特性,不需要为每个hive数据库在Doris创建对应数据库,也不需要为每个hive表创建映射表。 对于Doris支持的数据源(如hive,Elasticsearch),只要创建Catalog并指定连接信息: CREATE CATALOG hive PROPERTIES ( 'type'='hms', 'hive.metastore.uris' = 'thrift://172.21.0.1:7004' ); Doris会自动读取外部数据源的元数据信息,并为每个数据库和表创建映射。 这个功能极大的方便了外部数据源的访问,在1.20版本已经具备了这一功能,2.0.0支持更多数据源,并与存算分离结合。

3、冷热分层 冷热分层是指,将表中较早时间导入的数据,保存到对象存储或其它廉价的存储中去,并在doris本地删除, 当需要这些旧数据时,再从对象存储读进来,这个过程对于用户是透明的。 具体的操作是,在创建表时设置一个日期,在这个日期到达时,之前导入的数据,会上传到对象存储,并在本地删除。 也可以建表时设置数据的生命期,从数据导入时开始计算,超过这个生命期的数据会上传到对象存储,并在本地删除。 上面冷热分层的逻辑,也可以只作用于分区数据。

每次数据导入(如执行一个insert、一次stream load),虽然最终存储在segment文件中, 但是也会创建一个对应的Rowset对象,记录了这批数据的导入时间。 冷热分层粒度就是基于Rowset,当到达冷却时间时,会将当前满足条件的Rowset 全部上传到对象存储,并删除本地数据,之后新导入的数据,生成的新Rowset,会在到达冷却时间后也上传到对象存储。

查询时,如果查询的数据是热数据,这些数据仍然存储在BE节点,可以直接返回结果, 如果查询的数据是冷数据,BE会读取对象存储里的数据,在本地恢复,再返回结果。

这一功能非常适用于交易记录、日志的存储和查询。

注意,冷热分层是以导入时间作为数据冷热标准,自动上传冷数据的,对用户是透明的, 不是以用户定义的某个类型为日期的列,用户对于冷热分层的控制是非常有限的。

4、默认使用新的优化器 nereids

5、默认使用新执行器 这种称为pipeline的执行器,将执行计划的执行分为更小的粒度,最大程度的异步化和并行化。

相关推荐
文慧的科技江湖20 小时前
2026年10月4日充电桩行业晚报:当“只充80%“成为通行规则,行业开始管单车占桩时长 | 慧知开源充电桩平台
开源·apache·新能源·虚拟电厂·充电桩·ocpp·v2g
nvd113 天前
# 从 192 秒到 13 秒:Apache Flink 批处理极速调优实战记录
大数据·flink·apache
众链网络4 天前
景区票务系统选型的技术尽调清单:从并发、数据到二次开发的 12 个必查项
apache·景区票务系统
AllData公司负责人5 天前
AllData数据中台物联网实时平台|集成 Apache StreamPipes,MQTT工业物联网数据实时预警实践案例
大数据·数据库·人工智能·物联网·apache·工业物联网·streampipes
白帽攻防录6 天前
SRC 挖洞:Apache Tomcat 加密拦截器绕过深度复盘,CVE-2026-34486 fail-open 一行代码怎么打穿集群通信
java·网络安全·tomcat·apache
筑梦之路6 天前
Kafka KRaft 模式 Kubernetes 部署手册(StatefulSet + apache/kafka 官方镜像)——筑梦之路
kafka·kubernetes·apache
EatFan8 天前
从T+1到分钟级:湖仓一体在大厂的真实落地收益对照(携程/网易云信/腾讯)
starrocks·flink·硬件架构·doris·湖仓一体·paimon
制造数据与AI践行者老蒋18 天前
智联工坊IoT 数据采集工程实战:2000 万条可复现设备数据生成(WorkBuddy 落地)
doris·制造业数字化·workbuddy·iot 数据采集·模拟数据生成·数据质量校验·dolphinschedul
网络豆22 天前
Apache Maven 鸿蒙 PC 适配全记录:把 JVM 构建工具交付到 HiShell
maven·apache·harmonyos
网络豆22 天前
Apache Hive 鸿蒙 PC 适配全记录:以 Qt 客户端打通 HiveQL、监控与元数据访问
hive·apache·harmonyos