Doris架构解析

1、doris定位:
实时数仓

2、doris架构:
Frontend(FE):主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。
Backend(BE):主要负责数据存储、查询计划的执行。
FE和BE都可以横向扩展的,单集群可以支持到数百台机器,数十PB的存储容量。

3、存储引擎:
列式存储

4、索引结构:
Sorted Compound Key Index,可以最多指定三个列组成复合排序键,通过该索引,能够有效进行数据裁剪,从而能够更好支持高并发的报表场景
Min/Max Index:有效过滤数值类型的等值和范围查询
BloomFilter Index:对高基数列的等值过滤裁剪非常有效
Inverted Index:能够对任意字段实现快速检索

5、存储模型:
聚合模型(Aggregate Key Model):相同Key的Value列合并,通过提前聚合大幅提升性能
主键模型(Unique Key Model):Key唯一,相同Key的数据覆盖,实现行级别数据更新
明细模型(Duplicate Key Model):明细数据模型,满足事实表的明细存储
支持强一致的物化视图

6、查询引擎:
MPP模型,节点间和节点内都并行执行,也支持多个大表的分布式Shuffle Join。
向量化查询,所有的内存结构能够按照列式布局,能够达到大幅减少虚函数调用、提升Cache命中率,高效利用SIMD指令的效果。
Adaptive Query Execution技术,可以根据Runtime Statistics来动态调整执行计划。
CBO和RBO结合的优化策略,RBO支持常量折叠、子查询改写、谓词下推等,CBO支持Join Reorder。
注:
物化视图(Material View)是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。
Shuffle Join适用于两个表的大小都比较大,需要进行数据分区操作,然后将数据分布到不同的工作节点上进行JOIN操作。
SIMD(Single Instruction Multiple Data)指令集,指单指令多数据流技术,可用一组指令对多组数据通进行并行操作。
sql查询优化器:RBO(Rule-Based Optimization)-基于规则的优化器、CBO(Cost-Based Optimization)-基于代价的优化器。

7、数据库连接:
1、采用MySQL网络连接协议,兼容 MySQL 生态的命令行工具、JDBC/ODBC 和各种可视化工具。内置了一个简单的Web UI方便使用。
2、基于Arrow Flight SQL协议实现了高速数据链路,支持多种语言使用SQL从Doris高速读取大批量数据,如Python/Java/Spark/Flink等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值