物化视图在 SparkSQL 中的实践
本文转载自公众号: 数据湖技术
作者:马骏杰
什么是物化视图
物化视图主要用于预先计算并保存表连接或聚合等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,从而快速的得到结果。物化视图使用查询重写(query rewrite)机制,不需要修改原有的查询语句,引擎自动选择合适的物化视图进行查询重写,完全对应用透明。它和视图的区别在于,物化视图将存储实际的数据,而视图只是存储SQL语句。使用物化视图的基本流程为:
- 创建物化视图
- Query查询
- 基于物化视图,对Query进行查询重写,生成新的Query
- 基于新的Query进行查询
如下图,user,item,ui是3张表,先创建物化视图mv,使用Query查询时,将基于mv对Query进行重写,生成新的基于物化视图的Query,再进行查询。这个例子中可以看到,在最终生成的Quer