Apache Doris 介绍( 二 )

  • Min/Max :有效过滤数值类型的等值和范围查询
  • Bloom Filter :对高基数列的等值过滤裁剪非常有效
  • Invert Index :能够对任意字段实现快速检索
  •  
    在存储模型方面,Doris 支持多种存储模型,针对不同的场景做了针对性的优化:
     
    • Aggregate Key 模型:相同 Key 的 Value 列合并,通过提前聚合大幅提升性能
    • Unique Key 模型:Key 唯一,相同 Key 的数据覆盖,实现行级别数据更新
    • Duplicate Key 模型:明细数据模型,满足事实表的明细存储
     
    Doris 也支持强一致的物化视图,物化视图的更新和选择都在系统内自动进行,不需要用户手动选择,从而大幅减少了物化视图维护的代价 。
    在查询引擎方面,Doris 采用 MPP 的模型,节点间和节点内都并行执行,也支持多个大表的分布式 Shuffle Join,从而能够更好应对复杂查询 。
    Apache Doris 介绍

    文章插图
     
    Doris 查询引擎是向量化的查询引擎,所有的内存结构能够按照列式布局,能够达到大幅减少虚函数调用、提升 Cache 命中率,高效利用 SIMD 指令的效果 。在宽表聚合场景下性能是非向量化引擎的 5-10 倍 。
    Apache Doris 介绍

    文章插图
     
    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 介绍】


    推荐阅读