暖春3月,在社区小伙伴的期待下,openLooKeng迎来了新版本V1.2.0。openLooKeng V1.2.0是在旧版本的基础上进行优化,并基于小伙伴们的体验和建议,新增一些技术,以提高引擎性能,争取为大家带来更丝滑流畅的体验。
于引擎内核来说,主要增强两个维度:融合分析场景和性能。
- 查询容错增强,提高引擎执行的可靠性
在批查询处理运行的过程中,当某个工作节点出现故障时,可在其他节点上恢复任务,比如对Hive数据源的 insert 和 create table as select 操作。针对长时间运行的批查询处理任务,相比上一个版本,稳定性和可靠性有了极大的提升。
- 查询性能的优化:基于 StarTree 的查询预聚合能力增强
StarTree旨在优化低延迟、聚合查询语句。我们通过StarTree查询预聚合能力,为用户构建所需要的不同维度和不同聚合操作的 cube。在以后的查询过程中,如果遇到任何可匹配的聚合子查询,引擎将直接从cube中读取数据,避免在原始表上执行查询,从而提高查询性能。
- 引入 CTE(公共表表达式)优化技术,减少内存使用
在执行计划优化过程中引入CTE(公共表表达式)技术。当一个复杂查询中,存在某个子查询(例如 with语句)被多次使用,优化器会为重复的子查询自动生成一个CTE节点,该CTE节点的输出会被执行计划流程中的多个父节点消费。也就是说,重复的子查询只会执行一次,化繁为简, 同时也减少内存占用,引擎获得更好的性能。
- 通用算子下推