一种数据查询方法、装置、电子设备和存储介质与流程

文档序号:26736975发布日期:2021-09-22 22:22阅读:66来源:国知局
1.本发明涉及数据查询
技术领域
:,具体涉及一种数据查询方法、装置、电子设备和存储介质。
背景技术
::2.大数据发展如火如荼,底层的离线数据可以是拍字节级别的,而真正展示给用户的,可能只是从底层的离线数据中获取的少量汇总数据,而这些特定的汇总数据经常被同一个或多个用户反复查阅。缓存这些特定的汇总数据,可以避免每次进行数据查询时都耗费同等数量的计算资源,同时大大减小在海量数据中查找数据的耗时。3.目前,在协调前后端软件一起工作时常用业务连接模块实现前后端软件的连接,一旦数据存储器需要扩容、或者数据存储策略例如缓存位置需要更改的时候,就需要在业务连接模块中定位数据存储策略的位置后进行修改,需要重启业务连接模块数据服务才能应用新的缓存策略。技术实现要素:4.本发明实施例提供一种数据查询方法、装置、电子设备和存储介质,可以在不影响前后端软件正常连接的情况下,随时对数据查询信息进行修改。5.本发明实施例提供一种数据查询方法,包括:6.接收业务数据查询请求,所述业务数据查询请求包括目标业务标识;7.基于所述业务数据查询请求中的所述目标业务标识,和预设的业务标识与业务数据查询信息之间的对应关系,确定所述目标业务标识对应的目标业务数据查询信息;8.从所述目标业务数据查询信息中获取数据存储信息,所述数据存储信息指示所述目标业务标识对应的目标业务数据的存储位置;9.基于所述数据存储信息,从所述数据存储信息指示的存储位置中,获取所述目标业务数据。10.相应的,本发明实施例还提供一种数据查询装置,适用于数据查询系统的业务连接模块,所述数据查询系统还包括与所述业务连接模块对应的业务数据查询信息,所述装置包括:11.请求接收单元,用于接收业务数据查询请求,所述业务数据查询请求包括目标业务标识;12.查询信息确定单元,用于基于所述业务数据查询请求中的所述目标业务标识,和预设的业务标识与业务数据查询信息之间的对应关系,确定所述目标业务标识对应的目标业务数据查询信息;13.存储信息获取单元,用于从所述目标业务数据查询信息中获取数据存储信息,所述数据存储信息指示所述目标业务标识对应的目标业务数据的存储位置;14.数据获取单元,用于基于所述数据存储信息,从所述数据存储信息指示的存储位置中,获取所述目标业务数据。15.在一个可选的示例中,所述目标业务数据查询信息包括目标缓存数据查询信息,所述目标缓存数据查询信息指示所述目标业务数据的缓存地址;16.所述存储信息获取单元,用于从所述目标业务数据查询信息中获取所述目标缓存数据查询信息;17.所述数据获取单元,用于基于所述目标缓存数据查询信息,访问所述目标缓存数据查询信息指示的目标业务数据的缓存地址,得到所述业务数据查询请求对应的所述目标业务数据。18.在一个可选的示例中,所述目标业务数据查询信息还包括业务源数据查询语句,所述业务源数据查询语句指示存储了所述目标业务数据的源数据库;19.所述数据查询装置,还包括源数据获取单元,用于若基于所述目标缓存数据查询信息获取所述目标业务数据失败,从所述目标业务数据查询信息中,获取所述业务源数据查询语句;20.调用所述业务源数据查询语句,从所述源数据库中获取所述目标业务数据。21.在一个可选的示例中,所述源数据获取单元后还包括数据缓存单元,用于基于所述目标缓存数据查询信息,将所述目标业务数据存储到所述目标缓存数据查询信息指示的所述目标业务数据的缓存地址。22.在一个可选的示例中,所述数据查询装置还包括数据更新单元,用于当到达缓存数据更新时刻时,调用各业务对应的业务源数据查询语句,从各业务的源数据库中获取各业务的第一业务数据;23.基于各业务的缓存数据查询信息,访问缓存数据查询信息指示的缓存地址,从缓存地址中获取各业务的第二业务数据;24.对同一业务的第一业务数据和第二业务数据进行比较,若不一致,基于所述第一业务数据对同一业务的第二业务数据进行更新。25.在一个可选的示例中,所述数据获取单元,用于基于所述目标缓存数据查询信息,确定所述目标业务数据的缓存地址,所述缓存地址缓存有至少一个业务对应的业务数据;26.访问所述目标业务数据的缓存地址,根据预设的业务标识与业务数据的对应关系,在所述缓存地址存储的数据中查询所述目标业务标识对应的业务数据,作为所述目标业务数据。27.在一个可选的示例中,所述目标缓存数据查询信息中包括缓存地址标识;28.所述数据获取单元,用于从所述目标缓存数据查询信息中获取所述缓存地址标识;29.根据预设的缓存地址标识与缓存地址之间的对应关系,确定所述目标业务数据的缓存地址;30.访问所述缓存地址,从所述缓存地址存储的数据中获取所述业务数据查询请求对应的所述目标业务数据。31.在一个可选的示例中,所述目标缓存数据查询信息中还包括缓存有效时长;32.所述数据获取单元,用于从所述目标缓存数据查询信息中,获取所述目标缓存数据查询信息指示的业务数据的缓存有效时长;33.基于所述目标缓存数据查询信息指示的缓存地址,确定所述业务数据在所述缓存地址中的存储时长;34.若所述存储时长不大于所述缓存有效时长,访问所述目标缓存数据查询信息指示的缓存地址,得到所述目标业务数据查询请求对应的所述目标业务数据。35.相应的,本发明实施例还提供一种电子设备,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行本发明实施例所提供的任一种数据查询方法中的步骤。36.此外,本发明实施例还提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明实施例所提供的任一种数据查询方法中的步骤。37.采用本发明实施例的方案,可以接收业务数据查询请求,该业务数据查询请求包括目标业务标识,基于该业务数据查询请求中的该目标业务标识,和预设的业务标识与业务数据查询信息之间的对应关系,确定该目标业务标识对应的目标业务数据查询信息,从该目标业务数据查询信息中获取数据存储信息,该数据存储信息指示该目标业务标识对应的目标业务数据的存储位置,基于该数据存储信息,从该数据存储信息指示的存储位置中,获取该目标业务数据;由于本发明实施例不直接将数据查询信息存储在连接前后端软件的业务连接模块中,因此,当需要对数据查询的相关信息例进行修改时,只需要对数据查询信息中的信息进行对应的修改即可,可以让开发人员在不影响前后端软件的正常连接的情况下,随时对数据查询信息进行修改。附图说明38.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。39.图1是本发明实施例提供的数据查询方法的场景示意图;40.图2是本发明实施例提供的数据查询方法的流程图;41.图3是本发明实施例提供的中间件从缓存地址中获取目标业务数据的流程示意图;42.图4是本发明实施例提供的中间件从源数据库中获取目标业务数据流程示意图;43.图5是本发明实施例提供的中间件将目标业务数据存储到目标缓存数据查询信息指示的目标业务数据的缓存地址的流程示意图;44.图6是本发明实施例提供的数据查询方法的另一流程示意图;45.图7是本发明实施例提供的数据查询装置的结构示意图;46.图8是本发明实施例提供的数据查询装置的另一结构示意图;47.图9是本发明实施例提供的电子设备的结构示意图。具体实施方式48.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。49.本发明实施例提供一种数据查询方法、装置、电子设备和存储介质。具体地,本发明实施例提供适用于数据查询装置的数据查询方法,该数据查询装置可以集成在电子设备中。50.该电子设备可以为终端等设备,包括但不限于移动终端和固定终端,例如移动终端包括但不限于智能手机、智能手表、平板电脑、笔记本电脑、智能车载等,其中,固定终端包括但不限于台式电脑、智能电视等。51.该电子设备还可以为服务器等设备,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。52.本发明实施例的数据查询方法,可以由服务器实现,也可以由终端和服务器共同实现。53.下面以终端和服务器共同实现该数据查询方法为例,对该方法进行说明。54.如图1所示,本发明实施例提供的数据查询系统包括终端10和服务器20等;终端10与服务器20之间通过网络连接,比如,通过有线或无线网络连接等,其中,终端10可以作为用户向服务器20发送业务数据查询请求的终端存在。55.其中,业务连接模块可以设置于服务器20,服务器20可以用于接收业务数据查询请求,业务数据查询请求包括目标业务标识,基于业务数据查询请求中的目标业务标识,和预设的业务标识与业务数据查询信息之间的对应关系,确定目标业务标识对应的目标业务数据查询信息,从目标业务数据查询信息中获取数据存储信息,数据存储信息指示目标业务标识对应的目标业务数据的存储位置,基于数据存储信息,从数据存储信息指示的存储位置中,获取目标业务数据。56.以下分别进行详细说明。需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。57.本发明实施例将从数据查询装置的角度进行描述,该数据查询装置具体可以集成在服务器或终端中。58.其中,业务连接模块可以实现对业务和数据的连接功能,即根据业务数据查询请求,为具体的业务提供数据。59.如图2所示,本实施例的数据查询方法的具体流程可以如下:60.201、接收业务数据查询请求,业务数据查询请求包括目标业务标识。61.其中,本发明实施例的数据查询方法可以应用于数据查询系统的业务连接模块,数据查询系统还可以包括与业务连接模块对应的业务数据查询信息。62.其中,业务指的是服务提供者按某一共同的服务目标、通过信息交换实现为服务使用者提供的某个服务。63.其中,业务数据指的是服务提供者与服务使用者之间交换的信息。64.例如,在提供金融服务时,业务可以是支付、储蓄等具体服务,业务数据则可以是在支付、储蓄过程中需要提供给服务使用者的部分或全部数据。再例如,在提供游戏数据分析服务时,业务可以是对不同游戏的数据进行分析等等,业务数据则可以是用户付费率、用户次日留存率等等。65.在一些示例中,业务数据查询请求可以是用户对于不同业务发起的查询某一组数据的请求,例如用户可以选择查询:日活跃用户数量(dailyactiveuser,dau)、平均同时在线玩家人数(averageconcurrentusers,acu)、某一用户的相关数据等业务数据。66.在另一些示例中,业务数据查询请求可以不是由用户发起的,而是技术人员预先根据不同的业务场景进行设置而自动发起的。例如,在游戏场景中,技术人员可以设置对在线的用户每隔一段时间更新一次用户的相关数据,比如,用户在线满3分钟,自动触发终端生成用户相关数据的业务查询请求。或者,可以是用户每次登陆账户时,自动发送用户相关数据的业务查询请求,等等。67.其中,业务数据查询请求可以携带业务标识,业务标识可以指示业务数据请求是对哪些数据、哪种类型或哪个范围内的数据进行查询,例如可以指示对某一天的dau数据进行查询,或者,对某个或某些用户的点击数据进行查询,等等。68.在一些可选的示例中,业务标识可以是具体的业务名称,例如dau查询、acu查询等等,业务标识也可以是不同业务对应的业务标识符,业务标识符可以指示不同的业务,例如可以设置1为dau查询业务的业务标识符等等。业务标识的形式和内容不限,本发明对此不做限定。69.202、基于业务数据查询请求中的目标业务标识,和预设的业务标识与业务数据查询信息之间的对应关系,确定目标业务标识对应的目标业务数据查询信息。70.其中,不同的业务标识与不同的业务数据查询信息对应,业务数据查询信息中可以包括对应的具体业务的数据存储信息等业务数据查询的相关信息,比如,业务数据查询信息可以指示业务数据的优先查询位置、查询某组业务数据的尝试次数等等。71.其中,目标业务数据查询信息是业务数据查询请求中的业务标识对应的业务数据查询信息。72.在一些示例中,如图3所示,业务连接模块可以是将生成业务数据查询请求的应用软件与提供目标业务数据的软件组件连接起来的中间件。在一些示例的一个示例中,预设的业务标识与业务数据查询信息之间的对应关系设置在中间件中。73.其中,中间件是一类连接软件组件和应用的计算机软件,或者,可以认为中间件介于应用系统和系统软件之间的一类软件。它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,以便于运行在一台或多台机器上的多个软件通过网络进行交互,能够达到资源共享、功能共享的目的。74.在一些可选的示例中,一个业务可以只对应一个业务连接模块,或者多个业务可以只对应一个业务连接模块,或者一个业务的不同数据查询请求可以根发给多个业务连接模块,等等。技术人员可以根据实际使用情况对这种业务和业务连接模块之间的对应关系进行设置,本发明实施例对此不做限定。75.例如,业务为提供某应用程序的用户次日留存率数据时,业务数据为某应用程序的用户次日留存率数据,该业务可以对应一个中间件(业务连接模块),或者,业务可以分别发送获取第一日新用户数据的数据查询请求和获取新用户第二日登录数据的数据查询请求给两个不同的中间件,等等。76.203、从目标业务数据查询信息中获取数据存储信息,数据存储信息指示目标业务标识对应的目标业务数据的存储位置。77.其中,目标业务数据为基于业务数据查询请求在业务数据中查询得到的业务数据。可以理解的是,由于存储的业务数据没有及时更新等原因,在一些情况下,目标业务数据可能不是业务数据查询请求实际请求的业务数据。78.可以理解的是,业务连接模块可能同时接受到许多业务数据查询请求,在高并发的情况下,如果使用数据库进行数据查询,查询速度较慢,而直接查询缓存中的数据时查询速度一般是比较快的,因此,可以将业务数据存储在缓存中,提高查询速度。因此,目标业务数据查询信息可以包括目标缓存数据查询信息,目标缓存数据查询信息可以指示目标业务数据的缓存地址,步骤“从目标业务数据查询信息中获取数据存储信息”,可以包括:79.从目标业务数据查询信息中获取目标缓存数据查询信息。80.相应的,步骤204可以包括:基于目标缓存数据查询信息,访问目标缓存数据查询信息指示的目标业务数据的缓存地址,得到业务数据查询请求对应的目标业务数据。81.其中,目标缓存数据查询信息是业务数据查询请求对应的缓存数据查询信息。缓存数据查询信息中可以包括业务数据的具体存储地址或者业务数据存储地址对应的标识符等能够指示业务数据缓存位置的信息。82.在一些示例中,业务数据查询信息可以是文件的形式,缓存数据查询信息可以是业务数据查询信息的一个子文件,或者,可以直接将缓存数据查询信息作为业务数据查询信息。83.在另一些示例中,业务数据查询信息可以是程序代码的形式,缓存数据查询信息可以是其中的一部分代码,也可以是以注释的形式写在业务数据查询信息中的信息。84.例如,业务数据查询信息可以是静态结构化查询语言(structuredquerylanguage,sql)文件的形式,在静态sql文件(业务数据查询信息)中可以包括对于数据库的查询、管理等语句,还可以包括以注释形式写在静态sql文件中的缓存数据查询信息。85.其中,静态sql语句一般用于嵌入式sql应用中,在程序运行前,sql语句必须是确定的,例如sql语句中涉及的列名和表名必须是存在的。86.在一些示例中,业务数据查询信息也可以是动态sql文件的形式,本发明实施例对此不做限定。87.在实际应用过程中,可以为缓存数据查询信息设置标识信息或者关键字,当需要从目标业务数据查询信息中获取缓存数据查询信息时,业务连接模块可以根据缓存数据查询信息的标识和/或关键字,确定读取到的信息为缓存数据查询信息。88.例如,当缓存数据查询信息是业务数据查询信息的一个子文件(缓存数据查询文件)时,可以在缓存数据查询文件的名称中设置特定符号作为标识,比如,可以将缓存数据查询文件的名称设置为包含了标识符“cache”的“cache_mysql”等等。89.又例如,当缓存数据查询信息以注释的形式写在代表业务数据查询信息的程序代码中时,缓存数据查询信息可以为“//cache:mysql”,其中“//”表示双斜线后的内容为注释信息,“cache”为缓存数据查询信息的标识符,“mysql”则代表缓存了目标业务数据的数据库为mysql。90.可以理解的是,注释本身就是编程语句中的常见部分,一般用于说明编程文件中不执行的部分,添加额外的阅读信息。缓存策略写在注释之中的功能与一般意义上注释提供的功能不矛盾。普通的其他注释可以保留,用于其他功能,比如表明该文件编写时间,该文件作者,或者某个技术人员想在静态sql文件(业务数据查询信息)中保留的内容,等等。91.比如,下面有3行都是注释符号#开头:92.#cache:mysql93.#该文件编写于2021年4月94.#author:xxx95.因为第一行中有cache标识符,第二行第三行没有cache标识符,因此中间件(业务连接模块)在读取到这三行内容时,可以基于标识符,确认第一行的内容是缓存数据查询信息,第二行和第三行是普通的注释内容。96.可以理解的是,以上示例为对缓存数据查询信息的解释性说明,不应理解为对缓存数据查询信息的限定。本发明实施例对缓存数据查询信息的内容和形式不做限制,技术人员可以根据实际使用自行设置缓存数据查询信息的标识符、格式等等。97.其中,业务连接模块在查询业务数据时,可以将能够实现访问目标业务数据的存储地址的代码中,关于目标业务数据存储地址的信息设置为变量,当业务连接模块读取到缓存数据查询信息时,可以根据缓存数据查询信息指示的目标业务数据的存储地址,确定变量的实际值,实现对目标业务数据的存储地址的访问。98.或者,缓存数据查询信息也可以是程序代码的形式,当业务连接模块确定了缓存数据查询信息之后,可以运行缓存数据查询信息的代码,访问缓存数据查询信息指示的目标业务数据的存储地址。即,步骤“基于所述缓存数据查询信息,访问所述缓存数据查询信息指示的业务数据的缓存地址,得到所述业务数据查询请求对应的所述目标业务数据”,可以包括:99.获取所述目标业务数据查询信息;100.基于预设的缓存数据查询代码标识,从所述目标业务数据查询信息中获取缓存数据查询代码;101.运行所述缓存数据查询代码,访问所述缓存数据查询信息指示的业务数据的缓存地址;102.从所述缓存数据查询信息指示的业务数据的缓存地址中,获取所述业务数据查询请求对应的所述目标业务数据。103.例如,可以根据代码语言选择对应的注释提取工具对目标业务数据查询信息中注释的缓存数据查询信息进行获取。比如,如果代码语言为java,可以通过javadoc工具提取出java代码中的注释。104.可以理解的是,为了提升对存储空间的利用率,在同一缓存地址,可能存储有多组不同的业务对应的业务数据,因此,可以预先设置业务标识与业务数据的对应关系,在访问缓存地址时,可以根据业务标识与业务数据的对应关系确定实际要获取的业务数据。即,步骤“基于目标缓存数据查询信息,访问目标缓存数据查询信息指示的目标业务数据的缓存地址,得到业务数据查询请求对应的目标业务数据”可以包括:105.基于目标缓存数据查询信息,确定目标业务数据的缓存地址,缓存地址缓存有至少一个业务对应的业务数据;106.访问目标业务数据的缓存地址,根据预设的业务标识与业务数据的对应关系,在缓存地址存储的数据中查询目标业务标识对应的业务数据,作为目标业务数据。107.其中,预设的业务标识与业务数据的对应关系可以设置于业务连接模块,也可以写在业务数据查询信息中。108.在一些实施例中,可以直接在缓存数据查询信息中写入目标业务数据的缓存地址,例如缓存数据查询信息可以为#cache:redis:{“ip”:”10.xxx.xxx.yyy”,port:1111},其中,#为程序代码中的注释符号,cache为缓存数据查询信息的标识符,“ip”:”10.xxx.xxx.yyy”表示目标业务数据的缓存地址,port:1111为具体的通信端口。109.在另一些实施例中,可以在业务连接模块中预先设置缓存地址标识与缓存地址之间的对应关系,当读取到缓存数据查询信息中的缓存地址标识时,就可以确定对应的缓存地址。即,目标缓存数据查询信息中包括缓存地址标识;110.对应的,步骤“基于目标缓存数据查询信息,访问目标缓存数据查询信息指示的目标业务数据的缓存地址,得到业务数据查询请求对应的目标业务数据”,可以包括:111.从目标缓存数据查询信息中获取缓存地址标识;112.根据预设的缓存地址标识与缓存地址之间的对应关系,确定目标业务数据的缓存地址;113.访问缓存地址,从缓存地址存储的数据中获取业务数据查询请求对应的目标业务数据。114.例如,可以在业务连接模块以字典的形式存储缓存地址标识与缓存地址之间的对应关系,比如,业务连接模块中有一个字典,115.{“mysql”:{“ip”:”10.xxx.xxx.xxx”,port:3306},[0116]“redis”:{“ip”:”10.xxx.xxx.yyy”,port:1111},}[0117]其中,mysql、redis为缓存地址标识,“mysql”:{“ip”:”10.xxx.xxx.xxx”,port:3306}为mysql这一缓存地址标识与缓存地址之间的对应关系。[0118]204、基于数据存储信息,从数据存储信息指示的存储位置中,获取目标业务数据。[0119]在一些实施例中,由于通信连接失败、缓存地址中未缓存业务数据等原因,可能从缓存地址中没有成功获取到目标业务数据,此时,可以从目标业务数据的原始存储位置(源数据库)中获取目标业务数据。即,如图4所示,目标业务数据查询信息还包括业务源数据查询语句,业务源数据查询语句指示存储了目标业务数据的源数据库。[0120]本发明实施例的数据查询方法还包括:[0121]若基于目标缓存数据查询信息获取目标业务数据失败,从目标业务数据查询信息中,获取业务源数据查询语句;[0122]调用业务源数据查询语句,从源数据库中获取目标业务数据。[0123]其中,源数据库可以为oracle数据库(oracle数据库又名oraclerdbms,或简称oracle,是甲骨文公司的一款关系数据库管理系统),mysql(mysql是一个开放源码的小型关联式数据库管理系统)数据库、postgresql(postgresql是一个自由的对象‑关系数据库服务器)数据库或技术人员自行设置的数据库等等。这些数据库用于在本实施例中对数据进行存储、分析及处理等等。[0124]例如,业务源数据查询语句可以是“selectid,namefromtableuser”,其中,“fromtableuser”可以指示存储了业务数据的源数据库。[0125]在一些可选的示例中,目标缓存数据查询信息和业务源数据查询语句可以是在一个文件中,例如,目标业务数据查询信息可以是一个静态sql文件,业务源数据查询语句是静态sql文件的sql语句,目标缓存数据查询信息是静态sql文件的注释语句。[0126]在另一些示例中,目标缓存数据查询信息和业务源数据查询语句可以各自存储为两个单独的文件,例如业务源数据查询语句可以是一个静态sql文件的sql语句,目标缓存数据查询信息可以存储在另一个静态sql文件中。目标缓存数据查询信息和业务源数据查询语句之间,可以通过业务标识符等建立对应关系,等等。[0127]如图5所示,为了便于在后续使用过程中从缓存位置获得数据,可以在从源数据库中获得数据后,将数据存入缓存地址所在的缓存空间中,即,步骤“调用业务源数据查询语句,从源数据库中获取目标业务数据”后,还可以包括:[0128]基于目标缓存数据查询信息,将目标业务数据存储到目标缓存数据查询信息指示的目标业务数据的缓存地址。[0129]在一些可选的示例中,也可以将获取到的目标业务数据缓存至任意地址,存储数据后对目标缓存数据查询信息进行更新,即,步骤“调用业务源数据查询语句,从源数据库中获取目标业务数据”后,还可以包括:[0130]将目标业务数据缓存到目标缓存地址;[0131]基于目标缓存地址,将目标缓存数据查询信息指示的目标业务数据的缓存地址修改为目标缓存地址。[0132]在一些示例中,缓存数据查询信息中还可以包括对于数据的缓存策略,例如可以包括先进先出策略(firstinfirstout,fifo)、最近最常使用策略(leastfrequentlyused,lfu)、最近最少使用策略(leastrecentlyused,lru)等缓存算法。[0133]例如,可以在缓存数据查询信息中写入数据缓存策略,当需要修改或者删除缓存中的数据时,业务连接模块可以根据缓存策略对缓存中的数据进行管理操作。[0134]可以理解的是,为了保证缓存中的数据的有效性,可以根据实际应用的需要定时或不定时地对缓存中的数据进行更新,即,本发明实施例还可以包括:[0135]当到达缓存数据更新时刻时,调用各业务对应的业务源数据查询语句,从各业务的源数据库中获取各业务的第一业务数据;[0136]基于各业务的缓存数据查询信息,访问缓存数据查询信息指示的缓存地址,从缓存地址中获取各业务的第二业务数据;[0137]对同一业务的第一业务数据和第二业务数据进行比较,若不一致,基于第一业务数据对同一业务的第二业务数据进行更新。[0138]在一些可选的示例中,每个业务可以设置独立对应的源数据库,或者,多个业务对应一个源数据库,等等。在对缓存中的数据进行更新时,可以只对部分源数据库数据发生改变的业务数据进行更新,或者,对部分设置了单独的缓存数据更新时刻的业务数据进行更新,也可以到达缓存数据更新时刻后,对全部的缓存中的数据都进行更新,等等。[0139]具体地,技术人员可以预先设置数据更新策略,数据更新策略可以是定时对缓存地址中的数据进行更新,例如每天2:00对数据进行更新,或者每次间隔8小时对数据进行更新等等。或者,源数据更新策略也可以是当源数据库中的数据发生变化时,即时地对缓存地址中的数据进行更新,等等。具体的数据更新策略可以由技术人员根据实际使用情况进行设置,本发明实施例对此不做限定。[0140]其中,缓存数据更新时刻可以是根据数据更新策略确定的时间点,例如,当数据更新策略为业务数据查询请求数小于预设值n时对缓存地址中的数据进行更新时,缓存数据更新时刻可以为每个业务数据查询请求数小于预设值n的时刻,等等。[0141]在一些实施例中,为了增强缓存中数据的可靠性,可以预先设置缓存中所存储的数据的有效时间长度,在缓存中的数据已存储时长没有超过有效时间长度的情况下,认为缓存中的数据是有效的。即,目标缓存数据查询信息中还可以包括缓存有效时长;[0142]相应的,步骤“基于目标缓存数据查询信息,访问目标缓存数据查询信息指示的目标业务数据的缓存地址,得到业务数据查询请求对应的目标业务数据”,可以包括:[0143]从目标缓存数据查询信息中,获取目标缓存数据查询信息指示的业务数据的缓存有效时长;[0144]基于目标缓存数据查询信息指示的缓存地址,确定业务数据在缓存地址中的存储时长;[0145]若存储时长不大于缓存有效时长,访问目标缓存数据查询信息指示的缓存地址,得到目标业务数据查询请求对应的目标业务数据。[0146]在一些实施例中,若存储时长大于缓存数据的有效时长,则可以执行从目标业务数据查询信息中,获取业务源数据查询语句;[0147]调用业务源数据查询语句,从源数据库中获取目标业务数据的步骤。[0148]例如,目标缓存数据查询信息可以为#cache:redis:1d,其中1d可以表示缓存中数据的有效时间为一天,等等。[0149]在一些示例中,业务连接模块(中间件)可以不必在接收到业务数据查询请求时才获取目标缓存数据查询信息,而是可以定时地或者不定时地,从目标缓存数据查询信息中,获取目标缓存数据查询信息指示的业务数据的缓存有效时长,基于目标缓存数据查询信息指示的缓存地址,确定业务数据在缓存地址中的存储时长,如果存储时长大于缓存有效时长,则对缓存地址中的数据进行管理,等等。[0150]由上可知,本发明实施例可以适用于数据查询系统的业务连接模块,数据查询系统还包括与业务连接模块对应的业务数据查询信息,业务连接模块接收业务数据查询请求,业务数据查询请求包括目标业务标识,基于业务数据查询请求中的目标业务标识,和预设的业务标识与业务数据查询信息之间的对应关系,确定目标业务标识对应的目标业务数据查询信息,从目标业务数据查询信息中获取数据存储信息,数据存储信息指示目标业务标识对应的目标业务数据的存储位置,基于数据存储信息,从数据存储信息指示的存储位置中,获取目标业务数据;由于本发明实施例不直接将数据查询信息存储在业务连接模块中,而是将数据查询信息与业务连接模块对应存储,因此,当需要对数据查询的相关信息例进行修改时,只需要对数据查询信息中的信息进行对应的修改即可,可以让开发人员在不影响业务连接模块正常使用的情况下,随时对数据查询信息进行修改。[0151]根据前面实施例所描述的方法,以下将举例作进一步详细说明。[0152]在本实施例中,将结合图1的数据查询系统进行说明。[0153]如图6所示,本实施例的数据查询方法,具体流程可以如下:[0154]601、终端接收用户提交的业务数据查询请求,将业务数据查询请求发送给业务连接模块所在的电子设备。[0155]其中,业务连接模块所在的电子设备可以为用户提交业务数据查询请求的终端,也可以是独立的服务器等等。[0156]在一些实施例中,业务连接模块可以与对应的业务数据查询信息分别设置在不同的电子设备上。可以理解的是,为了提高对数据的访问速度,也可以将业务连接模块和对应的业务数据查询信息设置在同一电子设备中。[0157]602、电子设备接收业务数据查询请求,业务数据查询请求包括目标业务标识。[0158]例如,用户在终端触发生成业务数据查询请求,在业务数据查询请求中根据用户的操作添加目标业务标识,终端将业务数据查询请求发送至电子设备,使得电子设备接收到业务数据查询请求。[0159]比如,用户的操作可以是对某个用户添加好友的操作,当用户点击添加用户的控件时,终端生成业务数据查询请求,在业务数据查询请求中根据用户的添加好友操作,添加获取目标用户信息的目标业务标识。[0160]603、电子设备基于业务数据查询请求中的目标业务标识,和预设的业务标识与业务数据查询信息之间的对应关系,确定目标业务标识对应的目标业务数据查询信息。[0161]例如,电子设备在业务数据查询请求中查询是否存在目标业务标识,当业务数据查询请求中存在目标业务标识时,获取目标业务标识,业务数据查询请求中可以包括一个或多个目标业务标识。当业务数据查询请求中不存在目标业务标识时,向终端返回数据获取失败的提示消息。[0162]在一些实施例中,电子设备可以在数据获取失败后,将该业务数据查询请求作为失败信息发送到业务数据查询请求的检测平台,技术人员可以根据检测平台收到的失败信息,对预设的业务标识与业务数据查询信息之间的对应关系进行修改等操作。[0163]604、电子设备从目标业务数据查询信息中获取目标缓存数据查询信息,目标缓存数据查询信息指示目标业务标识对应的目标业务数据的缓存地址。[0164]例如,电子设备中的中间件,可以对目标业务数据查询信息即静态sql文件进行读取,目标缓存数据查询信息以注释的形式写在静态sql文件中,比如目标缓存数据查询信息可以为“#cache:mysql”,其中“#”表示双斜线后的内容为注释信息,“cache”为缓存数据查询信息的标识符,“mysql”则代表缓存了目标业务数据的数据库为mysql,“mysql”可以指示目标业务标识对应的目标业务数据的缓存地址。[0165]当中间件读取到cache标识符时,即开始获取目标缓存数据查询信息。[0166]605、基于目标缓存数据查询信息,访问目标缓存数据查询信息指示的目标业务数据的缓存地址,得到业务数据查询请求对应的目标业务数据。[0167]在一些实施例中,可以直接在目标缓存数据查询信息中写入目标业务数据的缓存地址,例如目标缓存数据查询信息可以为#cache:redis:{“ip”:”10.xxx.xxx.yyy”,port:1111},其中,#为程序代码中的注释符号,cache为缓存数据查询信息的标识符,“ip”:”10.xxx.xxx.yyy”表示目标业务数据的缓存地址,port:1111为具体的通信端口。[0168]其中,电子设备中的中间件可以根据目标缓存数据查询信息中的“ip”:”10.xxx.xxx.yyy”和port:1111,对该地址进行访问,读取该地址的缓存空间内的数据。[0169]606、若基于目标缓存数据查询信息获取目标业务数据失败,电子设备从目标业务数据查询信息中,获取业务源数据查询语句,调用业务源数据查询语句,从源数据库中获取目标业务数据。[0170]例如,业务源数据查询语句可以是“selectlastname,firstnamefrompersons”,其中,“frompersons”可以指示存储了业务数据的源数据库。中间件可以调用selectlastname,firstnamefrompersons这一语句,访问persons数据库,从中获取lastname,firstname这两列的数据。[0171]607、电子设备将目标业务数据发送给终端。[0172]在一些实施例中,终端在接收到目标业务数据后,可以直接对目标业务数据进行显示,呈现给用户。[0173]在另一些实施例中,终端在接收到目标业务数据后,还可以对目标业务数据进行进一步的处理后再显示给用户。例如,用户期望获得的数据为用户付费率,而从缓存或者源数据库中获取的目标业务数据可能是用户总数、用户付费总额、付费用户总数等等,此时终端可以基于目标业务数据做进一步计算,再将用户期望获得的数据显示给用户。[0174]608、电子设备基于目标缓存数据查询信息,将目标业务数据存储到目标缓存数据查询信息指示的目标业务数据的缓存地址。[0175]例如,电子设备上的中间件可以从源数据库中获取目标业务数据后,返回执行步骤603和步骤604,确定目标业务数据的缓存地址。中间件再将获取到的目标业务数据存储到目标业务数据的缓存地址中。[0176]在存储时,如果缓存地址中没有数据,可以直接对目标业务数据进行存储。如果缓存地址中本身存储有业务数据,则中间件可以对原本的业务数据进行删除后再存储目标业务数据,或者,中间件也可以根据目标缓存数据查询信息中的缓存算法,例如先进先出算法,对原本的业务数据进行管理后,再存入目标业务数据,等等。[0177]由上可知,本发明实施例可以不直接将数据查询信息存储在业务连接模块中,而是将数据查询信息与业务连接模块对应存储,因此,当需要对数据查询的相关信息例进行修改时,只需要对数据查询信息中的信息进行对应的修改即可,可以让开发人员在不影响业务连接模块正常使用的情况下,随时对数据查询信息进行修改。[0178]为了更好地实施以上方法,相应的,本发明实施例还提供一种数据查询装置。[0179]参考图7,数据查询装置适用于数据查询系统的业务连接模块,数据查询系统还包括与业务连接模块对应的业务数据查询信息,装置包括:[0180]请求接收单元701,用于接收业务数据查询请求,业务数据查询请求包括目标业务标识;[0181]查询信息确定单元702,用于基于业务数据查询请求中的目标业务标识,和预设的业务标识与业务数据查询信息之间的对应关系,确定目标业务标识对应的目标业务数据查询信息;[0182]存储信息获取单元703,用于从目标业务数据查询信息中获取数据存储信息,数据存储信息指示目标业务标识对应的目标业务数据的存储位置;[0183]数据获取单元704,用于基于数据存储信息,从数据存储信息指示的存储位置中,获取目标业务数据。[0184]在一个可选的示例中,目标业务数据查询信息包括目标缓存数据查询信息,目标缓存数据查询信息指示目标业务数据的缓存地址;[0185]存储信息获取单元703,用于从目标业务数据查询信息中获取目标缓存数据查询信息;[0186]数据获取单元704,用于基于目标缓存数据查询信息,访问目标缓存数据查询信息指示的目标业务数据的缓存地址,得到业务数据查询请求对应的目标业务数据。[0187]在一个可选的示例中,目标业务数据查询信息还可以包括业务源数据查询语句,业务源数据查询语句指示存储了目标业务数据的源数据库;[0188]如图8所示,本发明实施例提供的数据查询装置,还可以包括源数据获取单元705,用于若基于目标缓存数据查询信息获取目标业务数据失败,从目标业务数据查询信息中,获取业务源数据查询语句;[0189]调用业务源数据查询语句,从源数据库中获取目标业务数据。[0190]在一个可选的示例中,源数据获取单元705后还包括数据缓存单元706,用于基于目标缓存数据查询信息,将目标业务数据存储到目标缓存数据查询信息指示的目标业务数据的缓存地址。[0191]在一个可选的示例中,数据查询装置还可以包括数据更新单元707,用于当到达缓存数据更新时刻时,调用各业务对应的业务源数据查询语句,从各业务的源数据库中获取各业务的第一业务数据;[0192]基于各业务的缓存数据查询信息,访问缓存数据查询信息指示的缓存地址,从缓存地址中获取各业务的第二业务数据;[0193]对同一业务的第一业务数据和第二业务数据进行比较,若不一致,基于第一业务数据对同一业务的第二业务数据进行更新。[0194]在一个可选的示例中,数据获取单元704,可以用于基于目标缓存数据查询信息,确定目标业务数据的缓存地址,缓存地址缓存有至少一个业务对应的业务数据;[0195]访问目标业务数据的缓存地址,根据预设的业务标识与业务数据的对应关系,在缓存地址存储的数据中查询目标业务标识对应的业务数据,作为目标业务数据。[0196]在一个可选的示例中,目标缓存数据查询信息中包括缓存地址标识;[0197]数据获取单元704,可以用于从目标缓存数据查询信息中获取缓存地址标识;[0198]根据预设的缓存地址标识与缓存地址之间的对应关系,确定目标业务数据的缓存地址;[0199]访问缓存地址,从缓存地址存储的数据中获取业务数据查询请求对应的目标业务数据。[0200]在一个可选的示例中,目标缓存数据查询信息中还包括缓存有效时长;[0201]数据获取单元,用于从目标缓存数据查询信息中,获取目标缓存数据查询信息指示的业务数据的缓存有效时长;[0202]基于目标缓存数据查询信息指示的缓存地址,确定业务数据在缓存地址中的存储时长;[0203]若存储时长不大于缓存有效时长,访问目标缓存数据查询信息指示的缓存地址,得到目标业务数据查询请求对应的目标业务数据。[0204]具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。[0205]由上可知,通过数据查询装置,本发明实施例可以不直接将数据查询信息存储在业务连接模块中,而是将数据查询信息与业务连接模块对应存储,因此,当需要对数据查询的相关信息例进行修改时,只需要对数据查询信息中的信息进行对应的修改即可,可以让开发人员在不影响业务连接模块正常使用的情况下,随时对数据查询信息进行修改。[0206]此外,本发明实施例还提供一种电子设备,该电子设备可以为终端或者服务器等等,如图9所示,其示出了本发明实施例所涉及的电子设备的结构示意图,具体来讲:[0207]该电子设备可以包括射频(rf,radiofrequency)电路901、包括有一个或一个以上计算机可读存储介质的存储器902、输入单元903、显示单元904、传感器905、音频电路906、无线保真(wifi,wirelessfidelity)模块907、包括有一个或者一个以上处理核心的处理器908、以及电源909等部件。本领域技术人员可以理解,图9中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:[0208]rf电路901可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器908处理;另外,将涉及上行的数据发送给基站。通常,rf电路901包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(sim,subscriberidentitymodule)卡、收发信机、耦合器、低噪声放大器(lna,lownoiseamplifier)、双工器等。此外,rf电路901还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(gsm,globalsystemofmobilecommunication)、通用分组无线服务(gprs,generalpacketradioservice)、码分多址(cdma,codedivisionmultipleaccess)、宽带码分多址(wcdma,widebandcodedivisionmultipleaccess)、长期演进(lte,longtermevolution)、电子邮件、短消息服务(sms,shortmessagingservice)等。[0209]存储器902可用于存储软件程序以及模块,处理器908通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器908和输入单元903对存储器902的访问。[0210]输入单元903可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元903可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器908,并能接收处理器908发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元903还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。[0211]显示单元904可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元904可包括显示面板,可选的,可以采用液晶显示器(lcd,liquidcrystaldisplay)、有机发光二极管(oled,organiclight‑emittingdiode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器908以确定触摸事件的类型,随后处理器908根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图9中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。[0212]电子设备还可包括至少一种传感器905,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在电子设备移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于电子设备还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。[0213]音频电路906、扬声器,传声器可提供用户与电子设备之间的音频接口。音频电路906可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路906接收后转换为音频数据,再将音频数据输出处理器908处理后,经rf电路901以发送给比如另一电子设备,或者将音频数据输出至存储器902以便进一步处理。音频电路906还可能包括耳塞插孔,以提供外设耳机与电子设备的通信。[0214]wifi属于短距离无线传输技术,电子设备通过wifi模块907可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了wifi模块907,但是可以理解的是,其并不属于电子设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。[0215]处理器908是电子设备的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行电子设备的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器908可包括一个或多个处理核心;优选的,处理器908可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器908中。[0216]电子设备还包括给各个部件供电的电源909(比如电池),优选的,电源可以通过电源管理系统与处理器908逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源909还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。[0217]尽管未示出,电子设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,电子设备中的处理器908会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器908来运行存储在存储器902中的应用程序,从而实现各种功能,如下:[0218]接收业务数据查询请求,业务数据查询请求包括目标业务标识;[0219]基于业务数据查询请求中的目标业务标识,和预设的业务标识与业务数据查询信息之间的对应关系,确定目标业务标识对应的目标业务数据查询信息;[0220]从目标业务数据查询信息中获取数据存储信息,数据存储信息指示目标业务标识对应的目标业务数据的存储位置;[0221]基于数据存储信息,从数据存储信息指示的存储位置中,获取目标业务数据。[0222]本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。[0223]为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种数据查询方法中的步骤。例如,该指令可以执行如下步骤:[0224]接收业务数据查询请求,业务数据查询请求包括目标业务标识;[0225]基于业务数据查询请求中的目标业务标识,和预设的业务标识与业务数据查询信息之间的对应关系,确定目标业务标识对应的目标业务数据查询信息;[0226]从目标业务数据查询信息中获取数据存储信息,数据存储信息指示目标业务标识对应的目标业务数据的存储位置;[0227]基于数据存储信息,从数据存储信息指示的存储位置中,获取目标业务数据。[0228]以上各个操作的具体实施可参见前面的实施例,在此不再赘述。[0229]其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。[0230]由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种数据查询方法中的步骤,因此,可以实现本发明实施例所提供的任一种数据查询方法所能实现的有益效果,详见前面的实施例,在此不再赘述。[0231]根据本技术的一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述实施例中的各种可选实现方式中提供的方法。[0232]以上对本发明实施例所提供的一种数据查询方法、装置、电子设备和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1