一种分布式分析型数据库物化视图自适应构建与推荐方法与流程

摘要: 本发明涉及分布式分析型数据库查询优化,尤其聚焦多表连接、复杂聚合等olap(联机分析处理)场景,具体为一种非侵入式、自适应的物化视图推荐与动态管理方法,适用于s...
一种分布式分析型数据库物化视图自适应构建与推荐方法与流程

本发明涉及分布式分析型数据库查询优化,尤其聚焦多表连接、复杂聚合等 olap(联机分析处理)场景,具体为一种非侵入式、自适应的物化视图推荐与动态管理方法,适用于 starrocks、apache doris等mpp架构的分布式分析型数据库,可在不修改数据库内核的前提下,显著提升复杂查询响应速度,平衡查询性能与系统资源消耗。

背景技术:

1、随着数据经济的发展,企业olap(联机分析处理)场景的深化,面向多表关联分析、多层聚合统计等复杂查询的需求激增,数据规模也从tb级向pb 级快速跨越。olap分析型数据库作为支撑此类场景的核心基础设施,需同时满足 “海量数据存储”与 “低延迟查询响应”的双重需求。然而,在典型查询分析场景中,多表join、多层aggregate等操作需反复扫描基表、计算中间结果,导致查询执行时间长、资源消耗高,传统索引优化、sql重写等优化手段难以突破性能瓶颈。物化视图作为olap分析型数据库的关键性能优化技术,通过预计算并存储查询结果,可大幅减少重复计算开销,是提升查询性能的关键技术。但是,传统的物化视图推荐方法如立方格法(lattice-based)、多视图处理计划法(mvpp)和and-or图法,存在一些共同的问题,代价估计依赖于中间结果的行数、对于代价估计,特别是对于聚合操作的代价估计存在极大误差;执行计划要么依赖优化器生成所有的备选物化视图,要么依赖spjg(select-project-join-groupby)解析框架,前者会造成庞大的搜索空间且深度绑定代价优化器,后者一方面会产生不准确的执行计划,另一方面难以处理嵌套查询等复杂查询;缺乏对分布式场景的考虑,忽略交换节点的数据传输代价。

2、因此,针对olap数据库场景,如何突破现有技术局限,构建一套无需修改数据库内核、覆盖多算子与分布式特性、能响应负载变化的非侵入式、量化评估精准、动态适配能力强的物化视图管理方法,实现候选视图多样化生成、收益与代价精准测算及视图全生命周期动态优化,成为解决分布式分析型数据库复杂查询性能瓶颈的关键挑战。

技术实现思路

1、发明目的:针对现有物化视图深度绑定代价优化器、收益与代价评估不准、动态负载适配性差的问题,本发明提供一种分布式分析型数据库物化视图自适应构建与推荐方法。通过公共接口获取查询计划与元数据,构建多算子代价模型,使用启发式算法扩展候选视图范围来避免局部最优,视图自动化创建、更新与淘汰,来提升复杂查询性能。

2、技术方案:为实现上述目的,本发明采用的技术方案是提供一种分布式分析型数据库物化视图自适应构建与推荐方法,包括如下步骤:

3、(1)查询信息采集:采集数据库中的查询负载日志、基表元数据(含表结构、数据分布、更新频率)等信息并输入系统,建立反映查询负载特性的量化基础,为后续评估和选择提供数据支撑;

4、(2)查询计划解析:获取每个查询的执行计划,解析查询生成逻辑计划树,构建面向多算子的逻辑计划池模型,并通过结构化解析和语义丰富,提取查询关键特征,识别潜在的物化视图候选点;

5、(3)收益成本评估:基于逻辑计划池中的计划状态节点,设计包含连接、聚合、数据传输(exchange)算子的代价计算模型,估算物化视图原生执行代价与读取代价,得出单视图收益;

6、(4)自适应推荐与管理:以最大化全局查询收益为目标,以存储容量、维护代价为约束条件,通过整数规划或启发式算法求解最优物化视图组合,实时采集运行时数据,自动淘汰无效视图,实现全生命周期自动化管理。

7、进一步地,所述步骤(1)中,通过 jdbc 连接数据库,调用explain logical命令获取查询的逻辑计划,解析生成包含操作符、属性、谓词的逻辑计划树。采集表结构、数据量、更新频率、分布键等基表元数据及查询 sql、执行频率、响应时间等历史查询日志。

8、进一步地,所述步骤(2)中,为每个查询维护

k(

k≥2)个候选执行计划,形成逻辑计划池(logical plan pool model, lpp)。每个候选计划为二叉树结构,其中包括:根节点——记录计划总执行代价;计划状态节点(plan state node, pn)——描述中间结果视图。计划状态节点

pn包含以下元组信息:

9、

10、其中,

op表示操作符类型,包括 scan(基表扫描)、join(连接)、aggregate(聚合)、exchange(数据传输)算子,

a表示输出属性集合,

r表示操作涉及的基本关系集合,

p表示选择谓词条件,

j表示连接谓词条件,

g表示分组条件,

e表示节点编码键,

agf表示聚合函数,

aga表示目标属性,

dk表示exchange节点的分布键,

c表示累积计算代价。

11、对每个查询的逻辑执行计划进行解析,形成若干个不同级别子节点组成的子查询,对子查询使用

pn元组信息进行编码,形成节点编码键nkey。nkey是一个用于判断状态节点等价性的编码,由以下

pn属性进行哈希生成:

12、

13、相同编码键的节点表示其内在的逻辑计算片段等价,可以归属于同一候选物化视图(cmv)。候选物化视图cmv是由编码键相同的节点构成的集合:

14、

15、cmv中包含必要的属性信息。根节点列表属性,记录所有属于的节点在各自逻辑计划中的根节点;收益属性,记录物化该视图的全局加速收益;维护代价属性,记录增量更新或重计算的开销;哈希值属性,记录除输出属性外所有属性的哈希值,用于快速判断视图兼容性。由所有物化视图构成的候选物化视图集合

cmvs:

16、

17、进一步地,所述步骤(3)中,通过各节点代价的线性叠加计算逻辑计划的总代价,实现物化视图收益与代价的精准测算。单视图收益计算,基于计划状态节点,定义物化视图收益为原生执行代价与读取代价的差值,公式为:

18、

19、其中,为查询第

p条语句命中物化视图后,能获得的单查询总收益;为物化视图集合;为原生节点的执行代价(含连接、聚合、数据传输代价);为读取物化视图的i/o代价。

20、进一步地,所述步骤(4)中,维护代价取增量更新代价与重计算代价的最大值,增量更新代价公式为:

21、

22、其中,为增量更新代价,为第

k个候选物化视图的计算代价,为该候选物化视图对应计划状态节点的所有子孙节点集合,为子孙节点的执行代价,为第

k个候选物化视图写入数据库的 i/o代价。重计算代价为物化视图通过重新计算得到并写入数据库的代价:

23、

24、物化视图的全局收益为各查询选择最优计划的收益加权和:

25、

26、其中,加权系数为查询的查询频率。物化视图维护代价加权和公式为:

27、

28、其中,加权系数为物化视图的更新频率。

29、基于上面的物化视图收益计算逻辑,设计候选视图多样性生成策略,采用遗传算法扩展候选范围,定义二进制向量,表示选择第

i个候选视图,再根据适应度函数:

30、

31、其中为物化视图组合

x全局收益(各查询收益加权和),、为约束惩罚因子,表示物化视图中所有视图总存储占用量是否超出存储预算,表示物化视图组合中所有视图总维护代价是否超出维护预算。当存储代价或维护代价超出预算,对应的惩罚项会被激活,从全局收益中扣除相应的惩罚值,超支越严重,惩罚越大,最终的适应度就越低,以此引导算法筛选出 “既保证高查询收益,又不超出存储和维护预算” 的最优物化视图组合。然后通过锦标赛选择、单点交叉、随机变异生成新一代候选视图,确保多样性,最终将每个保留的高收益候选物化视图转换为数据库ddl语句构建到数据库中。同时,为确保逻辑计划池的规模可控并维持推荐效率,制定基于严格最近最少使用(strict lru)的更新淘汰策略,及时更新淘汰过时视图,仅保留高频使用的候选计划。

32、有益效果:本发明通过多算子模型实现代价估计,摆脱中间结果行数依赖,可以使收益估算误差控制在10%以内,实现精准量化评估;通过非侵入式逻辑计划池与遗传算法,避免依赖spjg和修改数据库底层优化器,实现复杂查询处理和执行计划生成;通过纳入exchange代价计算,匹配基表分布键,实现分布式数据库适配;通过公共接口实现推荐,支持适配starrocks、doris等主流分布式olap数据库,降低技术落地门槛。以上多方面优化既解决了传统方法代价评估不准、难以适配复杂查询、不适用于分布式数据库等问题,又创新性的通过反馈校准机制确保视图适配动态查询负载,使维护成本降低20%-30%,展现良好的动态自适应能力。经实验验证,在tpc-h 100g 数据集上,端到端查询性能提升20%~30%,性能得到显著提升。