一种数据查询方法、装置、电子设备和存储介质制造方法及图纸

技术编号:32771280 阅读:16 留言:0更新日期:2022-03-23 19:26
本公开提供了一种数据查询方法、装置、电子设备和存储介质,涉及计算机技术领域,尤其涉及数据处理技术领域。具体实现方案为:获取目标数据表的表结构,所述目标数据表对应多张分表,所述多张分表分布在至少一个远端数据库中,所述分表的表结构与所述目标数据表的表结构相同;根据所述表结构构建本地数据表;获取所述目标数据表对应的每张分表的位置信息,根据所述位置信息从远端数据库中获取每张分表的数据,导入所述本地数据表;根据查询请求构建第一查询语句,通过所述第一查询语句从所述本地数据表查询数据。本地数据表查询数据。本地数据表查询数据。

【技术实现步骤摘要】
一种数据查询方法、装置、电子设备和存储介质


[0001]本公开涉及计算机
,尤其涉及数据处理
的一种数据查询方法、装置、电子设备和存储介质。

技术介绍

[0002]随着数据使用的海量化,使用分库分表做数据存储的业务成为普遍现象,伴随着不同的业务场景,通常需要根据自定义的需求,查询或导出符合条件的数据,现有的数据查询、导出的处理方法主要有几种,如通过编写脚本遍历整个分库分表的数据,或通过专门搭建服务器,以及建立专门的索引表,查询或导出不同需求的数据。

技术实现思路

[0003]本公开提供了一种用于数据查询方法、装置、电子设备以及存储介质。
[0004]根据本公开的一方面,提供了一种数据查询方法,包括:
[0005]读取目标数据表的表结构,所述目标数据表对应多张分表,所述多张分别分布在至少一个远端数据库中,所述分表的表结构与所述目标数据表的表结构相同;
[0006]根据所述表结构构建本地数据表;
[0007]获取所述目标数据表对应的每张分表的位置信息,根据所述位置信息从远端数据库中获取每张分表的数据,导入所述本地数据表;
[0008]根据查询请求构建第一查询语句,通过所述第一查询语句从本地数据表查询数据。
[0009]根据本公开的另一方面,提供了一种数据查询的装置,包括:
[0010]采集模块,用于获取目标数据表的表结构,所述目标数据表对应多张分表,所述多张分表分布在至少一个远端数据库中,所述分表的表结构与所述目标数据表的表结构相同;r/>[0011]处理模块,用于根据所述表结构构建本地数据表;
[0012]所述处理模块,还用于获取所述目标数据表对应的每张分表的位置信息,根据所述位置信息从远端数据库中获取每张分表的数据,导入所述本地数据表;
[0013]输出模块,用于根据查询请求构建第一查询语句,通过所述第一查询语句从所述本地数据表查询数据。
[0014]根据本公开的又一方面,提供了一种数据查询的电子设备包括:
[0015]至少一个处理器;以及
[0016]与所述至少一个处理器通信连接的存储器;其中,
[0017]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述数据查询的方法
[0018]根据本公开的再一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述数据查询的方法。
[0019]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0020]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0021]图1是根据本公开一实施例的数据查询方法示意图;
[0022]图2是根据本公开一实施例的数据查询流程示意图;
[0023]图3是根据本公开一实施例的数据查询方法的流程框图;
[0024]图4是根据本公开一实施例的获取表结构方法的流程示意图;
[0025]图5是根据本公开一实施例的远端数据库数据导入本地数据表方法的流程示意图;
[0026]图6是根据本公开一实施例的数据查询装置的示意图;
[0027]图7是用来实现本公开一实施例的数据查询方法的电子设备的框图。
具体实施方式
[0028]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0029]随着数据的海量化,为了缓解存储压力,大量数据的存储从原始表的形态被切割分布在多个数据库和多个分表中,此种情形下,每次进行数据的查询和使用,则都需要从本地连接至远端,若存在统计类较为复杂的需求时,从每个分表查询和获取数据后还需要再进行汇总处理;此外,若查询需求发生变动,则需要再次从本地连接至远端,重复上述步骤,查询效率较低。
[0030]为了提高数据查询的效率,如图1所示,本公开一实施例提供了一种数据查询方法,包括:
[0031]步骤101,获取目标数据表的表结构,所述目标数据表对应多张分表,所述多张分表分布在至少一个远端数据库中,所述分表的表结构与所述目标数据表的表结构相同。
[0032]远端存在多个数据库,这多个远端数据库通过一个数据库管理平台进行管理,一个目标数据表的数据根据分表规则分布在多个远端数据库的多张数据表中,那么,这多个远端数据库即为该目标数据表所属的多个分库,多张数据表即为该目标数据表对应的多个分表。
[0033]目标数据表对应的所有分表的表结构相同,分表的表结构即为目标数据表的表结构。在本示例中,可以通过数据库管理平台,获取预存在数据库管理平台中的分表规则,根据分表规则,获取任一分表的表结构,即可获取到目标数据表的表结构。
[0034]步骤102,根据所述表结构构建本地数据表。
[0035]根据目标数据表的表结构,构建适用于本地的建表语句,通过执行建表语句构建本地数据表。
[0036]目标数据表的表结构中包括多个字段,例如,目标数据表为身份信息表时,其表结
构可包含id(编号)、姓名和身份证号等字段。目标数据表为地址信息表时,其表结构可包含id(编号)、名称和地址等字段。
[0037]在一示例中,目标数据表的表结构中字段所对应的数据类型,其关键字若包含unsigned(无符号),则本地数据表的表结构在复制目标数据表的表结构的基础上,去除关键字unsigned后作为本地数据表的表结构中字段所对应的数据类型;目标数据表的表结构中的字段对应的值,若限制了数值长度,则本地数据表的表结构在复制目标数据表的表结构的基础上,去除数值长度的限制。
[0038]例如,读取到的目标数据表的表结构中“id”字段的信息为:
[0039]`id`bigint(20)unsigned NOT NULL,表示字段“id”的数据类型为bigint,数值长度为20bit,该字段的数据类型声明为unsigned(无符号),且该字段不能为空、即NOT NULL。
[0040]则本地数据表的建表语句中关于“id”字段的信息为:`id`bigintNOT NULL,如此,根据该语句构建的本地数据表中的“id”字段,其数据类型为bigint,无长度限制,该字段的数据类型未声明unsigned,且该字段不能为空、即NOT NULL。
[0041]需要理解的是,步骤102根据上述建表原则执行完毕,只是在本地建立了一张空表。
[0042]步骤103,获取所述目标数据表对应的每张分表的位置信息,根据所述位置信息从远端数据库本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据查询方法,其特征在于,包括:获取目标数据表的表结构,所述目标数据表对应多张分表,所述多张分表分布在至少一个远端数据库中,所述分表的表结构与所述目标数据表的表结构相同;根据所述表结构构建本地数据表;获取所述目标数据表对应的每张分表的位置信息,根据所述位置信息从远端数据库中获取每张分表的数据,导入所述本地数据表;根据查询请求构建第一查询语句,通过所述第一查询语句从所述本地数据表查询数据。2.根据权利要求1所述的方法,其中,所述获取目标数据表的表结构,包括:连接所述远端数据库的数据库管理平台,从所述数据库管理平台获取目标数据表对应的任一分表的分表前缀和分库编号;连接所述分库编号对应的远端数据库,从该远端数据库中查询所述分表前缀对应的所述分表的表结构。3.根据权利要求1所述的方法,其中,所述获取所述目标数据表对应的每张分表的位置信息,包括:获取所述目标数据表的分表规则以及每张分表的分表编号;所述分表规则用于表征所述分表与其所属的远端数据库的映射关系;根据所述分表规则和所述分表的分表编号,确定所述分表所属的远端数据库,将确定出的所述远端数据库的标识信息作为所述分表的位置信息。4.根据权利要求1所述的方法,其中,所述本地数据表的表结构包括如下字段:分表编号、分库编号、原主键ID、自增ID以及所述目标数据表表结构中的所有字段。5.根据权利要求4所述的方法,其中,所述获取每张分表的数据,导入所述本地数据表,包括:获取所述分表的分表编号,作为所述本地数据表中字段为分表编号的值;获取所述分表的分库编号,作为所述本地数据表中字段为分库编号的值;获取所述分表中的每条数据对应的主键ID的值,作为所述本地数据表中字段为原主键ID的值;获取所述分表的表结构中所有字段的数据,导入所述本地数据表,作为对应字段的值。6.根据权利要求5所述的...

【专利技术属性】
技术研发人员:许丹仙
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1