OmniMV物化视图特性
介绍OmniMV物化视图特性架构。
OmniMV物化视图特性是通过AI算法从历史SQL查询中推荐出最优物化视图,并在Spark和ClickHouse中自动对用户SQL进行物化视图匹配,将匹配成功的物化视图替换用户执行计划的部分SQL,大幅减少重复计算,提升查询性能。该特性支持用户将SQL任务提交给Spark集群或者ClickHouse集群,集群管理节点进行任务分配,分发多个子任务到对应的多个计算节点执行。
OmniMV物化视图架构如图1所示。
OmniMV物化视图主要包含三大模块:物化视图候选视图生成模块、物化视图成本评估模块、物化视图SQL写模块。
- 物化视图候选视图生成模块:生成候选视图。
- 物化视图成本评估模块:训练一个成本评估模型,预测候选视图成本。
- 物化视图SQL写模块:修改SQL的物理执行计划。
OmniMV物化视图的使用流程如下。
- 收集历史查询日志,例如Yarn logs的日志。
- 从历史日志中解析得到SQL相关的信息,包括SQL文本、SQL执行计划、SQL运行时间等。
- 从2得到的信息中,进行候选视图生成,然后使用贪心选择TOP N的候选视图。
- 创建候选视图,使用物化视图SQL改写模块修改SQL的物理执行计划,得到训练数据后训练一个成本评估模型。
- 使用成本评估模型预测所有候选视图的成本。
- 根据指定的贪心选择策略,最终给出推荐的视图集。
父主题: 关键特性