数据查询方法、装置、设备和存储介质转让专利
申请号 : CN201910031419.6
文献号 : CN109783543B
文献日 : 2021-07-02
发明人 : 蔡土云
申请人 : 广州虎牙信息科技有限公司
摘要 :
权利要求 :
1.一种数据查询方法,其特征在于,包括:获取数据查询信息以及至少一条数据源信息,所述数据查询信息包括:字段名,以及与所述字段名对应的字段值;
依次获取与所述数据源信息匹配的数据库,并在获取的所述数据库包括的至少一个数据表中,对所述数据查询信息进行数据查询,获取与所述数据查询信息匹配的至少一条数据记录;
如果当前获取数据库与一个已查询数据库互为数据分库,则根据所述已查询数据库对所述字段名的命中情况,确定与所述当前获取数据库对应的查询策略进行数据查询;和/或如果当前查询数据表与一个已查询数据表互为数据分表,则根据所述已查询数据表对所述字段名的命中情况,确定与所述当前查询数据表对应的查询策略进行数据查询;
根据所述数据记录,生成所述数据查询信息的反馈结果。
2.根据权利要求1所述的方法,其特征在于,在数据源中,除去后缀名后的数据库名相同的至少两个数据库互为数据分库;和/或在数据源中的同一个数据库中,除去后缀名后的数据表名相同的至少两个数据表互为数据分表。
3.根据权利要求1或2所述的方法,其特征在于,根据所述已查询数据库对所述字段名的命中情况,确定与所述当前获取数据库对应的查询策略进行数据查询,具体包括:判断所述已查询数据库中是否有至少一个目标数据表命中所述数据查询信息中的字段名;
若是,则仅在所述当前获取数据库中与所述目标数据表名称相同的数据表中进行数据查询;否则,不再对所述当前获取数据库进行数据查询。
4.根据权利要求1或2所述的方法,其特征在于,根据所述已查询数据表对所述字段名的命中情况,确定与所述当前查询数据表对应的查询策略进行数据查询,具体包括:判断所述已查询数据表是否命中所述数据查询信息中的字段名;
若是,则对所述当前查询数据表进行数据查询;否则,不再对所述当前查询数据表进行数据查询。
5.根据权利要求1所述的方法,其特征在于,在所述获取数据查询信息以及数据源信息之前,还包括:
获取用户输入的与所述字段名关联的至少一条数据源信息;
根据用户的测试请求对所述至少一条数据源信息进行测试。
6.根据权利要求1所述的方法,其特征在于,所述获取数据查询信息以及至少一条数据源信息,包括:
获取所述数据查询信息;
根据所述数据查询信息中的字段名,遍历在服务器中存储的所有数据表结构,确定与所述字段名匹配的至少一个数据库;
根据所述至少一个数据库的关联信息生成至少一条数据源信息。
7.根据权利要求1所述的方法,其特征在于,根据所述至少一条数据记录,生成所述数据查询信息的反馈结果,包括:将每条数据记录所在数据表的关联信息分别作为与所述数据查询信息对应的数据记录条,所述各个数据记录条构成所述反馈结果;
根据每条数据记录生成一一对应的字段名字符串和字段值字符串,其中,所述字段名字符串中各不同字段名之间采用特殊字符间隔,所述字段值字符串中对应的不同字段值之间采用所述特殊字符间隔;
在每个所述数据记录条中添加超链接记录编号,以使用户根据所述超链接记录编号查看与每条数据记录匹配的字段名与字段值一一对应的数据表格,其中,所述数据表格通过将所述字段名字符串和字段值字符串分别根据所述特殊字符进行切割而生成。
8.根据权利要求5所述的方法,其特征在于,在获取数据查询信息中的字段名之前,还包括:
获取用户针对字段名输入的至少一个字符;
根据与所述数据源信息匹配的至少一个数据库中所有数据表中的字段名,以及所述用户针对字段名输入的至少一个字符,生成字段名模糊提醒,以供所述用户参考或选择。
9.一种数据查询装置,其特征在于,包括:获取模块,用于获取数据查询信息以及至少一条数据源信息,所述数据查询信息包括:字段名,以及与所述字段名对应的字段值;
查询模块,用于在服务器中存储的与所述数据源信息匹配的至少一个数据库中,对所述数据查询信息进行数据查询,获取与所述数据查询信息匹配的至少一条数据记录;
反馈模块,用于根据所述数据记录,生成所述数据查询信息的反馈结果;
所述查询模块包括:第一查询单元与第二查询单元中的至少一个,以及获取单元;其中,
获取单元,用于依次获取与所述数据源信息匹配的数据库,并在获取的所述数据库包括的至少一个数据表中,对所述数据查询信息进行数据查询;
第一查询单元,用于如果当前获取数据库与一个已查询数据库互为数据分库,则根据所述已查询数据库对所述字段名的命中情况,确定与所述当前获取数据库对应的查询策略进行数据查询;
第二查询单元,用于如果当前查询数据表与一个已查询数据表互为数据分表,则根据所述已查询数据表对所述字段名的命中情况,确定与所述当前查询数据表对应的查询策略进行数据查询。
10.一种计算机设备,其特征在于,所述计算机设备包括:一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1‑8中任一所述的数据查询方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1‑8中任一所述的数据查询方法。
说明书 :
数据查询方法、装置、设备和存储介质
技术领域
背景技术
询、新增、截取、更新、删除等操作。
存储量呈正比,也可以凭着记忆中的数据存储信息去直接查找。但是,上述两种查询方式都
需要用户在服务器上执行相关操作,有可能导致服务器运行效率降低甚至性能阻塞的问
题,一旦用户操作失误,还有可能发生一些数据库事故,例如是误删数据或误修改数据等。
发明内容
查询的数据库范围,由此缩短了查询时间;通过根据数据源信息远程访问在服务器中存储
的与数据源信息匹配的至少一个数据库,对数据查询信息进行数据查询的技术手段,对用
户只开放查询权限,以使用户不必在服务器上直接操作,进而不对服务器的运行效率甚至
性能产生影响,同时也避免了由于用户在服务器上输错代码而可能导致发生数据库事故的
问题。由此,通过本发明实施例提供的数据查询方法进行数据查询时,可以降低用户对数据
库的操作风险,而且能够解决只根据字段名及对应字段值追踪数据记录耗时过多的问题。
附图说明
具体实施方式
于描述,附图中仅示出了与本发明相关的部分而非全部结构。
匹配的数据记录的情况,该方法可以由本发明任意实施例提供的数据查询装置来执行,该
装置可由硬件和/或软件组成,并一般可集成在计算机设备的处理器中。
一两个字段名以及与其分别对应的字段值,此时,只能根据这个一两个字段名以及与其分
别对应的字段值去数据库中查询相关数据记录。以订单支付问题为例,追踪日志中的字段
名可以是订单号,字段值对应为xxxx(订单号明细);以账号登录问题为例,追踪日志中的字
段名可以是登录账号,字段值对应为xxxx(登录账号明细)。
值—xxxx,再例如字段名‑‑登录账号,与登录账号对应的字段值‑‑xxxx。
统一资源定位符url,数据库端口号,数据库名,登陆用户名,登录密码,所在区域等。
表中存在待查询数据源,研发人员在数据源列表中直接选取即可;如果数据源列表中不存
在待查询数据源,研发人员则需要先把待查询数据源的数据源信息进行录入,也即录入与
各个待查询数据源分别对应的基本信息(数据源名,统一资源定位符url,端口号,数据库
名,登陆用户名,登录密码,所在区域等)。其中,同一数据源下可能包括多个数据库。
数据库,如果访问连接成功,则提示测试成功,如果访问连接失败,则提示测试失败,并返回
失败原因,例如是登录密码错误等。
查询,以及重新测试。
为研发人员提供字段名模糊提醒功能,以保证研发人员输入的字段名的正确性,因为只要
研发人员输入的字段名中存在一个字符错误,都会导致数据查询失败。而且,不同研发人员
可能具有各自不同的字段名英文命名习惯,故不同研发人员针对相同字段的英文命名也不
尽相同,此时字段名模糊提醒功能也可为研发人员提示待查询数据源中正确字段命名。
醒提示给研发人员,供其参考或选择。当研发人员发现字段名模糊提醒中存在其想要输入
的字段名,可以直接选择,不必自己再去输入。例如,研发人员针对字段名输入的字符是
“time”,字段名模糊提醒中可以包括例如“testtime”、“logintime”等字段名。
构中包括这个字段名,进而可以根据这些包括这个字段名的数据表结构确定与字段名匹配
的数据库,也即,确定的这些数据库中会包括研发人员输入的字段名。再次,系统获取与这
些数据库对应的关联信息,例如,数据库名、与数据库对应的数据源名、统一资源定位符
url、端口号、登录用户名、登录密码、所在区域等,进而根据每个数据库的关联信息生成一
条数据源信息,以使在根据字段名和对应字段值进行数据定位时可以根据数据源信息成功
访问这些数据库。S120、在服务器中存储的与数据源信息匹配的至少一个数据库中,对数据
查询信息进行数据查询,获取与数据查询信息匹配的至少一条数据记录。
某数据表中的某条数据记录中包含数据查询信息中的字段名和对应字段值,则将该条数据
记录作为与数据查询信息匹配的数据记录。
获取到与数据查询信息相关的其他数据。
将查询结果映射数据结构作为反馈结果,进而研发人员根据查询结果映射结构即可获知与
数据查询信息对应的定位信息,进而根据定位信息获取与数据查询信息相关的其他数据。
库名,数据源信息为与所述数据库对应的数据源的基本信息,例如包括数据源名、所在区域
以及url等。
用特殊字符间隔;
字符串和字段值字符串分别根据特殊字符进行切割而生成。
括数据源名、所在区域以及url等。
该超链接编号对应的数据记录的详细数据提供给研发人员。
字段名字符串和字段值字符串,字段名字符串中各不同字段名之间采用特殊字符间隔,字
段值字符串中对应的不同字段值之间同样采用特殊字符间隔,以两组字段名和对应字段值
为例,“姓名‑‑张三”,“年龄‑‑20”,特殊符号为“#”,那么字段名字符串即为“姓名#年龄”和
字段值字符串即为“张三#20”。当研发人员点击超链接记录编号,显示这一一对应的字段名
字符串和字段值字符串时,根据特殊符号“#”分别对字段名字符串和字段值字符串进行切
割,生成字段名与字段值一一对应的数据表格,进而将这字段名与字段值一一对应的数据
表格显示给研发人员,至此实现了根据字段名和对应字段值进行数据定位,并将定位后获
取的相关详细数据进行显示。
应的数据表格,由此进行详细数据显示的好处在于,虽然是将与数据记录对应的详细数据
用表的形式进行展示,但是无需将该数据表对应数据库中的实体类映射,只是将与详细数
据对应的字段名以及对应字段值直接显示即可。
查询的数据库范围,由此缩短了查询时间;通过根据数据源信息远程访问在服务器中存储
的与数据源信息匹配的至少一个数据库,对数据查询信息进行数据查询的技术手段,对用
户只开放查询权限,以使用户不必在服务器上直接操作,进而不对服务器的运行效率甚至
性能产生影响,同时也避免了由于用户在服务器上输错代码而可能导致发生数据库事故的
问题。由此,通过本发明实施例提供的数据查询方法进行数据查询时,可以降低用户对数据
库的操作风险,而且能够解决只根据字段名及对应字段值追踪数据记录耗时过多的问题。
查询信息进行数据查询,具体为:
据分库,则根据已查询数据库对字段名的命中情况,确定与当前获取数据库对应的查询策
略进行数据查询;和/或,如果当前查询数据表与一个已查询数据表互为数据分表,则根据
已查询数据表对字段名的命中情况,确定与当前查询数据表对应的查询策略进行数据查
询。
数据分库,则根据已查询数据库对字段名的命中情况,确定与当前获取数据库对应的查询
策略进行数据查询;和/或,如果当前查询数据表与一个已查询数据表互为数据分表,则根
据已查询数据表对字段名的命中情况,确定与当前查询数据表对应的查询策略进行数据查
询。
一台服务的资源终究是有限的,因此需要对数据库和数据表进行拆分,以数据分库、数据分
表的形式提供数据服务。
的数据分块存储到多个数据表上,这多个数据库即为多个数据分库,多个数据表即为数据
分表。
据库B_D是针对某原有数据库进行拆分形成的。如果数据库B_C为已查询数据库,则可以根
据数据库B_C对字段名的命中情况确定与数据库B_D对应的查询策略进行数据查询,也即根
据数据库B_C对字段名的命中情况确定是否需要对数据库B_D进行数据查询。
进行拆分形成的。如果数据表b_c为已查询数据表,则可以根据数据表b_c对字段名的命中
情况确定与数据表b_d对应的查询策略进行数据查询,也即根据数据表b_c对字段名的命中
情况确定是否需要对数据表b_d进行数据查询。
出。
为数据分表。
库nimo_user_2019,数据库nimo_user_2018中包括数据表jd_pay、数据表tb_pay_201801和
数据表tb_pay_201802,其中,数据库nimo_user_2018和数据库nimo_user_2019除去后缀名
后的数据库名均为nimo_user,那么这两个数据库互为数据分库(按照年份进行拆分而形成
的数据分库),数据表tb_pay_201801和数据表tb_pay_201802除去后缀名后的数据表名均
为tb_pay,那么这两个数据表互为数据分表(按照月份进行拆分而形成的数据分表)。
之后,则根据数据库nimo_user_2018中所有数据表对数据查询信息中字段名的命中情况,
确定与互为数据分库的数据库nimo_user_2019的数据查询策略,对数据查询信息进行数据
查询。
至数据源中与数据库nimo_user_2018互为数据分库的数据库nimo_user_2019时,无需再针
对字段名在数据库nimo_user_2019中进行查询,由此,去除了没有必要的查询,减少了查询
次数,提高了查询效率。若是,则确定这些可以命中字段名的数据表的表名,例如是表A、表B
和表C可以命中数据查询信息中的字段名,则在查询至数据源中与数据库nimo_user_2018
互为数据分库的数据库nimo_user_2019时,针对字段名在数据库nimo_user_2019中与这些
命中字段名的数据表名称相同的数据表(也即表A、表B和表C)中进行查询即可。也即,当数
据库nimo_user_2018只有表A、表B和表C这三个表中存在数据查询信息中的字段名,那么在
数据库nimo_user_2019中也仅是这三个表中会存在数据查询信息中的字段名,进而无需在
数据库nimo_user_2019中其他数据表中针对该字段名进行查询,由此,去除了没有必要的
查询,减少了查询次数,提高了查询效率。
询数据表tb_pay_201801对数据查询信息中字段名的命中情况,确定与其互为数据分表的
数据表tb_pay_201802的数据查询策略,对数据查询信息进行数据查询。
数据表tb_pay_201802时,无需再针对字段名在数据表tb_pay_201802中进行查询,由此,去
除了没有必要的查询,减少了查询次数,提高了查询效率。若是,则意味着与其互为数据分
表的数据表tb_pay_201802中不存在这个字段名,进而在查询至与数据表tb_pay_201802
时,仍需针对字段名在数据表tb_pay_201802中进行查询。
略,通过根据已查询的目标数据分表对数据查询信息中字段名的命中情况,确定与目标数
据分表匹配的各个关联数据分表的数据查询策略,以此实现对各个数据分库以及数据分表
的去重数据查询,最大限度地减少查询次数,去除没有必要的查询,极大地提高了数据查询
效率,在数据量较大、分表分库较多的项目汇总尤为明显。基于上述去重查询的技术方案,
实现了在众多数据源且存在分库分表的项目中,对数据查询信息中的字段名和对应字段值
的快速定位,进而使研发人员根据定位信息快速获取与数据查询信息相关的其他数据。
图3A所示,本实施例提供的数据查询方法包括以下步骤:
缀名后的数据库名,所以数据库名列表中如果包括即将查询的数据库的除去后缀名后的数
据库名,这个即将查询的数据库即与某个已查询数据库互为数据分库。
数据分库,也即需要对当前获取数据库nimo_user_2019进行数据查询。
数据库名,数据表名列表>,数据表名列表的初始值为空。
名后的数据表名,所以数据表名列表中如果包括即将查询的数据表的除去后缀名后的数据
表名,这个即将查询的数据表即与某个已查询数据表互为数据分表。
即需要对当前查询数据表tb_pay_201802进行数据查询。
去重查询参考即为需对与其互为数据分表的数据表进行查询,如果不包括,则与tb_pay对
应的去重查询参考即为无需对与其互为数据分表的数据表进行查询。
是否执行查询操作,若是,则对当前查询数据表tb_pay_201802进行查询,若否,则对当前查
询数据表tb_pay_201802不进行查询。
前获取数据库对应的至少一个数据表中是否包含字段名的判断结果作为与当前获取数据
库的除去后缀名后的数据库名对应的去重查询参考,执行S3160。
果当前获取数据库nimo_user_2019中至少一个数据表中包含字段名,则与nimo_user对应
的去重查询参考即为需要对与其互为数据分库的数据库进行查询。
名后的数据库名匹配的目标库表映射数据结构,以及与各个数据表的除去后缀名后的数据
表名对应的去重查询参考对匹配的数据表执行或不执行查询操作。
user_2019是否执行查询操作,若否,则对当前获取数据库nimo_user_2019不进行查询,若
是,则对当前获取数据库nimo_user_2019进行查询,同时,根据nimo_user匹配的库表映射
数据结构,以及该库表映射数据结构中与各个数据表的除去后缀名后的数据表名对应的去
重查询参考(例如与tb_pay对应的去重查询参考),确定对当前获取数据库nimo_user_2019
中的各个数据表是否进行查询操作。
busOrderId和字段值201812071549051971465043662512,然后点击定位,得到如图3B所示
的界面中定位显示区32中的反馈结果(字段名busOrderId和字段值
201812071549051971465043662512所在数据表的关联信息),如果研发人员想看详细数据,
点击定位显示区32中的记录数编号(超链接记录编号)321,可以弹出如图3C所示的弹框,进
而研发人员可以通过如图3C所示的弹框查看与字段名busOrderId和字段值
201812071549051971465043662512匹配的数据详情。其中,如图3B所示的界面中数据源详
情列表是预先选定并被测试成功的,或是根据字段名busOrderId遍历服务器中所有表结构
后自动生成的。
度的减少数据查询次数,去除没有必要的查询,极大地提高了查询效率,解决了根据字段名
及对应字段值追踪数据记录耗时过多的问题,进而使得研发人员在测试环节以及排故环节
都能快速定位数据,提高了开发效率。
值匹配的数据记录的情况,该装置可以采用软件和/或硬件的方式实现,并一般可集成在计
算机设备的处理器中。如图4所示,该装置包括:获取模块410、查询模块420和反馈模块430,
其中,
录;
查询的数据库范围,由此缩短了查询时间;通过根据数据源信息远程访问在服务器中存储
的与数据源信息匹配的至少一个数据库,对数据查询信息进行数据查询的技术手段,对用
户只开放查询权限,以使用户不必在服务器上直接操作,进而不对服务器的运行效率甚至
性能产生影响,同时也避免了由于用户在服务器上输错代码而可能导致发生数据库事故的
问题。由此,通过本发明实施例提供的数据查询方法进行数据查询时,可以降低用户对数据
库的操作风险,而且能够解决只根据字段名及对应字段值追踪数据记录耗时过多的问题。
的查询策略进行数据查询;
的查询策略进行数据查询。
为数据分表。
标数据表名称相同的数据表中进行数据查询;否则,不再对所述当前获取数据库进行数据
查询。
询数据表进行数据查询。
息进行测试。
以及所述用户针对字段名输入的至少一个字符,生成字段名模糊提醒,以供所述用户参考
或选择。
值之间采用所述特殊字符间隔;
通过将所述字段名字符串和字段值字符串分别根据所述特殊字符进行切割而生成。
可以是一个或多个,图5中以一个处理器50为例;计算机设备中的处理器50、存储器51、输入
装置52和输出装置53可以通过总线或其他方式连接,图5中以通过总线连接为例。
置中的获取模块410、查询模块420和反馈模块430)。处理器50通过运行存储在存储器51中
的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上
述的数据查询方法。
据等。此外,存储器51可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至
少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器51
可进一步包括相对于处理器50远程设置的存储器,这些远程存储器可以通过网络连接至计
算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组
合。
相关操作。
佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的
部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质
中,如计算机的软盘、只读存储器(Read‑Only Memory,ROM)、随机存取存储器(Random
Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设
备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较
为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以
包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。