---
title: 架构介绍
description: "介绍OmniMV物化视图特性架构。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2400/bds/kunpengbds_omniruntime_20_0403.html
sourcePath: /source/zh/kunpengboostkithistory/2400/bds/kunpengbds_omniruntime_20_0403.html
indexId: dbd900469e46ec0d8f6ed6513ef126cdb35ec0abddc745cddef8035d760bbd2978
---
# 架构介绍

介绍OmniMV物化视图特性架构。

OmniMV物化视图特性是通过AI算法从历史SQL查询中推荐出最优物化视图，并在Spark和ClickHouse中自动对用户SQL进行物化视图匹配，将匹配成功的物化视图替换用户执行计划的部分SQL，减少重复计算，提升查询性能。该特性支持用户将SQL任务提交给Spark集群或者ClickHouse集群，集群管理节点进行任务分配，分发多个子任务到对应的多个计算节点执行。

OmniMV物化视图架构如图1所示。

图1 OmniMV物化视图软件架构

OmniMV物化视图主要包含三大模块：物化视图候选视图生成模块、物化视图成本评估模块、物化视图SQL写模块。

- 物化视图候选视图生成模块：生成候选视图。
- 物化视图成本评估模块：训练一个成本评估模型，预测候选视图成本。
- 物化视图SQL写模块：修改SQL的物理执行计划。

OmniMV物化视图的使用流程如下。

1. 收集历史查询日志，例如Yarn logs的日志。
2. 从历史日志中解析得到SQL相关的信息，包括SQL文本、SQL执行计划、SQL运行时间等。
3. 从2得到的信息中，进行候选视图生成，然后使用贪心选择TOP N的候选视图。
4. 创建候选视图，使用物化视图SQL改写模块修改SQL的物理执行计划，得到训练数据后训练一个成本评估模型。
5. 使用成本评估模型预测所有候选视图的成本。
6. 根据指定的贪心选择策略，最终给出推荐的视图集。
