一种基于规则的数据库预计算自治系统及方法技术方案

技术编号:39333298 阅读:37 留言:0更新日期:2023-11-12 16:08
本发明专利技术涉及数据库领域,具体提供了一种基于规则的数据库预计算自治系统及方法,包括数据采集模块、负载分析模块、预计算推荐模块和用户交互模块;数据采集模块收集历史负载信息和已有预计算使用、匹配情况,用作预计算自治算法的输入;负载分析模块通过对历史负载和预计算使用情况的数据进行解析和分析,推荐算法进行预计算自治推荐;预计算推荐模块根据负载分析结果,输出新建预计算、修改或删除已有预计算的建议;用户交互模块发起预计算自治请求、自治建议查看和应用操作。与现有技术相比,本发明专利技术通过推荐的预计算和数据库中已有的预计算进行对比,找出数据库中冗余或创建错误的预计算,为用户推荐预计算删除和更改建议。为用户推荐预计算删除和更改建议。为用户推荐预计算删除和更改建议。

【技术实现步骤摘要】
一种基于规则的数据库预计算自治系统及方法


[0001]本专利技术涉及计算机科学中的数据库领域,具体提供一种基于规则的数据库预计算自治系统及方法。

技术介绍

[0002]在数据库中,通常需要对大量的原始数据进行预先计算,并保存预计算结果。数据库中定义好预计算后,当用户在查询原始数据时,数据库内核根据预计算匹配规则改写用户原始SQL语句,自动使用预计算结果,避免现场运算及重复运算,以快速响应和支持业务决策。这种机制称为预计算。
[0003]由于预计算是预先定义的,在传统的数据库管理方式中,这些定义工作通常是由DBA(数据库管理员)手动完成的,由于缺少对应用负载全局认知可能无法正确地定义预计算,导致预计算的定义存在冗余、无法有效匹配用户的查询等问题。

技术实现思路

[0004]本专利技术是针对上述现有技术的不足,提供一种实用性强的数据库预计算自治系统。
[0005]本专利技术进一步的技术任务是提供一种设计合理,安全适用的数据库预计算自治方法。
[0006]本专利技术解决其技术问题所采用的技术方案是:一种基于规则的数据库预计算自治系统,包括数据采集模块、负载分析模块、预计算推荐模块和用户交互模块;所述数据采集模块用于采集数据库中所有的历史负载信息,用作预计算自治算法的输入,所述历史负载信息包括两种,一种是使用了预计算的负载,另一种是未使用预计算的负载;所述负载分析模块用于通过对所述数据采集模块中历史负载和预计算使用情况的数据进行解析和分析,支持推荐算法进行预计算自治的推荐;所述预计算推荐模块根据负载分析结果,输出新建预计算、修改或删除已有预计算的建议;所述用户交互模块用于发起预计算自治请求的、自治建议查看和应用操作。
[0007]进一步地,在数据采集模块中,采集的数据包含三个部分:(1)数据库中已有预计算的元信息,保存在表kwdb_pre_computing中;(2)已匹配预计算的使用情况,保存在kwdb_pc_matched_workload中;(3)未匹配预计算的查询SQL,保存在kwdb_pc_unmatched_workload表中。
[0008]进一步地,在负载分析模块中,使用负载分析算法进行输入信息,所述输入信息包含数据采集模块中采集到的三部分数据,输出为预计算推荐模块可用的数据结构;负载分析算法包含以下两部分;
(1)未使用预计算历史负载分析,解析和分析未使用预计算的历史负载涉及的数据库、表、列、聚合函数、时间窗口和频次;(2)已使用预计算的历史负载分析,找到SQL语句涉及的表名、数据库名、聚合列、聚合函数时间窗口大小,统计每种时间窗口的查询次数,查询次数即为匹配次数;进一步地,在预计算推荐模块中,使用预计算推荐算法进行操作,所述预计算推荐算法具体规则如下:(1)假设待推荐预计算的目标表为T,所述目标表上的以时间窗口为分组列的用户查询语句表示为查询集合Q={q1, q2, ..., qn},设基于规则的推荐算法为F,推荐结果为PC ,PC可以为0至m个,那么推荐任务形式化表述为PC=F(T, Q);(2)提取所有查询集合Q中的聚合窗口大小,表示为I={i1, i2, ..., i
n
};提取所有查询集合Q中的聚合函数,表示为G={g1, g2, ... g
n
};(3)基于规则的推荐算法F表示为:首先从历史查询中找出最小的interval,作为候选interval,即I
c
= min(i1, i2, ..., i
n
),找出最小的interval I
c 之后,查找I中所有I
c
的整倍数的interval,那么整数倍Interval的查询都用最小的interval来进行聚合,表示PC
c
同时服务于interval的查询,记为候选查询集合Q
c
;从聚合函数中提取候选查询集合Q
c
包含的聚合函数G
c,
通过DDL构建模块构造预计算创建语句:PC
c
= DDL(T,I
c
, G
c
);(4)从查询集合Q中剔除已经推荐过预计算的查询集合Q
c
,剩余的查询继续以步骤(3)中基于规则的推荐算法F进行操作,即PC=F(T, Q

Q
c
),直到所有的查询都被推荐了预计算,算法结束。
[0009]进一步地,在用户交互模块中,请求并触发预计算:用户通过 DDL 发起对 db、schema、 table和sql不同级别的预计算自治请求;自治建议查看:以列表形式展示每条预计算建议,同时展示每条建议的代价和收益;应用操作:用户收到预计算建议后,判断是否接受所述预计算,若接收,则执行;不接受,则不执行;对认为不合理的建议,则手动修改,直接执行。
[0010]一种基于规则的数据库预计算自治方法,具有如下步骤:S1、采集数据;S2、负载分析;S3、预计算推荐;S4、用户交互执行。
[0011]进一步地,在步骤S1中,通过开关参数来控制是否打开采集数据功能,当开关打开时,采集数据库中的预计算元信息,使用了预计算的负载和未使用预计算的负载;在步骤S2中,对步骤S1中采集的数据进行分析,生成推荐算法可用的数据结构。
[0012]进一步地,在步骤S3中,使用预计算推荐算法进行操作,所述预计算推荐算法具体规则如下:(1)假设待推荐预计算的目标表为T,所述目标表上的以时间窗口为分组列的用户
查询语句表示为查询集合Q={q1, q2, ..., qn},设基于规则的推荐算法为F,推荐结果为PC ,PC可以为0至m个,那么推荐任务形式化表述为PC=F(T, Q);(2)提取所有查询集合Q中的聚合窗口大小,表示为I={i1, i2, ..., i
n
};提取所有查询集合Q中的聚合函数,表示为G={g1, g2, ... g
n
};(3)基于规则的推荐算法F表示为:首先从历史查询中找出最小的interval,作为候选interval,即I
c
= min(i1, i2, ..., i
n
),找出最小的interval I
c 之后,查找I中所有I
c
的整倍数的interval,那么整数倍Interval的查询都用最小的interval来进行聚合,表示PC
c
同时服务于interval的查询,记为候选查询集合Q
c
;从聚合函数中提取候选查询集合Q
c
包含的聚合函数G
c,
通过DDL构建模块构造预计算创建语句:PC
c
= DDL(T,I
c
, G
c
);(4)从查询集合Q中剔除已经推荐过预计算的查询集合Q
c
,剩余的查询继续以步骤(3)中基于规则的推荐算法F进行操作,即PC=F(T, Q
‑<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于规则的数据库预计算自治系统,其特征在于,包括数据采集模块、负载分析模块、预计算推荐模块和用户交互模块;所述数据采集模块用于采集数据库中所有的历史负载信息,用作预计算自治算法的输入,所述历史负载信息包括两种,一种是使用了预计算的负载,另一种是未使用预计算的负载;所述负载分析模块用于通过对所述数据采集模块中历史负载和预计算使用情况的数据进行解析和分析,支持推荐算法进行预计算自治的推荐;所述预计算推荐模块根据负载分析结果,输出新建预计算、修改或删除已有预计算的建议;所述用户交互模块用于发起预计算自治请求的、自治建议查看和应用操作。2.根据权利要求1所述的一种基于规则的数据库预计算自治系统,其特征在于,在数据采集模块中,采集的数据包含三个部分:(1)数据库中已有预计算的元信息,保存在表kwdb_pre_computing中;(2)已匹配预计算的使用情况,保存在kwdb_pc_matched_workload中;(3)未匹配预计算的查询SQL,保存在kwdb_pc_unmatched_workload表中。3.根据权利要求2所述的一种基于规则的数据库预计算自治系统,其特征在于,在负载分析模块中,使用负载分析算法进行输入信息,所述输入信息包含数据采集模块中采集到的三部分数据,输出为预计算推荐模块可用的数据结构;负载分析算法包含以下两部分;(1)未使用预计算历史负载分析,解析和分析未使用预计算的历史负载涉及的数据库、表、列、聚合函数、时间窗口和频次;(2)已使用预计算的历史负载分析,找到SQL语句涉及的表名、数据库名、聚合列、聚合函数时间窗口大小,统计每种时间窗口的查询次数,查询次数即为匹配次数。4.根据权利要求3所述的一种基于规则的数据库预计算自治系统,其特征在于,在预计算推荐模块中,使用预计算推荐算法进行操作,所述预计算推荐算法具体规则如下:(1)假设待推荐预计算的目标表为T,所述目标表上的以时间窗口为分组列的用户查询语句表示为查询集合Q={q1, q2, ..., qn},设基于规则的推荐算法为F,推荐结果为PC ,PC可以为0至m个,那么推荐任务形式化表述为PC=F(T, Q);(2)提取所有查询集合Q中的聚合窗口大小,表示为I={i1, i2, ..., i
n
};提取所有查询集合Q中的聚合函数,表示为G={g1, g2, ... g
n
};(3)基于规则的推荐算法F表示为:首先从历史查询中找出最小的interval,作为候选interval,即I
c = min(i1, i2, ..., i
n
),找出最小的interval I
c 之后,查找I中所有I
c
的整倍数的interval,那么整数倍Interval的查询都用最小的interval来进行聚合,表示PC
c
同时服务于interval的查询,记为候选查询集合Q
c
;从聚合函数中提取候选查询集合Q
c
包含的聚合函数G
c,
通过DDL构建模块构造预计算创建语句:PC
c = DDL(T,I
c
, G
c
);(4)从查询集合Q中剔除已经推荐过预计算的查询集合Q
c
,剩余...

【专利技术属性】
技术研发人员:冷友方孙路明赵衎衎容兴兴魏可伟张晖
申请(专利权)人:山东浪潮数据库技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1