一种数据处理方法、装置及数据库管理服务器制造方法及图纸

技术编号:21913978 阅读:47 留言:0更新日期:2019-08-21 12:26
本发明专利技术实施例公开了一种数据处理方法、装置及数据库管理服务器,其中,所述方法包括:获取第一数据表的至少一个关联关系,若该至少一个关联关系中存在第一冲突关联关系,则生成用以解决该第一冲突关联关系的至少一个第一待选方案,该至少一个第一待选方案为基于全局二级索引的待选方案;从该至少一个第一待选方案中确定第一目标待选方案,并采用该第一目标待选方案调整该至少一个关联关系,得到调整后的该至少一个关联关系;根据调整后的该至少一个关联关系及分库规则对该第一数据表和该至少两个第二数据表进行分库,或对该第一数据表进行分库,可自动地基于全局二级索引处理数据表的冲突关联关系,以实现对数据表的分库,提高分库效率。

A Data Processing Method, Device and Database Management Server

【技术实现步骤摘要】
一种数据处理方法、装置及数据库管理服务器
本专利技术涉及计算机
,尤其涉及一种数据处理方法、装置及数据库管理服务器。
技术介绍
随着计算技术的发展,越来越多的数据需要在数据库系统中存储和处理,基于单台数据库系统的数据管理方式已经无法满足用户日益增长的数据业务需求,因此,用于存储及处理海量数据的分布式数据库系统应运而生。分布式数据库系统是用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库,分布式数据库系统为了提供与单台数据库同样的数据存储及查询功能,需要对数据库中的数据表进行分库,以使数据表可以分配在各个数据单元。基于数据表之间的关联关系的分库方案是当前应用最广泛的分库方案之一,但是数据表通常存在冲突关联关系,其中,冲突关联关系是指某个数据表存在自关联关系或该数据表与多个数据表之间基于不同的字段关系,且该多个数据表为该数据表的父表,需要手动删除各个数据表之间的关联关系,以处理数据表的冲突关联关系,进而,才能实现基于数据表之间连接关联关系对数据表进行分库,可见,上述分库方案的效率较低。
技术实现思路
本专利技术提供一种数据处理方法及装置及数据库管理服务器,可自动地基于全局二级索引的方案处理数据表的冲突关联关系,以实现对数据表的分库,提高分库效率。第一方面,本专利技术实施例提供了一种数据处理方法,该方法中,获取第一数据表的至少一个关联关系,若该至少一个关联关系中存在第一冲突关联关系,则生成用以解决该第一冲突关联关系的至少一个第一待选方案,该至少一个第一待选方案为基于全局二级索引的待选方案;从该至少一个第一待选方案中确定第一目标待选方案,并采用该第一目标待选方案对该至少一个关联关系进行调整,得到调整后的该至少一个关联关系,根据调整后的该至少一个关联关系及分库规则对该第一数据表和该至少两个第二数据表进行分库,或对该第一数据表进行分库。其中,该至少一个关联关系包括该第一数据表与至少两个第二数据表之间的关联关系或者包括该第一数据表的自关联关系,该第二数据表为该第一数据表的父表,一个关联关系对应一个字段。在该技术方案中,在第一数据表的至少一个关联关系中存在第一冲突关联关系时,数据库管理服务器可以生成解决该第一冲突关联关系的至少一个第一待选方案,并从至少一个第一待选方案中确定第一目标待选方案,采用第一目标待选方案对第一冲突关联关系进行调整,得到调整后的至少一个关联关系,根据调整后的至少一个关联关系及分库规则对第一数据表,或第一数据表及至少两个第二数据表进行分库,可以自动地解决冲突关联关系,以便可以实现基于关联关系(即调整后的至少一个关联关系)对数据表进行分库,提高对数据表进行分库的效率。作为一种可选的实施方式,若该第一数据表具有自关联,则确定存在第一冲突关联关系;若该第一数据表基于不同的字段与该至少两个第二数据表关联,则确定该至少一个关联关系中存在第一冲突关联关系。该技术方案中,若第一数据表具有自关联,或该第一数据表基于不同的字段与该至少两个第二数据表,数据库管理服务器可以确定该至少一个关联关系中存在冲突关联关系。作为一种可选的实施方式,若该第一数据表具有自关联关系,则生成基于自关联字段的全局二级索引的待选方案;若该第一数据表基于不同的字段与该至少两个第二数据表关联,则生成基于全局二级索引的至少两个待选方案,该至少两个待选方案基于不同的字段。该技术方案中,若该第一数据表具有自关联关系,则数据库管理服务器可以生成基于自关联字段的全局二级索引的待选方案,若该第一数据表基于不同的字段与该至少两个第二数据表关联,则生成基于全局二级索引的至少两个待选方案,以便可以采用待选方案解决冲突关联关系。作为一种可选的实施方式,该第一目标待选方案为基于该自关联字段的全局二级索引的待选方案;数据库管理服务器采用该第一目标待选方案对该至少一个关联关系进行调整,得到调整后的该至少一个关联关系的具体方式包括:解除该第一数据表的自关联关系,从该第一数据表中获取第一副表,建立该第一副表与该第一数据表基于该自关联字段的关联关系,以调整该至少一个关联关系,得到调整后的该至少一个关联关系。该技术方案中,数据库管理服务器可以解除该第一数据表的自关联关系,从该第一数据表中获取第一副表,建立该第一副表与该第一数据表基于该自关联字段的关联关系,以调整该至少一个关联关系,得到调整后的该至少一个关联关系,由于该调整后的该至少一个关联关系中不存在冲突关联关系,因此可以基于关联关系对第一数据表进行分库,可提高分库的效率。作为一种可选的实施方式,该第一目标待选方案为基于第一字段的全局二级索引的待选方案;数据库管理服务器采用该第一目标待选方案对该至少一个关联关系进行调整,得到调整后的该至少一个关联关系的具体方式包括:根据该至少一个关联关系,确定与该第一数据表基于该第一字段关联的至少一个数据表,确定的至少一个数据表为该至少两个第二数据表中的数据表,该第一字段为该至少一个关联关系对应的字段中的任一字段;解除该第一数据表与该确定的至少一个数据表基于该第一字段的关联关系,从该第一数据表中获取至少一个第二副表,该第二副表包括该第一数据表中的至少一个字段,该至少一个字段包括该第一字段;建立该至少一个第二副表与该确定的至少数据表基于该第一字段的关联关系,以调整该至少一个关联关系,得到调整后的该至少一个关联关系。该技术方案中,数据库管理服务器可以采用基于全局二级索引的待选方案解决第一冲突关联关系,得到调整后的该至少一个关联关系,该调整后的该至少一个关联关系中不存在冲突关联关系,因此可以基于关联关系对第一数据表及该至少两个第二数据表进行分库,可提高分库的效率。作为一种可选的实施方式,根据调整后的该至少一个关联关系确定第一分库字段,根据该第一分库字段及该分库规则对该第一数据表及该第一副表进行划分,得到多个第一子数据表,将该多个第一子数据表分配到至少一个数据单元中。该技术方案中,数据库管理服务器可以根据调整后的该至少一个关联关系确定第一分库字段,根据该第一分库字段及该分库规则对该第一数据表及该第一副表进行划分,得到多个第一子数据表,并将该多个第一子数据表分配到至少一个数据单元中,可以实现自动地基于关联关系对数据表进行分库,以满足用户更多的业务需求。作为一种可选的实施方式,根据调整后的该至少一个关联关系确定至少一个第二分库字段;根据该至少一个第二分库字段及该分库规则对该第一数据表、该至少两个第二数据表及该至少一个第二副表进行划分,得到多个第二子数据表;将该多个第二子数据表分配到至少一个数据单元中。该技术方案中,数据库管理服务器可以根据调整后的该至少一个关联关系确定至少一个第二分库字段,根据该至少一个第二分库字段及该分库规则对该第一数据表、该至少两个第二数据表及该至少一个第二副表进行划分,得到多个第二子数据表,并将该多个第二子数据表分配到至少一个数据单元中,可以实现自动地基于关联关系对数据表进行分库,以满足用户更多的业务需求。作为一种可选的实施方式,根据历史查询日志确定所述第一数据表的至少一个第一路由字段;根据该分库规则确定该至少一个第一路由字段的属性信息,该第一路由字段属性信息包括该第一路由字段所属的数据表、该第一路由字段所属的子数据表或该第一路由字段所属的子数据表所在的本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:获取第一数据表的至少一个关联关系,所述至少一个关联关系包括所述第一数据表与至少两个第二数据表之间的关联关系或者包括所述第一数据表的自关联关系,所述第二数据表为所述第一数据表的父表,一个关联关系对应一个字段;若所述至少一个关联关系中存在第一冲突关联关系,则生成用以解决所述第一冲突关联关系的至少一个第一待选方案,所述至少一个第一待选方案为基于全局二级索引的待选方案;从所述至少一个第一待选方案中确定第一目标待选方案,并采用所述第一目标待选方案对所述至少一个关联关系进行调整,得到调整后的所述至少一个关联关系;根据调整后的所述至少一个关联关系及分库规则对所述第一数据表和所述至少两个第二数据表进行分库,或对所述第一数据表进行分库。

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:获取第一数据表的至少一个关联关系,所述至少一个关联关系包括所述第一数据表与至少两个第二数据表之间的关联关系或者包括所述第一数据表的自关联关系,所述第二数据表为所述第一数据表的父表,一个关联关系对应一个字段;若所述至少一个关联关系中存在第一冲突关联关系,则生成用以解决所述第一冲突关联关系的至少一个第一待选方案,所述至少一个第一待选方案为基于全局二级索引的待选方案;从所述至少一个第一待选方案中确定第一目标待选方案,并采用所述第一目标待选方案对所述至少一个关联关系进行调整,得到调整后的所述至少一个关联关系;根据调整后的所述至少一个关联关系及分库规则对所述第一数据表和所述至少两个第二数据表进行分库,或对所述第一数据表进行分库。2.如权利要求1所述的方法,其特征在于,所述若所述至少一个关联关系中存在第一冲突关联关系,则生成用以解决所述第一冲突关联关系的至少一个第一待选方案之前,还包括:若所述第一数据表具有自关联,则确定存在第一冲突关联关系;若所述第一数据表基于不同的字段与所述至少两个第二数据表关联,则确定所述至少一个关联关系中存在第一冲突关联关系。3.如权利要求2所述的方法,其特征在于,所述生成用以解决所述第一冲突关联关系的至少一个第一待选方案,包括:若所述第一数据表具有自关联关系,则生成基于自关联字段的全局二级索引的待选方案;若所述第一数据表基于不同的字段与所述至少两个第二数据表关联,则生成基于全局二级索引的至少两个待选方案,所述至少两个待选方案基于不同的字段。4.如权利要求3所述的方法,其特征在于,所述第一目标待选方案为基于所述自关联字段的全局二级索引的待选方案;所述采用所述第一目标待选方案对所述第一数据表的至少一个关联关系进行调整,得到调整后的所述至少一个关联关系,包括:解除所述第一数据表的自关联关系;从所述第一数据表中获取第一副表,所述第一副表包括所述第一数据表中的至少一个字段,所述至少一个字段包括所述自关联字段;建立所述第一副表与所述第一数据表基于所述自关联字段的关联关系,以调整所述至少一个关联关系,得到调整后的所述至少一个关联关系。5.如权利要求3所述的方法,其特征在于,所述第一目标待选方案为基于第一字段的全局二级索引的待选方案;所述采用所述第一目标待选方案对所述第一数据表的至少一个关联关系进行调整,得到调整后的所述至少一个关联关系,包括:根据所述至少一个关联关系,确定与所述第一数据表基于所述第一字段关联的至少一个数据表,确定的至少一个数据表为所述至少两个第二数据表中的数据表,所述第一字段为所述至少一个关联关系对应的字段中的任一字段;解除所述第一数据表与所述确定的至少一个数据表基于所述第一字段的关联关系;从所述第一数据表中获取至少一个第二副表,所述第二副表包括所述第一数据表中的至少一个字段,所述至少一个字段包括所述第一字段;建立所述至少一个第二副表与所述确定的至少一个数据表基于所述第一字段的关联关系,以调整所述至少一个关联关系,得到调整后的所述至少一个关联关系。6.如权利要求4所述的方法,其特征在于,所述根据调整后的所述至少一个关联关系及分库规则对所述第一数据表进行分库,包括:根据调整后的所述至少一个关联关系确定第一分库字段;根据所述第一分库字段及所述分库规则对所述第一数据表及所述第一副表进行划分,得到多个第一子数据表;将所述多个第一子数据表分配到至少一个数据单元中。7.如权利要求5所述的方法,其特征在于,所述根据调整后的所述至少一个关联关系及分库规则对所述第一数据表和所述至少两个第二数据表进行分库,包括:根据调整后的所述至少一个关联关系确定至少一个第二分库字段;根据所述至少一个第二分库字段及所述分库规则对所述第一数据表、所述至少两个第二数据表及所述至少一个第二副表进行划分,得到多个第二子数据表;将所述多个第二子数据表分配到至少一个数据单元中。8.如权利要求6所述的方法,其特征在于,所述将所述多个第一子数据表分配到至少一个数据单元中之后,还包括:根据历史查询日志确定所述第一数据表的至少一个第一路由字段;根据所述分库规则确定所述至少一个第一路由字段的属性信息,所述第一路由字段属性信息包括所述第一路由字段所属的数据表、所述第一路由字段所属的子数据表或所述第一路由字段所属的子数据表所在的数据单元中的至少一种;建立所述至少一个第一路由字段与所述至少一个第一路由字段的属性信息的映射关系。9.如权利要求7所述的方法,其特征在于,所述将所述多个第二子数据表分配到至少一个数据单元中之后,还包括:根据历史查询日志确定所述第一数据表和所述至少两个第二数据表的至少一个第二路由字段;根据所述分库规则确定所述至少一个第二路由字段的属性信息,所述第二路由字段的属性信息包括所述第二路由字段所属的数据表、所述第二路由字段所属的子数据表或所述第二路由字段所属的子数据表所在的数据单元中的至少一种;建立所述至少一个第二路由字段与所述至少一个第二路由字段的属性信息的映射关系。10.如权利要求9所述的方法,其特征在于,所述根据历史查询日志确定所述第一数据表和所述至少两个第二数据表的至少一个第二路由字段,包括:根据所述历史查询日志确定所述第一数据表和所述至少两个第二数据表中的每个数据表的各个字段被查询的频率;根据所述各个字段被查询的频率,确定基于所述各个字段进行查询所生成的查询性能;计算基于所述各个字段建立路由字段所生成的第二代价;若根据所述查询性能及所述第二代价确定第二字段满足建立路由字段规则,则将所述第二字段确定为第二路由字段,所述第二字段为所述第一数据表或所述至少两个第二数据表的任一字段。11.如权利要求1-10任一项所述的方法,其特征在于,所述从所述至少一个第一待选方案中确定第一目标待选方案,包括:计算采用所述至少一个第一待选方案中的各个第一待选方案解决所述第一冲突关联关系的第一代价;根据所述第一代价确定代价最小的待选方案,并将所述代价最小的待选方案确定为所述第一目标待选方案。12.如权利要求8或9所述的方法,其特征在于,还包括:接收查询请求,解析所述查询请求,得到查询数据表或查询字段;若所述查询数据表为所述第一目标数据表,则判断所述查询字段是否与所述第一目标数据表的路由字段匹配,所述第一目标数据表为所述第一数据表或所述至少两个第二数据表中任一数据表;若不匹配,则获取至少一个更新后的字段,所述至少一个更新后的字段中的每个更新后的字段包括所述查询字段及目标路由字段,所述目标路由字段为所述第一目标数据表的路由字段中的任一字段,所述至少一个更新后的字段中的各个更新后的字段不相同;计算基于所述至少一个更新后的字段中的各个更新后的字段进行查询所生成的查询代价;输出所述至少一个更新后的字段及所述各个更新后的字段的查询代价,以提示基于所述各个更新后的字段的查询代价选择目标更新后的字段进行查询,所述目标更新后的字段为所述至少一个更新后的字段中的字段。13.如权利要求12所述的方法,其特征在于,还包括:若所述查询数据表为所述第一数据表及第二目标数据表,则根据调整后的所述至少一个关联关系,判断所述第一数据表与所述第二目标数据表是否基于所述查询字段关联,所述第二目标数据表为所述至少两个第二数据表及所述至少一个第二副表中的任一数据表;若未基于所述查询字段关联,则根据所述分库规则确定查询所述查询字段的至少一个查询方案;计算所述至少一个查询方案中的各个查询方案的第三代价;输出所述至少一个查询方案及所述第三代价,以提示基于所述第三代价从所述至少一个查询方案中选择查询方案,并采用所选择的查询方案进行查询。14.如权利要求11所述的方法,其特征在于,还包括:接收针对第三数据表及所述第一数据表,建立基于第三字段的关联关系的请求,所述第三数据表为所述第一数据表的父表;建立所述第三数据表与所述第一数据表基于所述第三字段的关联关系;并基于调整后的所述至少一个关联关系,更新所述第三数据表、所述第一数据表及第三目标数据表的关联关系,得到第一局部的关联关系,所述第三目标数据表为所述至少两个第二数据表中与所述第一数据表关联的数据表。15.如权利要求14所述的方法,其特征在于,所述得到第一局部关联关系之后,还包括:若所述第一局部关联关系中存在第二冲突关联关系,则生成用以解决所述第二冲突关联关系的至少一个第二待选方案,所述至少一个第二待选方案为基于全局二级索引的方案;从所述至少一个第二待选方案中确定第二目标待选方案;计算采用所述第二目标待选方案的解决所述第二冲突关联关系的第四代价;若所述第四代价小于代价阈值,则采用所述第二目标待选方案对所述第一局部关联关系进行调整,得到调整后的所述第一局部关联关系;根据调整后的所述第一局部关联关系及所述分库规则,对所述第一数据表、所述第三数据、所述第三目标数据表重新进行分库。16.如权利要求15所述的方法,其特征在于,所述若所述第一局部关联关系中存在第二冲突关联关系,则生成用以解决所述第二冲突关联关系的至少一个第二待选方案之前,还包括:若所述第一数据表、所述第三数据表、所述第三目标数据表之间基于不同的字段关联,则确定所述第一局部关联关系中存在第二冲突关联关系。17.如权利要求15所述的方法,其特征在于,还包括:若所述四代价大于或等于所述代价阈值,则采用所述第三数据表与所述第一数据表基于所述第三字段的关联关系,更新所述至少一个关联关系,得到全局关联关系;若所述全局关联关系中存在第三冲突关联关系,则生成用以解决所述第三冲突关联关系的至少一个第三待选方案,所述至少一个第三待选方案为基于全局二级索引的方案;从所述至少一个第三待选方案中确定第三目标待选方案,并采用所述第三目标待选方案对所述全局关联关系进行调整,得到调整后的所述全局关联关系;根据调整后的所述全局关联关系及所述分库规则对所述第一数据表、所述第三数据表及所述至少两个第二数据表进行重新分库。18.如权利要求17所述的方法,其特征在于,所述若所述全局关联关系中存在第三冲突关联关系,则生成用以解决所述第三冲突关联关系的至少一个第三待选方案之前,还包括:若根据所述全局关联关系确定所述第一数据表与所述至少两个第二数据表、所述第三数据表基于不同的字段关联,则确定所述全局关联关系中存在第三冲突关联关系。19.如权利要求13-18任一项所述的方法,其特征在于,还包括:接收针对第四数据表的添加指令;若所述第四数据表与所述第一数据表基于第四字段关联,建立所述第四数据表与第一数据表基于所述第四字段关联关系,所述第四数据表为所述第一数据表的父表;根据调整后的所述至少一个关联关系,确定与所述第一数据表关联的第四目标数据表;若第二局部关联关系存在第四冲突关联关系,生成用以解决所述第四冲突关联关系的至少一个第四待选方案,所述至少一个第四待选方案为基于全局二级索引的方案,所述第二局部关联关系为所述第一数据表、所述第四数据表及所述第四目标数据表的关联关系;从所述至少一个第四待选方案中确定第四目标待选方案,并采用所述第四目标待选方案对所述第二局部关联关系进行调整,得到调整后的所述第二局部关联关系;根据调整后的所述第二局部关联关系及所述分库规则对所述第一数据表、所述第四数据表和所述第四目标数据表进行分库。20.如权利要求16所述的方法,其特征在于,所述若第二局部关联关系存在第四冲突关联关系,生成用以解决所述第四冲突关联关系的至少一个第四待选方案之前,还包括:若根据调整后的所述至少一个关联关系,确定所述第一数据表与所述第四目标数据表关联的字段与所述第四字段不同,则所述第二局部关联关系存在所述第四冲突关联关系。21.一种数据处理装置,应用于数据库管理服务器,其特征在于,包括:获取模块,用于获取第一数据表的至少一个关联关系,所述至少一个关联关系包括所述第一数据表与至少两个第二数据表之间的关联关系或者包括所述第一数据表的自关联关系,所述第二数据表为所述第一数据表的父表,一个关联关系对应一个字段;生成模块,用...

【专利技术属性】
技术研发人员:陈开济
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1