本技术涉及数据处理,尤其是涉及一种基于物化视图的查询加速方法、装置、电子设备及介质。
背景技术:
1、对于企业或者机构来说,数据库系统是存储、管理和分析数据的重要部分,其中现代分析型数据库可以作为企业或机构进行数据管理的重要组成部分,帮助企业或机构更好地管理和利用数据资源。现代分析型数据库可以提供海量数据的存储和管理能力,同时可以提供强大的数据分析和查询能力,来帮助企业或机构改进业务流程和决策。随着cpu硬件的计算速度提升,以及向量化计算技术的普及,端到端的查询性能得到显著的提升,但是与此同时,企业或机构实际的查询过程中要计算的数据量越来越多,目前的即时计算只能局限于少量的数据计算过程中,无法满足用户对查询时延的诉求。
2、相关技术中,很多企业或机构选择在数据库中设置多级存储,但是目前的多级存储架构在工作上重在优化缓存的效率,将原始数据缓存与计算语义结合,提高缓存的扩展性。这样的方式使用于非常有限的数据过滤场景,导致查询加速的效果较差。
技术实现思路
1、为了加快查询过程,提升查询加速的效果,本技术提供一种基于物化视图的查询加速方法、装置、电子设备及介质。
2、第一方面,本技术提供一种基于物化视图的查询加速方法,包括:
3、接收查询发起请求并解析,确定对应的查询主体数据、计算过程,并对所述计算过程进行优化,生成初始执行计划;
4、基于所述查询主体数据,检索确定可用物化视图;
5、根据所述可用物化视图和所述查询主体数据,从外置数据湖中提取所述查询发起请求对应的原始需求数据,并基于所述原始需求数据和所述可用物化视图,改写所述初始执行计划,确定逻辑执行计划;
6、根据查询执行引擎的设备属性,将所述逻辑执行计划转换为可执行物理计划,并将所述可执行物理计划发送到所述查询执行引擎,以使所述查询执行引擎根据所述可执行物理计划对所述可用物化视图和所述原始需求数据执行计算过程。
7、可选的,所述方法接收业务人员发送的预计算需求信息;
8、分析所述预计算需求信息,确定每一条预计算需求对应的预计算原始数据、需求计算方式和维护属性;
9、从所述外置数据湖中调用所述预计算原始数据,按照所述需求计算方式进行计算,确定预计算中间数据;
10、将所述预计算中间数据存储到内置存储区域中,将所述预计算中间数据与所述预计算原始数据关联,得到目标物化视图;
11、根据所述维护属性设置所述目标物化视图的物化维护间隔,以按照所述物化维护间隔定时扫描所述外置数据湖,在发生原始数据的更新时,更新内置存储区域中对应的中间数据。
12、可选的,所述将所述预计算中间数据存储到内置存储区域中,将所述预计算中间数据与所述预计算原始数据关联,得到目标物化视图,包括:
13、获取所述预计算需求对应的预计算原始数据在所述外置数据湖中的数据源区,按照所述数据源区进行分区映射,以将内置存储区域进行分区,得到若干默认物化视图;
14、按照所述预计算需求对应的预计算原始数据,从所述若干默认物化视图中确定所述预计算需求对应的默认物化视图;
15、将预计算需求与所述预计算需求对应的预计算中间数据,写入所述预计算需求对应的默认物化视图,得到目标物化视图。
16、可选的,所述方法还包括:
17、按照预设检测频率检测所述外置数据湖中的数据源区的分区更新时间戳,确定每一数据源区的更新状态,所述更新状态包括更新和保持;
18、当所述更新状态为更新时,从所述分区更新时间戳中提取更新时间进行记录;
19、扫描所述数据源区中的原始数据,确定是否发生数据变化;
20、若发生数据变化,则获取所述原始数据相关联若干物化视图,并按照所述若干物化视图对应的数据计算方式,分别进行重计算,确定每一物化视图对应的预计算更新中间数据;
21、将所述预计算更新中间数据写入对应的物化视图,覆盖所述物化视图中的预计算中间数据并记录数据覆盖时刻。
22、可选的,所述基于所述查询主体数据,检索确定可用物化视图,包括:
23、查找所述查询主体数据对应的原始数据表,所述原始数据表存储在所述外置数据湖中;
24、根据所述外置数据湖与若干目标物化视图之间的映射关系、所述内置存储区域中的若干目标物化视图之间的依赖关系,对所述若干目标物化视图进行检索,确定相关物化视图;
25、根据所述初始执行计划,从所述相关物化视图中确定用于进行所述查询发起请求对应的改写过程的相关物化视图,作为可选物化视图。
26、可选的,所述可选物化视图包括第一可选物化视图和第二可选物化视图;所述根据所述初始执行计划,从所述相关物化视图中确定用于进行所述查询发起请求对应的改写过程的相关物化视图,作为可选物化视图,包括:
27、根据所述初始执行计划,从所述相关物化视图中确定用于进行所述查询发起请求对应的改写过程的相关物化视图;
28、获取所述相关物化视图对应的最新数据覆盖时刻、对应在所述外置数据湖中的若干数据源区的最新更新时间,并确定所述最新数据覆盖时刻距离当前时刻的第一时间间隔和所述最新更新时间距离当前时刻的第二时间间隔;
29、判断所述第一时间间隔是否大于所述第二时间间隔;
30、若不是,则确定所述相关物化视图中的预计算中间数据未过期,将该相关物化视图作为第一可选物化视图;
31、若是,则确定所述相关物化视图中的预计算中间数据过期,将该相关物化视图进行更新,作为第二可选物化视图,以按照第一可选物化视图、第二可选物化视图的顺序进行计算。
32、可选的,所述查询发起请求还包括原始投影表达式;所述基于所述原始需求数据和所述可用物化视图,改写所述初始执行计划,确定逻辑执行计划,包括:
33、分析所述初始执行计划,确定初步改写方式,所述初步改写方式包括谓词补偿改写、多表连接改写、可读增强改写和操作符改写;
34、根据所述原始需求数据和所述可用物化视图之间的数据关系,对所述初步改写方式进行筛选,确定目标改写方式;
35、按照所述目标改写方式对所述初始执行计划进行改写,确定第一逻辑执行计划;
36、分析所述第一逻辑执行计划,确定所述原始需求数据和所述可用物化视图对应的数据执行类型,所述数据执行类型包括数值型数据和文本型数据;
37、对所述第一逻辑执行计划进行聚合改写,确定第二逻辑执行计划;
38、根据所述数据执行类型和所述查询主体数据,确定所述原始投影表达式的改写方式,并对第二逻辑执行计划进行改写,确定第三逻辑执行计划;
39、对所述初始执行计划和所述第三逻辑执行计划分别进行模拟运行,确定所述第三逻辑执行计划对应的查询加速收益;
40、若所述查询加速收益大于改写过程的数据运算收益,则将所述第三逻辑执行计划确定为逻辑执行计划。
41、第二方面,本技术提供一种基于物化视图的查询加速装置,包括:
42、初始执行计划生成模块,用于接收查询发起请求并解析,确定对应的查询主体数据、计算过程,并对所述计算过程进行优化,生成初始执行计划;
43、可用物化视图确定模块,用于基于所述查询主体数据,检索确定可用物化视图;
44、逻辑执行计划确定模块,用于根据所述可用物化视图和所述查询主体数据,从外置数据湖中提取所述查询发起请求对应的原始需求数据,并基于所述原始需求数据和所述可用物化视图,改写所述初始执行计划,确定逻辑执行计划;
45、可执行物理计划发送模块,用于根据查询执行引擎的设备属性,将所述逻辑执行计划转换为可执行物理计划,并将所述可执行物理计划发送到所述查询执行引擎,以使所述查询执行引擎根据所述可执行物理计划对所述可用物化视图和所述原始需求数据执行计算过程。
46、第三方面,本技术提供一种电子设备,包括:存储器和处理器,所述存储器上存储有能够被处理器加载并执行第一方面的方法的计算机程序。
47、第四方面,本技术提供一种计算机可读存储介质,存储有能够被处理器加载并执行第一方面的方法的计算机程序。