CN111125156A - 数据的查询方法、装置和电子设备 - Google Patents
数据的查询方法、装置和电子设备 Download PDFInfo
- Publication number
- CN111125156A CN111125156A CN201911304111.0A CN201911304111A CN111125156A CN 111125156 A CN111125156 A CN 111125156A CN 201911304111 A CN201911304111 A CN 201911304111A CN 111125156 A CN111125156 A CN 111125156A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- record
- data table
- target data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据的查询方法、装置和电子设备,其中方法包括:保存与配置信息对应的目标数据表,目标数据表是按照目标数据结构对配置信息中的数据记录进行转换得到的,目标数据结构是业务应用能够识别的数据结构;在接收到查询请求的情况下,根据查询请求在目标数据表中查找目标数据对象,第二设备是承载业务应用的设备;响应于查询请求,返回查找到的目标数据对象。本申请解除对第三方缓存和数据库的强依赖,去掉网络调用和键值对转换的耗时,提高了查询的效率,解决查询结果重复保存的资源浪费问题,解决结果缓存无法随运行时配置信息变更而及时变更问题,在此基础上提供多种查询方式,全局同步更新本地缓存,性能更加稳定可靠。
Description
技术领域
本申请涉及互联网领域,尤其涉及一种数据的查询方法、装置和电子设备。
背景技术
随着互联网的发展,在实际的应用程序的业务处理逻辑中,部分要素会在应用程序运行的过程中根据实际需要动态调整,如快捷支付交易会根据银联和网联通道的可用情况,费率等按需调整两者间的比例,将这部分要素称为运行时配置信息。
目前运行时配置信息都是保存在数据库和第三方缓存中,数据库是采用类似表格的形式保存数据,一条记录对应表格的一行数据,第三方缓存以查询条件作为关键字(key),查询结果作为键值(value)的结果缓存的方式保存。
获取运行时配置信息需要先将查询条件按照特定规则转化成查询key,再请求第三方缓存获取该key对应的结果缓存value,如果value存在则应用程序再将结果缓存value按照特定规则转化成应用程序可以直接使用的形式,如Java对象,并返回该对象;如果value不存在则从数据库查询满足条件的记录,并将查询结果转换成value存入第三缓存中,保存成功后再将查询结果返回。
发明人经过对相关技术的分析,认识到相关技术中存在以下缺陷:1)应用程序强依赖于数据库和第三方缓存系统,数据库或者第三方缓存宕机导致应用程序无法获取运行时配置信息;2)应用程序必须通过网络同数据库或第三方缓存交互,网络交互会增加接口耗时,网络波动会导致查询耗时不稳定;3)第三方缓存中的数据记录不能随配置信息变更实时更新,因为无法确定变更后的配置信息对应的key;4)查询条件必须按照特定规则转换成key,查询结果必须按照特定规则转换成value,两次转换动作增加接口耗时;5)部分场景下不同的查询条件可能对应同一个查询结果,导致查询结果在第三方缓存中重复保存,浪费内存资源。
发明内容
为了解决相关技术中数据查询的效率较低的技术问题,本申请提供了一种数据的查询方法、装置和电子设备。
第一方面,本申请实施例提供了一种数据的查询方法,包括:保存与配置信息对应的目标数据表,其中,目标数据表是按照目标数据结构对配置信息中的数据记录进行转换得到的,目标数据结构是业务应用能够识别的数据结构;在接收到查询请求的情况下,根据查询请求在目标数据表中查找目标数据对象,其中,第二设备是承载业务应用的设备;响应于查询请求,返回查找到的目标数据对象。
可选地,保存与配置信息对应的目标数据表包括:将数据记录按照目标数据结构分别转换为第一数据表和第二数据表,其中,目标数据表包括第一数据表和第二数据表,第一数据表中的每条数据以一条数据记录的数据标识为关键字、以与数据记录对应的数据对象为该关键字对应的键值,第二数据表中的每条数据以目标字段的字段值为关键字、以具有目标字段的字段值的数据记录的标识为该关键字对应的键值,目标数据结构用于指示按照关键字和该关键字对应的键值的形式存储数据。
可选地,根据查询请求在目标数据表中查找目标数据对象包括:根据查询请求确定查询条件;在第二数据表中查询以查询条件为关键字的第一记录,并获取第一记录中的键值对应的目标数据标识;在第一数据表中查询以目标数据标识为关键字的第二记录,并获取第二记录中的键值对应的目标数据对象。
可选地,在查询请求中包括多个查询条件的情况下,在第二数据表中查询以查询条件为关键字的第一记录,并获取第一记录中的键值对应的目标数据标识包括:在第二数据表中查询以多个查询条件为关键字的第一记录,并获取第一记录中的键值对应的目标数据标识。
可选地,该方法还可包括:在配置信息发生更新的情况下,根据更新后的配置信息对目标数据表中的数据对象进行更新。
可选地,可按照如下方式确定配置信息发生更新:接收数据库发送的更新信息,其中,数据库用于存储配置信息;在接收到更新信息的情况下,确定配置信息发生更新。
可选地,根据更新后的配置信息对目标数据表中的数据对象进行更新还包括:在第一数据表中存在以更新数据标识为关键字的数据的情况下,利用更新数据记录对应的数据对象对以更新数据标识为关键字的键值进行更新,其中,更新数据标识为更新数据记录的标识;在第一数据表中不存在以更新数据标识为关键字的数据的情况下,在第一数据表中创建以更新数据标识为关键字、以与更新数据记录对应的数据对象为该关键字对应的键值的数据;在第二数据表中存在以更新数据标识为键值的数据的情况下,利用更新数据记录中字段的字段值对第二数据表中的数据进行更新;在第二数据表中不存在以更新数据标识为键值的数据的情况下,将更新数据标识作为以更新数据记录中字段的字段值为关键字的键值。
第二方面,本申请实施例提供了一种数据的查询装置,包括:数据存储模块,用于保存与配置信息对应的目标数据表,其中,目标数据表是按照目标数据结构对配置信息中的数据记录进行转换得到的,目标数据结构是业务应用能够识别的数据结构;数据查询模块,用于在接收到查询请求的情况下,根据查询请求在目标数据表中查找目标数据对象;数据返回模块,用于响应于查询请求,返回查找到的目标数据对象。
另一方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现上述方法的步骤。
另一方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
使用本申请实施例提供的方法和装置,保存与配置信息对应的目标数据表,在接收到查询请求的情况下,根据查询请求在第一设备本地的目标数据表中查找目标数据对象,在查找到目标数据的情况下,返回目标数据对象,由于整个查询过程是设备本地完成的,而不用与第三方缓存进行数据交互,避免了数据交互带来的时间消耗,可以提高查询的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据的查询方法流程图;
图2为本申请实施例提供的一种将数据库中的数据转换为目标数据表流程示意图;
图3为本申请实施例提供的一种第一数据表和第二数据表示意图;
图4为本申请实施例提供的一种本地缓存数据更新流程图;
图5为本申请实施例提供的一种数据查询装置示意图;
图6为本申请实施例提供的一种电子设备内部结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种数据的查询方法流程图,如图1所示,该方法包括:
S11、在第一设备本地的存储模块中保存与配置信息对应的目标数据表,目标数据表是按照目标数据结构对配置信息中的数据记录进行转换得到的,目标数据结构是业务应用能够识别的数据结构。
可选地,第一设备可以为与应用程序连接的本地服务器,可在应用程序启动时、对外提供服务前,本地服务器将数据库中保存的运行时配置信息获取出来,解析并转换成应用程序可以直接使用的数据对象,获取的运行时配置信息主要包括具体的数据记录以及与数据记录对应的数据标识(ID),将数据对象按照目标数据结构保存在服务器的存储模块(可以是内存、本地硬盘、本地缓存等)中,本实施例中的目标数据结构可选用下文中描述的两种map数据结构,map数据结构为可采用数据表的形式表示。
第一数据表中的每条数据的结构为以一条数据记录的标识ID作为关键字(key)、以与数据记录转换后的数据对象为该ID对应的键值(value),多条map数据结构的数据形成了第一数据表,第一数据表的数量可为一个。
第二数据表中的每条数据以数据记录中的某个或者多个字段的字段值为关键字、以具有该字段的字段值的数据记录的ID为该关键字对应的键值,具体使用哪几个字段作为关键字可由使用该组件的场景决定,可通过配置文件指定作为关键字的字段,这些字段的字段名与查询SQL语句中的字段名匹配(如保持一致),将这些字段作为查询索引字段,根据需要可以存在多个第二数据表,每个第二数据表对应的查询索引字段不同,如可用于作为查询条件的字段有N个,可以将每个字段作为查询条件配置N个第二数据表,也可以对N个字段进行组合作为查询条件,如将其中任意两个进行组合可以得到N*(N-1)/2种查询条件,那么就可以生成与N*(N-1)/2种查询条件对应的N*(N-1)/2个第二数据表,以此类推。
图2为本申请实施例提供的一种将数据库中的数据转换为目标数据表流程示意图,如图2所示,步骤如下:
S21、在从数据库中获取运行时配置信息的一个数据记录;
S22、将该数据记录转换为应用程序可以直接使用的数据对象;
S23、以数据记录的ID作为关键字,以该数据记录的ID对应的数据对象作为对应的键值保存在第一数据表中;
S24、根据需要取出待查询的数据对象中的一个或多个字段的值,按照预设的格式拼成查询索引字段作为关键字;
S25、判断是否存在以该查询索引字段为关键字的第二数据表,如是则执行步骤S26,否则执行步骤S27;
S26、如果存在则将该查询索引字段和对应的ID保存到该第二数据表中;
S27、如果不存在则生成一个新的以该查询索引字段为关键字的第二数据表,以该数据记录的ID作为该查询索引字段的键值保存到生成的第二数据表中,或者在已有第二数据表中创建一条以该查询索引字段为关键字、以该数据记录的ID作为该查询索引字段的键值的数据。
图3为本申请实施例提供的一种第一数据表和第二数据表示意图,如图3所示,本实施例中从数据库下载的运行时配置信息为各个银行的银行卡号,在图3中,存储的运行时配置信息有ID(作为关键字key)、卡bin值、卡号长度和发行银行的编码(作为键值value,可以为java对象),此时将运行时配置信息转换成第一数据表的结构后,关键词为ID1至ID6,对应的键值为ID1至ID6对应的卡bin值、卡号长度和发行银行的编码;将运行时配置信息转换成第二数据表的结构时,图3中选用的为将卡bin值作为关键字,对应的ID作为键值,也可选用卡号长度或发行银行的编码作为关键字,例如卡bin值为622601,对应的ID有1和2,所以将ID1和2形成一个ID列表,作为卡bin值622601的键值。
S12、在接收到第二设备发送的查询请求的情况下,根据查询请求在目标数据表中查找目标数据对象,第二设备是承载业务应用的设备。
S13、响应于查找请求,将查找到的目标数据对象返回给第二设备。
具体地,当用户通过应用终端需要根据某个条件查询对应的信息时,根据查询条件的不同可以分为单列匹配、多列匹配以及列表查询等多种方式。
单列匹配是指查询条件涉及一个字段,如上述实施例中,查询卡bin值是622601的记录,这个查询就只匹配卡bin值一个字段,执行单列匹配查询时,622601就是待查找的关键字,先从第二数据表中查找该卡bin值对应的键值,即卡bin值等于622601的数据记录的ID列表,从ID列表中逐一取出ID,即1和2,再利用取出的ID1和2作为关键字,在第一数据表中查询该ID对应的键值,即该ID对应的应用程序可直接使用的数据对象,返回该对象则查询完成,将ID1对应的卡bin值622601、卡号长度12、发卡银行编码BOC以及ID2对应的卡bin值622601、卡号长度13、发卡银行编码ABC反馈到应用程序的界面上。若从第二数据表或者第一数据表中找不到关键字对应的键值则认为不存在满足查询条件的记录。
可选地,例如该记录为“622605000000”,长度为12、发卡银行编码为ACC以及对应的卡bin值为622605,此时就可以在第一数据表中增加以关键字为7,键值为数据对象“7,622605000000,ACC”的数据,并在第二数据表中创建以卡bin值“622605”为关键字、以ID“7”为键值的数据。
多列匹配与单列匹配的方法基本相同,是指查询条件中涉及多个字段,如上述示例中,查询卡bin值是622601且卡号长度是12的记录,这个查询需匹配卡bin值和卡号长度两个字段。执行多列匹配的逻辑同上,不同的是需要将涉及的多个字段值按照固定的规则拼成查询的关键字,如查询卡bin值是622601且卡号长度是12的记录,待匹配的字段值就是622601和12,可以按照下划线的方式将两者连接起来,如622601_12,再用622601_12作为关键字,在第二数据表中查找匹配的键值,即ID1,再利用取出的ID1作为关键字,在第一数据表中查询该ID对应的键值,即该ID对应的应用程序可直接使用的数据对象,返回该对象则查询完成,将ID1对应的卡bin值622601、卡号长度12、发卡银行编码BOC反馈到应用程序的界面上。
列表查询就是全表搜索或者返回所有的数据记录,如上述示例中就是把6条数据记录全部返回。执行列表查询时,直接将第一数据表中保存的数据对象全部返回即可。
上述操作是在应用程序自身的内存(即运行该应用程序的本地服务器的内存)中完成,查询速度是最快的;上述实现在启动时查询数据库,运行时不依赖于数据库和第三方缓存,不需要通过数据库和第三方缓存进行网络交互和数据转换,缓存的都是原始的数据记录而非查询结果所以不存在重复保存的问题,待关闭应用程序后,相应的缓存也随之消失,不会占用内存资源。
当数据库中的运行时配置信息发生更新时,需要将对应的本地服务器中的数据也进行相应更新,保证数据的准确性。此时更新方案有两种,第一种为本地缓存增量更新,指的是当数据库中保存的部分原始数据修改后,只更新修改后的这部分原始数据对应的本地缓存,难点在于如何确定发生修改的数据和这部分数据对应的本地缓存;第二种为本地缓存全量更新,全量更新是指重新从数据库中加载所有的数据记录到本地缓存中,加载完成后直接替换掉原来的本地缓存,这样存在的问题是全量更新耗时较长,占用大量CPU时间,导致本地缓存查询耗时抖动严重,故本实施例中具体描述第一种本地缓存增量更新的过程。
应用程序可安装在多个设备上,每个设备上运行的应用程序定义为该应用程序的一个实例。在进行更新的过程中,能够达到同一个应用程序部署在多个设备上的多个实例间的本地缓存完全一样的效果,例如应用程序有3个实例A,B,C,实例A通过本地服务器更新了本地缓存中的一条记录,则实例B,C会在几乎同一时刻完成相同的更新操作,从而确保针对同一个查询请求,无论是A,B,C三个实例中的任何一个实例去处理,查询结果都是一致的。
当运维人员通过页面修改数据库中的运行时配置信息时,该页面对应的后端应用处理程序在完成数据库运行时配置信息变更后,会在指定主题下向本地服务器发送一条消息,这里的后端应用处理程序可以为第三方消息订阅程序,即为M,该程序主要提供消息订阅和推送的功能。假如有应用程序A,B,C三个,A,B通过M订阅了主题为MSG的消息,订阅完成后A,B会监听该主题的消息,只要有消息送达会立即处理,C通过M发送了一条主题为MSG的消息,则M会负责将该消息同步的推送给A,B,A,B接收消息后会同步的处理该消息。每个应用程序会监听本地服务器中该主题的消息,待本地服务器接收到更新信息后开始本地缓存的增量更新,开启应用程序A,B,C后查询的配置信息即为更新后的配置信息,借助消息同步巧妙的实现了本地缓存的全局同步。
图4为本申请实施例提供的一种本地缓存数据更新流程图,如图4所示,本地缓存增量更新的具体过程为:
S41、本地服务器从数据库中查询最近设定时间内发生修改的所有记录,设定时间可以为10分钟,循环处理每条记录;
S42、取出每条记录的ID,在第一数据表中查询是否存在该ID,根据不同查询结果进行不同的后续操作,若是则执行步骤S47,否则执行步骤S43:
在不存在的情况下,说明该记录为新增记录,S43、根据是否有效标识判断本次新增的记录是否为有效记录,若本次新增的记录为有效记录则执行步骤S44,否则忽略,关于是否有效标识为提供运行时配置信息的客户提供,例如客户会提供卡bin值为622601-622604间的银行卡有效,若新增后的数据记录中卡bin值变为622605则此条记录为无效记录,即该条新增记录是无效的,所以不用继续处理;
S44、若修改后的记录为有效记录,将该条数据记录解析成应用程序可直接使用的数据对象;
S45、以该数据记录的ID作为关键字,解析后的数据对象作为键值保存在第一数据表中;
S46、根据需要的查询条件从该数据对象中取出一个或多个索引字段的值作为关键字,在第二数据表中查找对应的ID,如果不存在则新增一个ID列表,将对应的ID添加到ID列表中。
如果该记录对应的ID在第一数据表中存在,说明该记录对已有记录进行修改的记录,S47、从数据记录中取出修改时间,判断第二数据表中的记录存入时间与本次修改的记录是否相同,在通常情况下是不同的;
S48、以该记录的ID作为关键字,在第一数据表中删除该ID对应的数据对象;
S49、根据需要的查询条件从该数据对象中取出一个或多个索引字段的值作为关键字,找到第二数据表中对应的ID列表,从ID列表中删除与该索引字段的值对应的ID;
接着转入上述步骤S43,判断本次修改的记录是否为有效记录,若修改后的数据记录为无效记录,即该条记录原来是有效的被改成无效的,因为前面已经从本地缓存中删除了该记录,所以不用继续处理。若修改后的记录为有效记录,则将其作为新增记录处理,处理过程与上述实施例中的第一种情况相同。
本实施例通过修改时间判断发生修改的原始记录,借助巧妙的数据结构找到发生修改的原始记录对应的本地缓存记录,最终实现增量更新,在数据库中数据更新的第一时间对本地缓存进行更新,保证了本地数据的准确性。上述方案在增量更新中依然会查询数据库,但不是对数据库强依赖,即增量更新期间数据库宕机了依然不影响运行时配置信息的查询,提高了更新效率和查询效率。
图5为本申请实施例提供的一种数据查询装置示意图,如图5所示,该装置包括:
数据存储模块51,用于保存与配置信息对应的目标数据表,其中,目标数据表是按照目标数据结构对配置信息中的数据记录进行转换得到的,目标数据结构是业务应用能够识别的数据结构;
数据查询模块52,用于在接收到查询请求的情况下,根据查询请求在目标数据表中查找目标数据对象;
数据返回模块53,用于响应于查询请求,返回查找到的目标数据对象。
可选地,上述装置还包括:数据转换模块,用于将数据记录按照目标数据结构分别转换为第一数据表和第二数据表,其中,目标数据表包括第一数据表和第二数据表,第一数据表中的每条数据以一条数据记录的数据标识为关键字、以与数据记录对应的数据对象为该关键字对应的键值,第二数据表中的每条数据以目标字段的字段值为关键字、以具有目标字段的字段值的数据记录的标识为该关键字对应的键值,目标数据结构用于指示按照关键字和该关键字对应的键值的形式存储数据。
可选地,数据查询模块52包括:
查询条件获取单元,用于根据查询请求确定查询条件;
第一查询单元,用于在第二数据表中查询以查询条件为关键字的第一记录,并获取第一记录中的键值对应的目标数据标识;
第二查询单元,用于在第一数据表中查询以目标数据标识为关键字的第二记录,并获取第二记录中的键值对应的目标数据对象。
可选地,在查询请求中包括多个查询条件的情况下,第一查询单元还用于在第二数据表中查询以多个查询条件为关键字的第一记录,并获取第一记录中的键值对应的目标数据标识。
可选地,上述装置还包括:数据更新模块,用于在配置信息发生更新的情况下,根据更新后的配置信息对目标数据表中的数据对象进行更新。
可选地,数据更新模块按照如下方式确定配置信息发生更新:接收数据库发送的更新信息,其中,数据库用于存储配置信息;
在接收到更新信息的情况下,确定配置信息发生更新。
可选地,数据更新模块包括:
第一更新单元,用于在第一数据表中存在以更新数据标识为关键字的数据的情况下,利用更新数据记录对应的数据对象对以更新数据标识为关键字的键值进行更新,其中,更新数据标识为更新数据记录的标识;在第一数据表中不存在以更新数据标识为关键字的数据的情况下,在第一数据表中创建以更新数据标识为关键字、以与更新数据记录对应的数据对象为该关键字对应的键值的数据;
第二更新单元,用于在第二数据表中存在以更新数据标识为键值的数据的情况下,利用更新数据记录中字段的字段值对第二数据表中的数据进行更新;在第二数据表中不存在以更新数据标识为键值的数据的情况下,将更新数据标识作为以更新数据记录中字段的字段值为关键字的键值。
图6为本申请实施例提供的一种电子设备内部结构示意图。如图6所示,该电子设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该电子设备的非易失性存储介质存储有操作系统,还可存储有程序,该程序被处理器执行时,可使得处理器实现数据的查询方法。该内存储器中也可储存有程序,该程序被处理器执行时,可使得处理器执行数据的查询方法。电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据的查询方法,其特征在于,包括:
保存与配置信息对应的目标数据表,其中,所述目标数据表是按照目标数据结构对所述配置信息中的数据记录进行转换得到的,所述目标数据结构是业务应用能够识别的数据结构;
在接收到查询请求的情况下,根据所述查询请求在所述目标数据表中查找目标数据对象;
响应于所述查询请求,返回查找到的所述目标数据对象。
2.根据权利要求1所述的方法,其特征在于,保存与配置信息对应的目标数据表包括:
将所述数据记录按照所述目标数据结构分别转换为第一数据表和第二数据表,其中,所述目标数据表包括所述第一数据表和所述第二数据表,所述第一数据表中的每条数据以一条所述数据记录的数据标识为关键字、以与所述数据记录对应的数据对象为该关键字对应的键值,所述第二数据表中的每条数据以目标字段的字段值为关键字、以具有所述目标字段的字段值的所述数据记录的标识为该关键字对应的键值,所述目标数据结构用于指示按照关键字和该关键字对应的键值的形式存储数据。
3.根据权利要求2所述的方法,其特征在于,根据所述查询请求在所述目标数据表中查找目标数据对象包括:
根据所述查询请求确定查询条件;
在所述第二数据表中查询以所述查询条件为关键字的第一记录,并获取所述第一记录中的键值对应的目标数据标识;
在所述第一数据表中查询以所述目标数据标识为关键字的第二记录,并获取所述第二记录中的键值对应的所述目标数据对象。
4.根据权利要求3所述的方法,其特征在于,在所述查询请求中包括多个查询条件的情况下,在所述第二数据表中查询以所述查询条件为关键字的第一记录,并获取所述第一记录中的键值对应的目标数据标识包括:
在所述第二数据表中查询以所述多个查询条件为关键字的所述第一记录,并获取所述第一记录中的键值对应的所述目标数据标识。
5.根据权利要求2至4中任意一项所述的方法,其特征在于,所述方法还包括:
在所述配置信息发生更新的情况下,根据更新后的所述配置信息对所述目标数据表中的数据对象进行更新。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括按照如下方式确定所述配置信息发生更新:
接收数据库发送的更新信息,其中,所述数据库用于存储所述配置信息;
在接收到所述更新信息的情况下,确定所述配置信息发生更新。
7.根据权利要求5所述的方法,其特征在于,根据更新后的所述配置信息对所述目标数据表中的数据对象进行更新包括:
在所述第一数据表中存在以更新数据标识为关键字的数据的情况下,利用更新数据记录对应的数据对象对以所述更新数据标识为关键字的键值进行更新,其中,所述更新数据标识为所述更新数据记录的标识;在所述第一数据表中不存在以更新数据标识为关键字的数据的情况下,在所述第一数据表中创建以所述更新数据标识为关键字、以与所述更新数据记录对应的数据对象为该关键字对应的键值的数据;
在所述第二数据表中存在以更新数据标识为键值的数据的情况下,利用更新数据记录中字段的字段值对所述第二数据表中的数据进行更新;在所述第二数据表中不存在以更新数据标识为键值的数据的情况下,将所述更新数据标识作为以所述更新数据记录中字段的字段值为关键字的键值。
8.一种数据的查询装置,其特征在于,包括:
数据存储模块,用于保存与配置信息对应的目标数据表,其中,所述目标数据表是按照目标数据结构对所述配置信息中的数据记录进行转换得到的,所述目标数据结构是业务应用能够识别的数据结构;
数据查询模块,用于在接收到查询请求的情况下,根据所述查询请求在所述目标数据表中查找目标数据对象;
数据返回模块,用于响应于所述查询请求,返回查找到的所述目标数据对象。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911304111.0A CN111125156B (zh) | 2019-12-17 | 2019-12-17 | 数据的查询方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911304111.0A CN111125156B (zh) | 2019-12-17 | 2019-12-17 | 数据的查询方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111125156A true CN111125156A (zh) | 2020-05-08 |
CN111125156B CN111125156B (zh) | 2023-09-26 |
Family
ID=70499378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911304111.0A Active CN111125156B (zh) | 2019-12-17 | 2019-12-17 | 数据的查询方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111125156B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831915A (zh) * | 2020-07-23 | 2020-10-27 | 北京奇艺世纪科技有限公司 | 响应数据查询请求的方法、装置、电子设备及存储介质 |
CN112667495A (zh) * | 2020-12-08 | 2021-04-16 | 上海纳恩汽车技术股份有限公司 | 一种自动化测试用例关键字管理系统及方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020115A (zh) * | 2012-11-13 | 2013-04-03 | 深圳市同洲电子股份有限公司 | 一种数据缓存的方法、缓存服务器及系统 |
US20170052970A1 (en) * | 2015-08-20 | 2017-02-23 | International Business Machines Corporation | Transforming and loading data from a source data system to a target data system |
CN107704585A (zh) * | 2017-10-09 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种查询hdfs数据方法及系统 |
CN107818117A (zh) * | 2016-09-14 | 2018-03-20 | 阿里巴巴集团控股有限公司 | 一种数据表的建立方法、在线查询方法及相关装置 |
JP2018081603A (ja) * | 2016-11-18 | 2018-05-24 | 日本電気株式会社 | Kvデータ構造変換装置、kvデータ構造変換方法、および、kvデータ構造変換プログラム |
CN108108439A (zh) * | 2017-12-21 | 2018-06-01 | 北京奇艺世纪科技有限公司 | 一种数据查询方法、装置及电子设备 |
CN109977160A (zh) * | 2019-03-28 | 2019-07-05 | 上海中通吉网络技术有限公司 | 数据操作方法、装置、设备和存储介质 |
CN110019292A (zh) * | 2017-09-06 | 2019-07-16 | 华为技术有限公司 | 一种数据的查询方法及装置 |
-
2019
- 2019-12-17 CN CN201911304111.0A patent/CN111125156B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020115A (zh) * | 2012-11-13 | 2013-04-03 | 深圳市同洲电子股份有限公司 | 一种数据缓存的方法、缓存服务器及系统 |
US20170052970A1 (en) * | 2015-08-20 | 2017-02-23 | International Business Machines Corporation | Transforming and loading data from a source data system to a target data system |
CN107818117A (zh) * | 2016-09-14 | 2018-03-20 | 阿里巴巴集团控股有限公司 | 一种数据表的建立方法、在线查询方法及相关装置 |
JP2018081603A (ja) * | 2016-11-18 | 2018-05-24 | 日本電気株式会社 | Kvデータ構造変換装置、kvデータ構造変換方法、および、kvデータ構造変換プログラム |
CN110019292A (zh) * | 2017-09-06 | 2019-07-16 | 华为技术有限公司 | 一种数据的查询方法及装置 |
CN107704585A (zh) * | 2017-10-09 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种查询hdfs数据方法及系统 |
CN108108439A (zh) * | 2017-12-21 | 2018-06-01 | 北京奇艺世纪科技有限公司 | 一种数据查询方法、装置及电子设备 |
CN109977160A (zh) * | 2019-03-28 | 2019-07-05 | 上海中通吉网络技术有限公司 | 数据操作方法、装置、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
彭东;: "基于XML的异构数据库集成研究", no. 12 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831915A (zh) * | 2020-07-23 | 2020-10-27 | 北京奇艺世纪科技有限公司 | 响应数据查询请求的方法、装置、电子设备及存储介质 |
CN112667495A (zh) * | 2020-12-08 | 2021-04-16 | 上海纳恩汽车技术股份有限公司 | 一种自动化测试用例关键字管理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111125156B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107247808B (zh) | 一种分布式NewSQL数据库系统及图片数据查询方法 | |
US8566788B2 (en) | Predictive prefetching to improve parallelization of data retrieval subtasks | |
JP5437557B2 (ja) | 検索処理方法及び検索システム | |
RU2611966C2 (ru) | Рекомендательная система для пополнения данных | |
US9141678B2 (en) | Distributed query cache in a database system | |
US20090234849A1 (en) | Streaming Faceted Search | |
CN111339171B (zh) | 数据查询的方法、装置及设备 | |
CN104423982A (zh) | 请求的处理方法和处理设备 | |
CN111125156B (zh) | 数据的查询方法、装置和电子设备 | |
CN110737747A (zh) | 一种数据操作方法、装置及系统 | |
JP2010282241A (ja) | ファイル管理装置、ファイル管理システム、ファイル管理方法、および、プログラム | |
CN111143383A (zh) | 一种数据更新方法、装置、电子设备及存储介质 | |
CN111047434A (zh) | 一种操作记录生成方法、装置、计算机设备和存储介质 | |
CN109428872B (zh) | 数据传输方法、设备、服务器及启动方法、系统 | |
CN110515979B (zh) | 数据查询方法、装置、设备和存储介质 | |
CN113254819B (zh) | 一种页面渲染方法、系统、设备和存储介质 | |
CN110781375A (zh) | 一种用户状态标识确定方法及装置 | |
JP3565117B2 (ja) | 複数異種情報源アクセス方法及びクライアント装置及び複数異種情報源アクセスプログラムを格納した記憶媒体 | |
CN109857380B (zh) | 一种工作流文件编译方法及装置 | |
JP7068210B2 (ja) | データベース管理システム、端末装置及び方法 | |
CN113495723A (zh) | 一种调用功能组件的方法、装置及存储介质 | |
CN107679093B (zh) | 一种数据查询方法及装置 | |
CN107229699B (zh) | 提升移动端用户搜索体验的系统及方法 | |
CN112765503A (zh) | 页面加载数据的静态化处理方法和装置 | |
CN113157722A (zh) | 一种数据处理方法、装置、服务器、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |