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 -- 用于数据管理的隔离,有

本文介绍了Doris2.0版本的新特性,包括存算分离的原理与限制,多源数据目录(Multi-Catalog)的管理优势,冷热分层用于数据存储和查询效率提升,以及新优化器Nereids和pipeline执行器的应用。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



