数据库表的处理方法和系统与流程

文档序号:30509688发布日期:2022-06-25 01:31阅读:来源:国知局

技术特征:
1.一种数据库表的处理方法,其特征在于,包括:采集单机数据库的数据库审计日志和统计信息;接收存储节点的个数,所述存储节点为:分布式数据库中用于存储所述单机数据库中表的存储节点;根据所述数据库审计日志,得到所述表的语句执行信息;根据所述语句执行信息、所述统计信息,以及所述存储节点的个数,获取所述表的拆分信息;根据所述表的拆分信息,输出所述表的拆分建议。2.根据权利要求1所述的方法,其特征在于,所述语句执行信息包括:每个候选列关联的语句的执行次数比例,候选列为:所述表关联的语句涉及到的列;所述根据所述数据库审计日志,得到所述表的语句执行信息,包括:将所述数据库审计日志进行脱敏处理,得到所述表关联的语句的第一执行次数,以及所述表关联的每个语句涉及到的列,以得到所述候选列;根据所述每个候选列关联的语句的第二执行次数,以及所述第一执行次数,获取所述每个候选列关联的语句的执行次数比例。3.根据权利要求2所述的方法,其特征在于,所述拆分信息包括:拆分键,所述拆分键用于对所述表进行拆分,所述统计信息包括:所述表中每个列的区分度;所述根据所述语句执行信息、所述统计信息,以及所述存储节点的个数,获取所述表的拆分信息,包括:a,在第i次循环中,根据第i-1次拆分后的表的行信息和/或所述第i-1次拆分后的表的数据量,检测是否对所述第i-1次拆分后的表进行第i次拆分,若是,执行步骤b、步骤c,所述i为大于或等于1的整数,当所述i为1时,所述第i-1次拆分后的表为:未经拆分的表;b,根据多个候选列中的部分候选列的执行次数比例,以及所述部分候选列的区分度,确定第i次拆分的拆分键;c,根据第i-1次拆分后的表的行信息和/或所述第i-1次拆分后的表的数据量,以及所述存储节点的个数,确定每个所述i-1次拆分后的表经第i次拆分后的数量。4.根据权利要求3所述的方法,其特征在于,当所述i为1时,所述部分候选列为所述多个候选列中的至少一个第一候选列,每个第一候选列中包括表中的一列;所述根据多个候选列中的部分候选列的执行次数比例,以及所述部分候选列的区分度,确定第i次拆分的拆分键,包括:根据所述每个第一候选列关联的语句的执行次数比例,以及所述每个第一候选列的区分度,在所述至少一个第一候选列中确定第一目标列;将所述第一目标列的类型作为第一拆分键。5.根据权利要求4所述的方法,其特征在于,所述在所述至少一个第一候选列中确定第一目标列,包括:将区分度大于预设区分度,且大于预设比例中最大执行次数比例的第一候选列作为所述第一目标列。6.根据权利要求5所述的方法,其特征在于,当所述i为2时,所述部分候选列为所述多个候选列中的至少一个第二候选列,每个第二候选列中包括表中的至少一列,且所述至少
一列中包括所述第一目标列;所述根据多个候选列中的部分候选列的执行次数比例,以及所述部分候选列的区分度,确定第i次拆分的拆分键,包括:根据所述每个第二候选例关联的语句的执行次数比例,以及所述每个第二候选例的区分度,在所述至少一个第二候选列中确定第二目标列;在所述第二目标列的类型中,将除了所述第一拆分键的剩余类型作为第二拆分键。7.根据权利要求4或5所述的方法,其特征在于,所述根据所述数据库审计日志,得到所述表的语句执行信息之前,还包括:采集表结构,所述表结构中包括字段类型;所述将所述第一目标列的类型作为第一拆分键之后,包括;根据所述字段类型,检测所述第一拆分键是否可用。8.根据权利要求6所述的方法,其特征在于,所述根据所述表的拆分信息,输出所述表的拆分建议,包括:根据拆分键和拆分函数的映射关系,获取所述第一拆分键对应的第一拆分函数,以及所述第二拆分键对应的第二拆分函数;输出所述第一拆分函数、所述第二拆分函数,以及所述数量。9.根据权利要求6所述的方法,其特征在于,第三候选列为:所述候选列中不包含所述第一目标列、所述第二目标列的候选列,所述方法还包括:若在第三候选列中,存在执行次数比例大于所述预设比例且区分度大于所述预设区分度的候选列,则创建全局二级索引。10.根据权利要求9所述的方法,其特征在于,所述创建全局二级索引,包括:根据所述每个第三候选列关联的语句的执行次数比例,以及所述每个第三候选列的区分度,在所述至少一个第三候选列中确定第三目标列,所述第三目标列的区分度大于所述预设区分度,且执行次数比例大于所述预设比例;将所述第三目标列的类型作为第三拆分键。11.根据权利要求10所述的方法,其特征在于,所述将所述第三目标列的类型作为第三拆分键之后,包括:若确定对第一次拆分后的表进行第二次拆分,则根据每个第四候选例的关联的语句的执行次数比例,以及所述每个第四候选例的区分度,确定第四拆分键,所述每个第四候选列中包括表中的至少一列,且所述每个第四候选列中包括的至少一列中包含有所述第三目标列。12.根据权利要求11所述的方法,其特征在于,所述根据所述数据库审计日志,得到所述表的语句执行信息之前,还包括:采集所述单机数据库的索引;所述确定第四拆分键之后,还包括:确定预设覆盖列的类型;在所述预设覆盖列的类型、所述第三拆分键,以及所述第四拆分键中,删除与所述索引重复的类型;根据删除后的索引、所述预设覆盖列的类型、所述第三拆分键,以及所述第四拆分键,
得到所述全局二级索引的拆分函数;所述输出所述第一拆分函数、所述第二拆分函数,以及所述数量,包括:输出所述第一拆分函数、所述第二拆分函数、所述数量,以及所述全局二级索引的拆分函数。13.根据权利要求1所述的方法,其特征在于,所述采集单机数据库的数据库审计日志和统计信息之后,还包括:若所述单机数据库与所述分布式数据库的类型不同,则将采集到的所述数据库审计日志和所述统计信息进行语法转换,以转换成所述分布式数据库识别的语法。14.一种数据库表的处理系统,其特征在于,包括:采集组件,用于采集单机数据库的数据库审计日志和统计信息;收发组件,用于接收存储节点的个数,所述存储节点为:分布式数据库中用于存储所述单机数据库中表的存储节点;处理组件,用于根据所述数据库审计日志,得到所述表的语句执行信息,以及根据所述语句执行信息、所述统计信息,以及所述存储节点的个数,获取所述表的拆分信息;输出组件,根据所述表的拆分信息,输出所述表的拆分建议。

技术总结
本申请实施例提供了一种数据库表的处理方法和系统,该方法中,通过采集单机数据库的数据库审计日志和统计信息,且根据数据库审计日志得到的表的语句执行信息,存储节点的个数,以及统计信息,获取表的拆分信息,其中可以基于表的语句执行信息,准确得到拆分建议,进而提高表后续的查询效率。另外可以输出表的拆分建议,用户基于该拆分建议可以自行拆分表,以实现单机数据库向分布式数据库的演进,难度低,无技术壁垒。无技术壁垒。无技术壁垒。


技术研发人员:余从佳 王腾
受保护的技术使用者:阿里云计算有限公司
技术研发日:2022.03.28
技术公布日:2022/6/24
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1