在存储模型方面,Doris 支持多种存储模型,针对不同的场景做了针对性的优化:
- Aggregate Key 模型:相同 Key 的 Value 列合并,通过提前聚合大幅提升性能
- Unique Key 模型:Key 唯一,相同 Key 的数据覆盖,实现行级别数据更新
- Duplicate Key 模型:明细数据模型,满足事实表的明细存储
Doris 也支持强一致的物化视图,物化视图的更新和选择都在系统内自动进行,不需要用户手动选择,从而大幅减少了物化视图维护的代价 。
在查询引擎方面,Doris 采用 MPP 的模型,节点间和节点内都并行执行,也支持多个大表的分布式 Shuffle Join,从而能够更好应对复杂查询 。
文章插图
Doris 查询引擎是向量化的查询引擎,所有的内存结构能够按照列式布局,能够达到大幅减少虚函数调用、提升 Cache 命中率,高效利用 SIMD 指令的效果 。在宽表聚合场景下性能是非向量化引擎的 5-10 倍 。
文章插图
Doris 采用了 Adaptive Query Execution 技术, 可以根据 Runtime Statistics 来动态调整执行计划,比如通过 Runtime Filter 技术能够在运行时生成生成 Filter 推到 Probe 侧,并且能够将 Filter 自动穿透到 Probe 侧最底层的 Scan 节点,从而大幅减少 Probe 的数据量,加速 Join 性能 。Doris 的 Runtime Filter 支持 In/Min/Max/Bloom Filter 。
在优化器方面 Doris 使用 CBO 和 RBO 结合的优化策略,RBO 支持常量折叠、子查询改写、谓词下推等,CBO 支持 Join Reorder 。目前 CBO 还在持续优化中,主要集中在更加精准的统计信息收集和推导,更加精准的代价模型预估等方面 。
【Apache Doris 介绍】
推荐阅读
- 双廊古镇景点介绍 大理双廊
- 爵迹:人物天赋介绍 爵迹中最可怕的天赋
- 警察荣誉|魔力宝贝手游 : 全网最全职业介绍,不容错过!
- 爱情碟中谍分集剧情介绍 爱情碟中谍双方家长见面是第几集
- 英语自我介绍 英文自我介绍大学生!
- 稻城亚丁风景区旅游攻略详细介绍 稻城亚丁几月份去最好
- 常用退烧药介绍 退烧药有哪些
- 普洱生茶和熟茶的区别,详细介绍
- 一仆二主的剧情为何如此曲折 一仆二主剧情分集介绍
- 三年级作文介绍我自己范文 三年级作文介绍我自己