searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Doris 性能优化

2024-03-12 07:18:25
41
0

Doris 通过多种查询优化策略,如 Join 优化、谓词下推、运行时过滤,字典优化,算子优化等,来提供高性能的查询能力。来提升整体性能

Join 优化

在查询中,Join 操作往往是非常耗时的。Doris 提供了多种 Join 优化策略来提高查询性能:

Join 顺序优化:Doris 会根据统计信息选择最优的 Join 顺序。通常,先执行小表与大表的 Join 会更加高效。

Hash Join:对于某些类型的 Join,Doris 可能会使用 Hash Join 算法,它通过在内存中构建哈希表来加速 Join 操作。

Bucketed Join:如果两个参与 Join 的表都进行了分桶,并且桶的划分方式相同,Doris 可以利用这一特性进行 Bucketed Join,即只在同一桶内的数据进行 Join,这样可以大大减少数据的扫描量。

谓词下推

谓词下推是一种将过滤条件尽可能早地应用到查询执行过程中的优化策略。在 Doris 中,谓词下推可以帮助减少数据的扫描量,从而提高查询性能。例如,如果查询中包含一个限制条件,Doris 会尝试将这个条件尽早地应用到数据读取阶段,这样只有满足条件的数据才会被进一步处理,减少数据加载量,从而提升查询性能。常见的谓词有 where,on。

运行时过滤

运行时过滤是在查询执行过程中,根据已经获取的部分数据结果,动态地调整过滤条件,从而进一步减少数据的扫描量。这种优化通常与谓词下推结合使用,可以在查询执行的不同阶段根据实际情况进行调整。

表结构优化

Doris表结构的优化包括分区,分桶,以及key列顺序等,结合业务场景,对于常用作限制条件的字段,可以作为分桶字段,查询时减少桶的扫描,从而提升查询性能。注意:分桶字段的数据类型维整形。可结合实际应用场景进行设置。

字典优化

Doris 支持字典编码,这是一种有效的数据压缩和编码技术。通过字典优化,Doris 可以进一步减少数据的存储空间,加快数据的读取速度。字典优化通常与列式存储结合使用,因为列式存储更容易利用字典编码的优势。

通过bitmap位图实现精准查询时,在表处理过程中,字段尽量都是整形,整形在构建全局字典时,避免了全局编码,提升数据同步和查询性能。

0条评论
0 / 1000
l****n
6文章数
0粉丝数
l****n
6 文章 | 0 粉丝
原创

Doris 性能优化

2024-03-12 07:18:25
41
0

Doris 通过多种查询优化策略,如 Join 优化、谓词下推、运行时过滤,字典优化,算子优化等,来提供高性能的查询能力。来提升整体性能

Join 优化

在查询中,Join 操作往往是非常耗时的。Doris 提供了多种 Join 优化策略来提高查询性能:

Join 顺序优化:Doris 会根据统计信息选择最优的 Join 顺序。通常,先执行小表与大表的 Join 会更加高效。

Hash Join:对于某些类型的 Join,Doris 可能会使用 Hash Join 算法,它通过在内存中构建哈希表来加速 Join 操作。

Bucketed Join:如果两个参与 Join 的表都进行了分桶,并且桶的划分方式相同,Doris 可以利用这一特性进行 Bucketed Join,即只在同一桶内的数据进行 Join,这样可以大大减少数据的扫描量。

谓词下推

谓词下推是一种将过滤条件尽可能早地应用到查询执行过程中的优化策略。在 Doris 中,谓词下推可以帮助减少数据的扫描量,从而提高查询性能。例如,如果查询中包含一个限制条件,Doris 会尝试将这个条件尽早地应用到数据读取阶段,这样只有满足条件的数据才会被进一步处理,减少数据加载量,从而提升查询性能。常见的谓词有 where,on。

运行时过滤

运行时过滤是在查询执行过程中,根据已经获取的部分数据结果,动态地调整过滤条件,从而进一步减少数据的扫描量。这种优化通常与谓词下推结合使用,可以在查询执行的不同阶段根据实际情况进行调整。

表结构优化

Doris表结构的优化包括分区,分桶,以及key列顺序等,结合业务场景,对于常用作限制条件的字段,可以作为分桶字段,查询时减少桶的扫描,从而提升查询性能。注意:分桶字段的数据类型维整形。可结合实际应用场景进行设置。

字典优化

Doris 支持字典编码,这是一种有效的数据压缩和编码技术。通过字典优化,Doris 可以进一步减少数据的存储空间,加快数据的读取速度。字典优化通常与列式存储结合使用,因为列式存储更容易利用字典编码的优势。

通过bitmap位图实现精准查询时,在表处理过程中,字段尽量都是整形,整形在构建全局字典时,避免了全局编码,提升数据同步和查询性能。

文章来自个人专栏
数据治理-数据质量
6 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0