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(

最低0.47元/天 解锁文章
2851

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



