CN112732756A - 数据查询方法、装置、设备及存储介质 - Google Patents
数据查询方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112732756A CN112732756A CN202011631487.5A CN202011631487A CN112732756A CN 112732756 A CN112732756 A CN 112732756A CN 202011631487 A CN202011631487 A CN 202011631487A CN 112732756 A CN112732756 A CN 112732756A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- data query
- query request
- query
- 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
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提供了一种数据查询方法、装置、设备及存储介质,其所述方法包括:响应于接收到的数据查询请求,获得所述数据查询请求的类型;从第一数据库和第二数据库中,确定与所述数据查询请求的类型对应的目标数据库;将所述数据查询请求定向至所述目标数据库中进行查询;其中,所述第一数据库具有的性能参数值的大小不同于所述第二数据库具有的性能参数值的大小。采用本申请的数据查询方法,可以对数据查询请求进行分类处理,从而从整体上保证数据查询的效率和稳定性。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据查询方法、装置、设备及存储介质。
背景技术
随着互联网技术的进步与发展,企业的互联网环境越来越复杂,数量庞大、品种繁多的IT设备及相关基础服务很难被有效管理。
相关技术中,为了对企业的互联网环境中的IT设备及相关基础服务进行有效管理,一般是用数据库存储管理企业架构中IT设备的各种配置信息,例如,配置项全生命周期的信息以及各配置项之间的关系(包括物理关系、实时通信关系、非实时通信关系和依赖关系)。
然而,随着企业的IT设备以及基础服务数量的不断增长,数据库中数据量的规模越来越大,这样,数据库在大量的基础数据之上处理数据查询时。通常会出现效率低下、响应时间慢的问题。
发明内容
本申请提供一种数据查询方法、装置、设备及存储介质,以解决相关技术中数据查询效率低下的问题。
为了解决上述问题,本申请实施例的第一方面,公开了一种数据查询方法,其特征在于,所述方法包括:
响应于接收到的数据查询请求,获得所述数据查询请求的类型;
从第一数据库和第二数据库中,确定与所述数据查询请求的类型对应的目标数据库;
将所述数据查询请求定向至所述目标数据库中进行查询;
其中,所述第一数据库具有的性能参数值的大小不同于所述第二数据库具有的性能参数值的大小。
可选地,获得所述数据查询请求的类型,包括:
确定所述数据查询请求中一个数据项所关联的其他不同种类的数据项的数量;
在所述其他不同种类的数据项的数量超过预设阈值时,确定所述数据查询请求的类型为关联查询类型;
在所述其他不同种类的数据项的数量未超过预设阈值时,确定所述数据查询请求的类型为简单查询类型。
可选地,所述第二数据库的性能参数值高于所述第一数据库的性能参数值,确定与所述数据查询请求的类型对应的目标数据库,包括:
在所述数据查询请求的类型为关联查询类型时,确定所述第二数据库为所述目标数据库;
在所述数据查询请求的类型为简单查询类型时,确定所述第一数据库为所述目标数据库。
可选地,所述第二数据库为所述第一数据库的备份数据库,所述方法还包括以下至少一个步骤:
在检测到针对所述第一数据库中的数据的增加、删除和/或修改操作时,将所述第一数据库中发生变化的数据同步至所述第二数据库中;
在周期性检测到所述第一数据库中存储的数据与所述第二数据库中存储的数据不一致时,将所述第一数据库中的数据同步至所述第二数据库中。
可选地,所述第一数据库的性能参数值小于所述第二数据库的性能参数值,所述方法还包括:
获得所述第二数据库的可查询状态;
确定与所述数据查询请求的类型对应的目标数据库,包括:
在所述第二数据库的可查询状态为正常状态的情况下,确定与所述数据查询请求的类型对应的目标数据库;
在所述第二数据库的可查询状态为非正常状态的情况下,将所述数据查询请求定向至所述第一数据库中进行查询。
可选地,所述第二数据库为所述第一数据库的备份数据库,获得所述第二数据库的可查询状态,包括:
监测所述第二数据库的状态信息,以及,对所述第一数据库和所述第二数据库中存储的数据进行一致性校对;
根据所述状态信息和/或所述一致性校对的结果,确定所述可查询状态。
可选地,根据所述可用状态和/或所述一致性校对的结果确定所述可查询状态,包括以下任一者:
在所述状态信息表征所述第二数据库不可用或所述一致性校对的结果为不一致时,确定所述可查询状态为非正常状态;
在所述状态信息表征所述第二数据库不可用且所述一致性校对的结果为不一致时,确定所述可查询状态为非正常状态;
在所述状态信息表征所述第二数据库可用且所述一致性校对的结果为一致时,确定所述可查询状态为正常状态。
可选地,将所述数据查询请求定向至所述第一数据库中进行查询之后,所述方法还包括:
在所述第二数据库的可查询状态为非正常状态期间,若接收到新的第一数据查询请求,将所述第一数据查询请求定向至所述第一数据库中进行查询;
在所述第二数据库的可查询状态为非正常状态恢复为正常状态时,若接收到关联查询类型的第二数据查询请求,将所述第二数据查询请求定向至所述第二数据库中进行查询。
可选地,所述方法还包括:
获得所述目标数据库返回的查询结果;
基于所述数据查询请求所对应的对象语言封装所述查询结果,并将封装得到的查询结果的格式转换成预设数据交换格式;
将转换成预设数据交换格式的查询结果返回给所述数据查询请求对应的查询端。
本申请实施例的第二方面,提供一种数据查询装置,所述装置包括:
响应模块,用于响应于接收到的数据查询请求,确定所述数据查询请求的类型;
数据库确定模块,用于从第一数据库和第二数据库中,确定与所述数据查询请求的类型对应的目标数据库;
定向模块,用于将所述数据查询请求定向至所述目标数据库中,并进行查询;
其中,所述第一数据库具有的性能参数值的大小不同于所述第二数据库具有的性能参数值的大小。
本发明实施例的第三方面,还公开了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如第一方面所述的数据查询方法。
本发明实施例的第四方面,还公开了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本发明第一方面实施例所述的数据查询方法。
与现有技术相比,本申请包括以下优点:
本发明实施中,可以响应于数据查询请求,获得数据查询请求的类型,从第一数据库和第二数据库中,确定与数据查询请求的类型对应的目标数据库,继而将数据查询请求定向至与该类型对应的目标数据库中进行查询。
由于第一数据库具有的性能参数值的大小不同于所述第二数据库具有的性能参数值的大小,由此,可以将不同类型的查询请求关联到性能不同的数据库中查询,例如,将简单的查询定向到性能参数值较低的数据库中查询,以保证查询稳定性,将复杂的查询定向至性能参数值较高的数据库中进行查询以保证查询效率,如此实现了对数据查询请求的分类处理,从而从整体上提高了对数据查询的响应速度,且保证了数据查询具有较高的稳定性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例的一种数据查询方法的通应用环境示意图;
图2是本申请实施例的一种数据查询方法的步骤流程示意图;
图3是本申请实施例的一种数据查询方法的总体流程示意图;
图4是本申请实施例的一种数据查询方法的步骤流程示意图;
图5是本申请实施例的一种数据查询装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
如相关技术所述,一般用数据库存储管理企业架构中IT设备的各种配置信息。为了便于对企业架构中IT设备的关联,相关技术中提出了一种数据库是CMDB(ConfigurationManagement Database,配置管理数据库),该CMDB可以存储与管理企业IT架构中设备的各种配置信息,即CMDB可以既实现对数据的管理,也实现对数据的存储,其与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转、发挥配置信息的价值。而CMDB是一般以表的形式存储数据,即是一种关系型的数据库,而关系型数据库在处理大量的数据查询时通常效率较低,在面临数据关联查询时,也无法做到快速响应。
有鉴于此,本申请人提出了如下技术构思:在保证原有数据库的架构的基础上,引入采一个性能参数值较高的数据库,如此构成性能参数值大小不同的两个数据库,在接收到数据查询请求时,根据数据查询请求的类型,将数据查询请求定向至具有相应性能的一个数据库中进行查询,如此,简单的查询便可以到性能较低的数据库中查询以保证稳定性,而复杂的查询便可以定向到性能较高的数据库中查询以保证效率。
参照图1,示出了本申请实施例的一种数据查询方法的应用环境,如图1所示,本申请实施例可以应用于CMDB架构中,在CMDB架构中包括原有的第一数据库和新引入的第二数据库,如此,CMDB包括两个数据库。
其中,如图1所示,虚线框框出的部分表示原有的第一数据库的应用环境,具体地,原有的第一数据库可以通过CMDB架构中提供的API数据传入接口与中控机连接,中控机与多个企业中的服务器(图1中仅示出了三个服务器)连接,每个服务器可以管理多个IT设备(图1仅示出每个服务器连接3个IT设备)。实际中,服务器可以实时将所管理的多个IT设备的配置信息,例如IP地址、设备数据、业务数据等经由中控器、API数据传入接口存储到该原有的第一数据库中。
其中,原有的第一数据库可以将自身存储的配置信息,例如IP地址、设备数据、业务数据等同步给新引入的第二数据库,如此,便实现了信息的集群式存储。
如图1所示,在CMDB中可以包括对外提供的查询接口和与查询接口通信的查询处理模块,该查询接口向查询处理模块传输数据查询请求,而查询处理模块可以根据数据查询请求的类型,选择原有的第一数据库或新引入的第二数据库执行数据查询请求,从而将相应的数据库返回的查询结果返回给用户。
其中,第二数据库便可以视为是第一数据库的备份数据库,具体实施时,在将原有的第一数据库中的数据同步到第二数据库的过程可以是以下任意一种的同步方式:
同步方式1:在检测到针对所述第一数据库中的数据的增加、删除和/或修改操作时,将所述第一数据库中发生变化的数据同步至所述第二数据库中。
其中,可以在第一次将第一数据库中的数据同步到第二数据库中后,便可以定期检测第一数据库中的数据的增加、删除和/或修改操作,如此,在检测到第一数据库中的数据有增加的数据时,可以将该增加的数据同步到第二数据库中。在检测到第一数据库中的数据有删除的数据时,可以将第二数据库中相应的数据也一并删除。在第一数据库中的数据被修改时,可以将该被修改的数据同步到第二数据库中。
采用此种同步方式时,在第一数据库中的数据发生改变的情况下,才将变化的数据同步到第二数据库,如此,可以避免定时同步时,在数据未发生变化而仍然同步所导致的同步资源浪费的问题,且同步的数据是变化的数据,而非全部的数据,因此,可以提高同步的效率。
同步方式2:在周期性检测到所述第一数据库中存储的数据与所述第二数据库中存储的数据不一致时,将所述第一数据库中的数据同步至所述第二数据库中。
其中,周期性检测可以是指每隔预设时长便启动检测,其中,第一数据库中存储的数据与第二数据库中存储的数据不一致可以是指:数量不一致、数据被修改导致的同一信息的不一致,当检测到第一数据库和第二数据库的数据不一致时,可以以第一数据库为准,将第一数据库中的数据同步到第二数据库中。
此种同步方式也可以提高两个数据库中的数据的一致性程度,从而保证数据查询的准确性。
实际中,可以采用同步方式1同步数据,也可以采用同步方式2同步数据,通过上述同步方式,实现了第一数据库和第二数据库的数据同步,进而可以通过对第一数据库和第二数据库的选择性利用,实现对数据查询请求的快速响应。
结合图1所示,对本申请实施例的一种数据查询方法进行详细说明。参照图2所示,示出了本申请实施例的一种数据查询方法的步骤流程图,该数据查询方法可以应用于包括第一数据库和第二数据库的CMDB中,更具体地,可以应用于CMDB中的查询处理模块,该查询处理模块便可以执行本申请的数据查询方法,如图2所示,具体可以包括以下步骤:
步骤S201:响应于接收到的数据查询请求,获得所述数据查询请求的类型。
如图1所示的实施环境,首先,每个服务器可以将所连接的多个IT设备的配置信息发送给中控机,配置信息包括IP地址、设备数据、业务数据,当然,服务器也可以向中控机发送多个IT设备与自身之间的从属关系,由中控机汇总各个服务器上传的IT设备的配置信息后,通过API数据传入接口上传至第一数据库,接着第一数据库将本第一数据库中的IT设备的配置信息同步至第二数据库。如此,第二数据库是第一数据库的备份数据库,从而构建了本申请的数据查询方法所依据的数据存储源,进而,用户可以通过CMDB所提供的查询接口在数据存储源中查询所需求的数据。
本实施例中,数据查询请求可以是与CMDB连接的查询端所发出的,一般而言,该CMDB可以对外提供查询接口,以便用户在查询端通过该查询接口发送数据查询请求。
其中,可以包括多个查询接口,不同的查询接口可以具有不同的类型,不同类型的查询接口可以对应不同类型的数据查询,例如,简单查询可以通过一种查询接口,而复杂查询可以通过另一种查询接口。其中,简单查询可以是指数据项查询较为单一的查询,例如,仅针对图1所示的某个IT设备的IP地址的查询便视为简单查询。而复杂查询可以是指关联较多数据项的查询,例如,同时要查询图1中的某个IT设备的IP地址,以及与IP地址通信的其他IP地址以及各自关联的服务器和各自进行的业务信息时,便可以视为复杂查询。
一般而言,复杂查询由于要查找众多不同类型的数据,因此,对数据库的响应速度有着非常高的要求。而简单查询,由于一般查找单一种类的数据,数据库的响应速度都很快,此种情况下,则对数据库的查询稳定性要求较高。
本实施例中,数据查询请求的类型可以反映数据查询的复杂度,因此,数据查询请求的类型可以包括简单查询和复杂查询。
实际中,可以根据数据查询请求所来源的数据查询接口的类型,确定数据查询请求的类型,例如,数据查询请求来源于提供复杂查询的接口,则数据查询请求的类型为复杂类型。当然,也可以通过对数据查询请求的解析,获得该请求所要关联查询的数据项的数量,根据数量确定数据查询请求的类型,例如,当关联查询的数据项的数量较多时,便可以确定数据查询请求的类型是复杂类型。
当然,也可以结合数据查询请求来所来源的数据查询接口和关联查询的数据的数量,确定数据查询请求的类型。
步骤S202:从第一数据库和第二数据库中,确定与所述数据查询请求的类型对应的目标数据库。
本申请实施例中,由于第二数据库是第一数据库的备份数据库,从而构建了本申请的数据查询方法所依据的数据存储源,进而在接收到数据查询请求时,在第一数据库和第二数据库中均可以查询到数据查询请求所需要的数据。具体地,为了执行数据查询请求的效率,可以根据第一数据库和第二数据库各自的性能参数值,将第一数据库或第二数据库确定为执行数据查询的目标数据库。
其中,所述第一数据库具有的性能参数值的大小不同于所述第二数据库具有的性能参数值的大小。本实施例中,一个数据库的性能参数值可以至少包括该数据库的查询速度参数值、查询准确率参数值、查询稳定性参数值,其中,查询速度参数值可以用于表征数据库执行数据查询的速度,查询准确率参数值可以用于表征数据库执行数据查询的准确率,查询稳定性参数值可以用于表征数据库执行数据查询的稳定性,这些性能参数值可以是根据数据库的自身特性预先所设置的,因此,一个数据库的性能参数值可以综合反映数据库执行数据查询的性能。
实际中,可以根据数据查询的性能需求,对数据库的查询速度参数值、查询准确率参数值、查询稳定性参数值设置不同的权重,进而根据查询速度参数值、查询准确率参数值、查询稳定性参数值以及对应的权重,进行加权求和,从而得到数据库的性能参数值。例如,数据查询的性能需求是优先满足复杂查询的速度进而再满足简单查询的查询稳定性,则查询速度参数值设置较高的权重,其余的查询准确率参数值和查询稳定性参数值设置较低的权重。这样,一个数据库的性能参数值可以至少表征该数据库执行数据查询的速度,性能参数值越高则执行数据查询的速度越快,用户等待查询结果的时长越短。
实际中,第一数据库可以是CMDB数据库,其可以是关系型数据库,而第二数据库可以是引入到CMDB中的新的数据库,实际中,该第二数据库可以是图形数据库,图形数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息,其中,图形数据库可以是以下任意一种数据库:Neo4j、FlockDB、AllegroGrap、GraphDB、InfiniteGraph、HugeGraph。
其中,关系型数据库用于存储“关系型”数据,其具有查询稳定性的特点,但是在面临复杂查询,比如数据关联查询时,却存在查询复杂、缓慢的缺陷,而图形数据库应用图形理论存储实体之间的关系信息的独特设计恰恰弥补了这个缺陷。由此,在本申请实施例中,以数据查询的性能需求为优先满足查询速度为例,可以设置第一数据库具有较低的性能参数值、第二数据库具有较高的性能参数值,即,第二数据库的性能参数值高于第一数据库的性能参数值,如此表征第二数据库对复杂查询的查询速度高于第一数据库对复杂查询的查询速度,从而第一数据库和第二数据库可以相互配合,以达到满足查询效率和查询稳定性的分类需求。
本实施例中,复杂查询由于关联要查找众多不同类型的信息,因此,对数据库的响应速度有着非常高的要求。而简单查询,一般数据库的响应速度都很快,此种情况下,对数据库的查询稳定性要求较高。基于此,可以根据数据查询请求的类型,确定数据查询请求的复杂度,进而根据该复杂度,在第一数据库和第二数据库中确定执行数据查询的目标数据库。
例如,若数据查询请求较为简单,则利用原有的查询效率较低但是性能稳定的第一数据库进行查询,若数据查询请求较为复杂,则利用查询效率高的第二数据库进行查询。
步骤S203:将所述数据查询请求定向至所述目标数据库中进行查询。
本实施例中,可以将数据查询请求定向到目标数据库中,以使目标数据库执行数据查询。其中,定向可以是指定向发送,即将数据查询请求发送至目标数据库中进行查询。
结合上述实施例,在一些可能的实施例中,在数据查询频率较低的情况下,也可以设置无论数据查询请求是简单查询还是复杂查询,都可以将性能参数值较高的第二数据库作为目标数据库,以通过目标数据库执行数据查询请求,此种情况下,第一数据库便可以作为企业IT设备信息的存储方,而性能更高的第二数据库作为快速响应数据查询的查询方,由此,可以提高数据查询频率较低情况下的查询速度。
采用本发明实施例的技术方案,由于性能参数值可以反映数据库执行数据查询的效率,而第一数据库具有的性能参数值的大小不同于所述第二数据库具有的性能参数值的大小,由此,可以将不同查询复杂程度的查询请求关联到性能不同的数据库中查询,例如,将简单的查询定向到性能参数值较低的数据库中查询,以保证查询稳定性,将复杂的查询定向至性能参数值较高的数据库中进行查询以保证查询效率,如此实现了对数据查询请求的分化处理,从而从整体上提高了数据查询的稳定性和效率。
此外,在本申请实施例中,由于在CMDB中引入了新的数据库,在保证了CMDB的原有架构和数据存储结构无需改变的基础上,即保证企业原有的IT设备的配置信息仍按照原有的数据同步架构同步至第一数据库的基础上,提高了系统的整体性能和稳定性,从而优化了用户体验。
参照图3所示,图3示出了本申请的一种数据查询方法的总体流程,结合图3所示,对本申请的数据查询方法进行详细介绍。
本实施例中,第二数据库可以是HugeGraph图形数据库,第一数据库为关系型数据库,第二数据库的性能参数值高于第一数据库的性能参数值,表征第二数据库的查询速度高于第一数据库的查询速度。
如图3所示,本实施例的数据查询请求的类型可以包括关联查询类型和简单查询类型。参照图4所示,示出了获得所述数据查询请求的类型的步骤流程,如图4所示,具体可以包括以下步骤:
步骤S401:确定所述数据查询请求中一个数据项所关联的其他不同种类的数据项的数量。
本实施例中,可以对数据查询请求进行解析,一般可以利用数据查询请求所依据的查询语言对数据查询请求进行解析,从而得到要查询的对象,该要查询的对象可以称为数据项,例如IP项、业务项等。
由于本实施例中要确定数据查询请求的类型,以确定数据查询请求的查询复杂度,因此,可以确定一个数据项所关联的其他数据项的数量,其中,一个数据项所关联的其他数据项的数量的多少可以反映关联查询的复杂程度。
例如,以数据项为IP数据项为例,该IP数据项关联有业务类型的数据项、设备信息类型的数据项、网段数据项等,表征IP数据项关联有3种不同类型的数据项。
步骤S402:在所述其他不同种类的数据项的数量超过预设阈值时,确定所述数据查询请求的类型为关联查询类型。
本实施例中,预设阈值可以根据实际需求进行设置,例如设置为1或2,当关联的其他不同种类的数据项的数量超过预设阈值,表征数据查询请求是多关联的数据查询,如此,便可以确定其为关联查询类型,即上述实施例所述的复杂查询类型。
步骤S403:在所述其他不同种类的数据项的数量未超过预设阈值时,确定所述数据查询请求的类型为简单查询类型。
本实施例中,当关联的其他不同种类的数据项的数量未超过预设阈值,表征数据查询请求是无关联的数据查询或少关联的数据查询,如此,便可以确定其为简单查询类型。
在本实施例中,如图3所示,第一数据库的性能参数值可以小于所述第二数据库的性能参数值。相应地,在确定与所述数据查询请求的类型对应的目标数据库时,可以在所述数据查询请求的类型为关联查询类型时,确定所述第二数据库为所述目标数据库;在所述数据查询请求的类型为简单查询类型时,确定所述第一数据库为所述目标数据库。
如图3所示,当数据查询请求的类型为关联查询类型时,便将数据查询请求定向到性能参数值较高的第二数据库中进行查询,以获得较高的查询效率,而当数据查询请求的类型为简单查询类型时,便将数据查询请求定向到性能参数值较低的第一数据库中进行查询,以保证数据查询的稳定性,即可以提高数据查询的准确率。
在一种示例中,由于第二数据库是第一数据库的备份数据库,为避免在第二数据库作为目标数据库,而由于第二数据库中存储的数据与第一数据库不完全一致,所导致的数据查询不成功的情况出现,以及为避免第二数据库出现故障导致的不能查询的问题,可以定时或实时对第二数据库的可查询状态进行检测,以在第二数据库不可用于数据查询时,执行相应的降级处理。
其中,可查询状态可以表征该第二数据库是否能成功执行数据查询,当可查询状态为正常状态时,表征该第二数据库能成功执行数据查询。当可查询状态为非正常状态时,表征该第二数据库不能成功执行数据查询,此种情况下,可以对第二数据库做降级处理,即避免通过第二数据库执行数据查询。
在一种示例中,获得第二数据库的可查询状态的具体过程可以如下:
监测所述第二数据库的状态信息,以及,对所述第一数据库和所述第二数据库中存储的数据进行一致性校对,并根据所述可用状态和/或所述一致性校对的结果,确定所述可查询状态。
本实施例中,监测第二数据库的状态信息可以是指对第二数据库的基本信息、表空间、I/O、CPU使用率、内存占用率、SQL会话、活跃事务、阻塞活动、锁信息等信息进行持续采样,从而将采样的结果作为状态信息,以快速掌握第二数据库运行的状态。相应地,该状态信息可以包括第二数据库的内存占用率、CPU使用率、SQL会话等信息,通过对状态信息的分析,例如,将状态信息与第二数据库在正常工作状态下的各项信息进行比较,从而得到第二数据库是否可用的结果。
本申请实施例中,第二数据库的状态信息可以用于表征第二数据库是否可用,具体地,在状态信息与第二数据库在正常工作状态下的各项信息相匹配时,表征第二数据库的状态是正常的,可以用于数据查询,即第二数据库可用;反之,则表征第二数据库的状态是异常的,进行数据查询的成功率下降,即第二数据库不可用。
其中,对第一数据库和第二数据库中存储的数据进行一致性校对,可以是指对第一数据库和第二数据库中存储的数据进行比较,具体可以比较二者存储的数据的数量是否一致、类型是否一致等,以判断第二数据库中存储的数据是否与第一数据库中存储的数据一致。
在一种情况下,在所述状态信息表征所述第二数据库不可用或者所述一致性校对的结果为不一致时,可以确定所述可查询状态为非正常状态。
在又一种情况下,在所述状态信息表征所述第二数据库不可用且所述一致性校对的结果为不一致时,可以确定所述可查询状态为非正常状态。
当然,在所述状态信息表征所述第二数据库可用且所述一致性校对的结果为一致时,可以确定所述可查询状态为正常状态,而除该情况(可用且一致性校对的结果为一致)外的其他情况,可以均视为非正常状态。
也就是说,在确定第二数据库是否可查询时,可以仅依据状态信息确定第二数据库是否可用,若是可用的,则确定第二数据库为正常状态,若是不可用的,则确定第二数据库为非正常状态。
或者,在确定第二数据库是否可查询时,可以仅依据一致性校验结果,若结果是一致的,则确定第二数据库为正常状态,若结果是不一致的,则确定第二数据库为非正常状态。
再或者,在确定第二数据库是否可查询时,可以同时参考状态信息和一致性校验结果,若状态信息表征第二数据库是可用的且一致性校验结果是一致的,则确定第二数据库为正常状态,否则,则确定第二数据库为非正常状态。
相应地,在所述第二数据库的可查询状态为正常状态的情况下,可以根据数据查询请求的类型,确定与所述数据查询请求的类型对应的目标数据库,进而利用目标数据库执行数据查询请求。
其中,在所述第二数据库的可查询状态为非正常状态的情况下,无论数据查询请求是何种类型,均可以将所述数据查询请求定向至所述第一数据库中进行查询,该过程可以称为是对第二数据库进行降级处理的过程。
当然,在对第二数据库进行降级处理的过程中,也即是在第二数据库处于非正常状态期间,若接收到新的第一数据查询请求,无论该第一数据查询请求是关联查询还是简单查询,都可以将所述第一数据查询请求定向至所述第一数据库中进行查询。
而在所述第二数据库的可查询状态为非正常状态恢复为正常状态时,若接收到关联查询类型的第二数据查询请求,将所述第二数据查询请求定向至所述第二数据库中进行查询,当然,若第二数据查询请求不是关联查询而是简单查询时,便可以将第二数据查询请求定向到第一数据库进行查询。
在一种示例中,在将数据查询请求定向至目标数据库进行查询后,无论目标数据数据库是第一数据库还是第二数据库,均可以获取从目标数据库返回的查询结果,之后,基于所述数据查询请求所对应的对象语言封装所述查询结果,并将封装得到的查询结果的格式转换成预设数据交换格式;并将转换成预设数据交换格式的查询结果返回给所述数据查询请求对应的查询端。
在本示例中,数据查询请求所对应的对象语言可以是Java对象语言,而预设数据交换格式可以是JSON(JavaScript Object Notation,JS对象简谱)格式,JSON格式是一种轻量级的数据交换格式,其易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
当采用上述方式时,可以使得返回给查询端的查询结果能适配查询端,且能提高返回的速度,从而优化用户体验。其中,查询端可以是电脑、服务器、手机等电子设备。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
基于相同的发明构思,参照图5所示,示出了本申请实施例的一种数据查询装置的结构,如图5所示,所述装置具体可以包括以下模块:
响应模块501,用于响应于接收到的数据查询请求,确定所述数据查询请求的类型;
数据库确定模块502,用于从第一数据库和第二数据库中,确定与所述数据查询请求的类型对应的目标数据库;
定向模块503,用于将所述数据查询请求定向至所述目标数据库中,并进行查询;
其中,所述第一数据库具有的性能参数值的大小不同于所述第二数据库具有的性能参数值的大小。
可选地,所述响应模块501,具体可以包括以下单元:
数据项确定单元,用于确定所述数据查询请求中一个数据项所关联的其他不同种类的数据项的数量;
确定单元,用于在所述其他不同种类的数据项的数量超过预设阈值时,确定所述数据查询请求的类型为关联查询类型;以及用于在所述其他不同种类的数据项的数量未超过预设阈值时,确定所述数据查询请求的类型为简单查询类型。
可选地,所述第二数据库的性能参数值高于所述第一数据库的性能参数值,所述数据库确定模块502,具体可以用于在所述数据查询请求的类型为关联查询类型时,确定所述第二数据库为所述目标数据库;以及用于在所述数据查询请求的类型为简单查询类型时,确定所述第一数据库为所述目标数据库。
可选地,所述第二数据库为所述第一数据库的备份数据库,所述装置还包括以下至少一个模块:
变量同步模块,用于在检测到针对所述第一数据库中的数据的增加、删除和/或修改操作时,将所述第一数据库中发生变化的数据同步至所述第二数据库中;
周期同步模块,用于在周期性检测到所述第一数据库中存储的数据与所述第二数据库中存储的数据不一致时,将所述第一数据库中的数据同步至所述第二数据库中。
可选地,所述第一数据库的性能参数值小于所述第二数据库的性能参数值,所述装置还可以包括以下模块:
状态获得模块,用于获得所述第二数据库的可查询状态;
所述数据库确定模块502,具体可以用于在所述第二数据库的可查询状态为正常状态的情况下,确定与所述数据查询请求的类型对应的目标数据库;以及用于在所述第二数据库的可查询状态为非正常状态的情况下,将所述数据查询请求定向至所述第一数据库中进行查询。
可选地,所述第二数据库为所述第一数据库的备份数据库,所述状态获得模块具体可以包括以下单元:
监测单元,用于监测所述第二数据库的状态信息;
校对单元,用于对所述第一数据库和所述第二数据库中存储的数据进行一致性校对;
比较单元,用于根据所述状态信息和/或所述一致性校对的结果,确定所述可查询状态。
可选地,所述比较单元具体用于在所述状态信息表征所述第二数据库不可用或所述一致性校对的结果为不一致时,确定所述可查询状态为非正常状态;或,
用于在所述状态信息表征所述第二数据库不可用且所述一致性校对的结果为不一致时,确定所述可查询状态为非正常状态;或,
用于在所述状态信息表征所述第二数据库可用且所述一致性校对的结果为一致时,确定所述可查询状态为正常状态。
可选地,所述装置具体还可以包括以下模块:
降级模块,用于在所述第二数据库的可查询状态为非正常状态期间,若接收到新的第一数据查询请求,将所述第一数据查询请求定向至所述第一数据库中进行查询;
降级解除模块,用于在所述第二数据库的可查询状态为非正常状态恢复为正常状态时,若接收到关联查询类型的第二数据查询请求,将所述第二数据查询请求定向至所述第二数据库中进行查询。
可选地,所述装置具体还可以包括以下模块:
查询结果获得模块,用于获得所述目标数据库返回的查询结果;
转换模块,用于基于所述数据查询请求所对应的对象语言封装所述查询结果,并将封装得到的查询结果的格式转换成预设数据交换格式;
返回模块,用于将转换成预设数据交换格式的查询结果返回给所述数据查询请求对应的查询端。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本申请所提供的一种数据查询方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (12)
1.一种数据查询方法,其特征在于,所述方法包括:
响应于接收到的数据查询请求,获得所述数据查询请求的类型;
从第一数据库和第二数据库中,确定与所述数据查询请求的类型对应的目标数据库;
将所述数据查询请求定向至所述目标数据库中进行查询;
其中,所述第一数据库具有的性能参数值的大小不同于所述第二数据库具有的性能参数值的大小。
2.根据权利要求1所述的方法,其特征在于,获得所述数据查询请求的类型,包括:
确定所述数据查询请求中一个数据项所关联的其他不同种类的数据项的数量;
在所述其他不同种类的数据项的数量超过预设阈值时,确定所述数据查询请求的类型为关联查询类型;
在所述其他不同种类的数据项的数量未超过预设阈值时,确定所述数据查询请求的类型为简单查询类型。
3.根据权利要求2所述的方法,其特征在于,所述第二数据库的性能参数值高于所述第一数据库的性能参数值,确定与所述数据查询请求的类型对应的目标数据库,包括:
在所述数据查询请求的类型为关联查询类型时,确定所述第二数据库为所述目标数据库;
在所述数据查询请求的类型为简单查询类型时,确定所述第一数据库为所述目标数据库。
4.根据权利要求1所述的方法,其特征在于,所述第二数据库为所述第一数据库的备份数据库,所述方法还包括以下任意一个步骤:
在检测到针对所述第一数据库中的数据的增加、删除和/或修改操作时,将所述第一数据库中发生变化的数据同步至所述第二数据库中;
在周期性检测到所述第一数据库中存储的数据与所述第二数据库中存储的数据不一致时,将所述第一数据库中的数据同步至所述第二数据库中。
5.根据权利要求1所述的方法,其特征在于,所述第一数据库的性能参数值小于所述第二数据库的性能参数值,所述方法还包括:
获得所述第二数据库的可查询状态;
确定与所述数据查询请求的类型对应的目标数据库,包括:
在所述第二数据库的可查询状态为正常状态的情况下,确定与所述数据查询请求的类型对应的目标数据库;
在所述第二数据库的可查询状态为非正常状态的情况下,将所述数据查询请求定向至所述第一数据库中进行查询。
6.根据权利要求5所述的方法,其特征在于,所述第二数据库为所述第一数据库的备份数据库,获得所述第二数据库的可查询状态,包括:
监测所述第二数据库的状态信息,以及,对所述第一数据库和所述第二数据库中存储的数据进行一致性校对;
根据所述状态信息和/或所述一致性校对的结果,确定所述可查询状态。
7.根据权利要求5所述的方法,其特征在于,根据所述可用状态和/或所述一致性校对的结果确定所述可查询状态,包括以下任一者:
在所述状态信息表征所述第二数据库不可用或所述一致性校对的结果为不一致时,确定所述可查询状态为非正常状态;
在所述状态信息表征所述第二数据库不可用且所述一致性校对的结果为不一致时,确定所述可查询状态为非正常状态;
在所述状态信息表征所述第二数据库可用且所述一致性校对的结果为一致时,确定所述可查询状态为正常状态。
8.根据权利要求5所述的方法,其特征在于,将所述数据查询请求定向至所述第一数据库中进行查询之后,所述方法还包括:
在所述第二数据库的可查询状态为非正常状态期间,若接收到新的第一数据查询请求,将所述第一数据查询请求定向至所述第一数据库中进行查询;
在所述第二数据库的可查询状态为非正常状态恢复为正常状态时,若接收到所述关联查询类型的第二数据查询请求,则将所述第二数据查询请求定向至所述第二数据库中进行查询。
9.根据权利要求1-8任一所述的方法,其特征在于,所述方法还包括:
获得所述目标数据库返回的查询结果;
基于所述数据查询请求所对应的对象语言封装所述查询结果,并将封装得到的查询结果的格式转换成预设数据交换格式;
将转换成预设数据交换格式的查询结果,返回给所述数据查询请求对应的查询端。
10.一种数据查询装置,其特征在于,所述装置包括:
响应模块,用于响应于接收到的数据查询请求,确定所述数据查询请求的类型;
数据库确定模块,用于从第一数据库和第二数据库中,确定与所述数据查询请求的类型对应的目标数据库;
定向模块,用于将所述数据查询请求定向至所述目标数据库中,并进行查询;
其中,所述第一数据库具有的性能参数值的大小不同于所述第二数据库具有的性能参数值的大小。
11.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如权利要求1-9任一项所述的数据查询方法。
12.一种计算机可读存储介质,其特征在于,其存储的计算机程序使得处理器执行如权利要求1-9任一项所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011631487.5A CN112732756B (zh) | 2020-12-30 | 2020-12-30 | 数据查询方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011631487.5A CN112732756B (zh) | 2020-12-30 | 2020-12-30 | 数据查询方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732756A true CN112732756A (zh) | 2021-04-30 |
CN112732756B CN112732756B (zh) | 2023-08-18 |
Family
ID=75608319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011631487.5A Active CN112732756B (zh) | 2020-12-30 | 2020-12-30 | 数据查询方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732756B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961581A (zh) * | 2021-09-27 | 2022-01-21 | 北京百度网讯科技有限公司 | 查询处理方法、装置、电子设备及存储介质 |
CN114238521A (zh) * | 2022-02-25 | 2022-03-25 | 梅州客商银行股份有限公司 | 银行核心系统数据库的高可用部署方法、装置和电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6757670B1 (en) * | 1999-09-13 | 2004-06-29 | Hitachi, Ltd. | Method and system for query processing |
US9104762B1 (en) * | 2013-01-14 | 2015-08-11 | Amazon Technologies, Inc. | Universal database management |
US20160092599A1 (en) * | 2014-09-30 | 2016-03-31 | International Business Machines Corporation | Autonomic identification and handling of ad-hoc queries to limit performance impacts |
CN107741937A (zh) * | 2016-09-13 | 2018-02-27 | 腾讯科技(深圳)有限公司 | 一种数据查询方法及装置 |
US20190228095A1 (en) * | 2018-01-25 | 2019-07-25 | Capital One Services, Llc | Systems and methods for storing and accessing database queries |
US20200050694A1 (en) * | 2018-08-13 | 2020-02-13 | Amazon Technologies, Inc. | Burst Performance of Database Queries According to Query Size |
CN111061759A (zh) * | 2018-10-17 | 2020-04-24 | 联易软件有限公司 | 数据查询方法及装置 |
CN111159187A (zh) * | 2019-12-27 | 2020-05-15 | 北京奇艺世纪科技有限公司 | 二维查询方法、装置、终端设备及计算机可读存储介质 |
CN111563098A (zh) * | 2020-04-30 | 2020-08-21 | 深圳壹账通智能科技有限公司 | 结构化与非结构化数据查询方法、设备、存储介质及装置 |
US20200301748A1 (en) * | 2019-03-18 | 2020-09-24 | Nutanix, Inc. | Apparatuses and methods for smart load balancing in a distributed computing system |
-
2020
- 2020-12-30 CN CN202011631487.5A patent/CN112732756B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6757670B1 (en) * | 1999-09-13 | 2004-06-29 | Hitachi, Ltd. | Method and system for query processing |
US9104762B1 (en) * | 2013-01-14 | 2015-08-11 | Amazon Technologies, Inc. | Universal database management |
US20160092599A1 (en) * | 2014-09-30 | 2016-03-31 | International Business Machines Corporation | Autonomic identification and handling of ad-hoc queries to limit performance impacts |
CN107741937A (zh) * | 2016-09-13 | 2018-02-27 | 腾讯科技(深圳)有限公司 | 一种数据查询方法及装置 |
US20190228095A1 (en) * | 2018-01-25 | 2019-07-25 | Capital One Services, Llc | Systems and methods for storing and accessing database queries |
US20200050694A1 (en) * | 2018-08-13 | 2020-02-13 | Amazon Technologies, Inc. | Burst Performance of Database Queries According to Query Size |
CN111061759A (zh) * | 2018-10-17 | 2020-04-24 | 联易软件有限公司 | 数据查询方法及装置 |
US20200301748A1 (en) * | 2019-03-18 | 2020-09-24 | Nutanix, Inc. | Apparatuses and methods for smart load balancing in a distributed computing system |
CN111159187A (zh) * | 2019-12-27 | 2020-05-15 | 北京奇艺世纪科技有限公司 | 二维查询方法、装置、终端设备及计算机可读存储介质 |
CN111563098A (zh) * | 2020-04-30 | 2020-08-21 | 深圳壹账通智能科技有限公司 | 结构化与非结构化数据查询方法、设备、存储介质及装置 |
Non-Patent Citations (2)
Title |
---|
张文东;石小艳;李明壮;夏伟伟;: "分布式数据库中查询处理的新方法研究", 计算机工程与设计, no. 19 * |
朱建生;汪健雄;张军锋;: "基于NoSQL数据库的大数据查询技术的研究与应用", 中国铁道科学, no. 01 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961581A (zh) * | 2021-09-27 | 2022-01-21 | 北京百度网讯科技有限公司 | 查询处理方法、装置、电子设备及存储介质 |
CN113961581B (zh) * | 2021-09-27 | 2023-09-08 | 北京百度网讯科技有限公司 | 查询处理方法、装置、电子设备及存储介质 |
CN114238521A (zh) * | 2022-02-25 | 2022-03-25 | 梅州客商银行股份有限公司 | 银行核心系统数据库的高可用部署方法、装置和电子设备 |
CN114238521B (zh) * | 2022-02-25 | 2022-06-24 | 梅州客商银行股份有限公司 | 银行核心系统数据库的高可用部署方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112732756B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11379461B2 (en) | Multi-master architectures for distributed databases | |
US20220239508A1 (en) | Blockchain message processing method and apparatus, computer, and readable storage medium | |
CN112910945B (zh) | 请求链路跟踪方法和业务请求处理方法 | |
US20200372007A1 (en) | Trace and span sampling and analysis for instrumented software | |
US11809300B2 (en) | Trace chain information query method and device | |
US20070124437A1 (en) | Method and system for real-time collection of log data from distributed network components | |
CN108228322B (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
CN112732756A (zh) | 数据查询方法、装置、设备及存储介质 | |
CN110647531A (zh) | 数据同步方法、装置、设备及计算机可读存储介质 | |
CN112130996A (zh) | 数据监控控制系统、方法、装置、电子设备和存储介质 | |
CN105610917B (zh) | 实现系统中同步数据修复的方法及系统 | |
WO2017157111A1 (zh) | 防止内存数据丢失的的方法、装置和系统 | |
CN107346270B (zh) | 基于实时计算的基数估计的方法和系统 | |
CN107180034A (zh) | MySQL数据库的集群系统 | |
CN113704359A (zh) | 一种时序数据库多数据副本的同步方法、系统以及服务器 | |
CN111159131A (zh) | 性能优化方法、装置、设备及计算机可读存储介质 | |
US20230336368A1 (en) | Block chain-based data processing method and related apparatus | |
CN117389830A (zh) | 集群日志采集方法、装置、计算机设备及存储介质 | |
CN111130882A (zh) | 网络设备的监控系统及方法 | |
IL268670A (en) | Automatic detection of server clusters | |
CN107092529B (zh) | Olap服务方法、装置及系统 | |
CN112685486B (zh) | 数据库集群的数据管理方法、装置、电子设备及存储介质 | |
CN111078975B (zh) | 一种多节点增量式数据采集系统及采集方法 | |
CN109254880A (zh) | 一种处理数据库宕机的方法及装置 | |
Shen | Distributed storage system model design in internet of things based on hash distribution |
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 |