掌桥专利:专业的专利平台
掌桥专利
首页

一种数据检索的方法、系统、设备及可读存储介质

文献发布时间:2023-06-19 10:11:51


一种数据检索的方法、系统、设备及可读存储介质

技术领域

本申请涉及数据检索领域,特别涉及一种数据检索的方法、系统、设备及可读存储介质。

背景技术

随着互联网的发展,网络与人们的生活越来越密切。因此提供线上服务的数据库中的数据的数量也越来越多,当前企业业务中检索功能局限于单一类型数据库数据,且偏向于纯业务开发,当因业务需求需要更改数据库或者兼容多种数据库时,往往意味着重构。在系统不断扩大,向分布式、微服务方向推进后会出现检索功能难以拓展,且各个服务内的检索中心功能分散,无法统一集成,无法从统一门户进入不同数据源或微服务的检索中心。

因此,如何实现不同数据源中数据统一检索是本领域技术人员目前需要解决的技术问题。

发明内容

本申请的目的是提供一种数据检索的方法、系统、设备及可读存储介质,用于实现不同数据源中数据统一检索。

为解决上述技术问题,本申请提供一种数据检索的方法,该方法包括:

根据输入的数据检索命令确定检索条件和数据源信息,并根据所述数据源信息确定待检索数据源;

通过远程过程调用协议调用所述待检索数据源的检索接口,所述检索接口通过每个数据源中的微服务自定义实现;

通过所述检索接口在所述待检索数据源中依据所述检索条件进行数据检索。

可选的,在根据输入的数据检索命令确定检索条件和数据源信息之前,还包括:

为每个所述数据源设置对应的检索接口和检索字典;

依据每个所述数据源的类型定义对应的数据源信息,并将所述数据源信息注册到检索中心中。

可选的,根据所述数据源信息确定待检索数据源,包括:

通过所述检索中心查找所述数据源信息对应的待检索数据源,以及所述待检索数据源的检索逻辑;

通过所述检索接口在所述待检索数据源中依据所述检索条件进行数据检索,对应包括:

通过所述检索接口在所述待检索数据源中,依据所述检索字典、所述检索逻辑和所述检索条件进行数据检索。

可选的,在通过所述检索接口在所述待检索数据源中根据所述检索条件进行数据检索之后,还包括:

根据输入的统计分析命令通过所述检索接口对得到的数据检索结果进行统计分析。

可选的,通过所述检索接口在所述待检索数据源中依据所述检索条件进行数据检索,包括:

获取所述待检索数据源所使用的数据库语言;

通过所述检索接口将所述检索条件转换为所述数据库语言对应的数据库检索条件;

在所述待检索数据源中依据所述数据库检索条件进行数据检索。

本申请还提供一种数据检索的系统,该系统包括:

确定模块,用于根据输入的数据检索命令确定检索条件和数据源信息,并根据所述数据源信息确定待检索数据源;

调用模块,用于通过远程过程调用协议调用所述待检索数据源的检索接口,所述检索接口通过每个数据源中的微服务自定义实现;

数据检索模块,用于通过所述检索接口在所述待检索数据源中依据所述检索条件进行数据检索。

可选的,还包括:

设置模块,用于为每个所述数据源设置对应的检索接口和检索字典;

注册模块,用于依据每个所述数据源的类型定义对应的数据源信息,并将所述数据源信息注册到检索中心中。

可选的,所述确定模块包括:

确定子模块,用于通过所述检索中心查找所述数据源信息对应的待检索数据源,以及所述待检索数据源的检索逻辑;

所述数据检索模块对应包括:

第一检索子模块,用于通过所述检索接口在所述待检索数据源中,依据所述检索字典、所述检索逻辑和所述检索条件进行数据检索。

本申请还提供一种数据检索设备,该数据检索设备包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任一项所述数据检索的方法的步骤。

本申请还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述数据检索的方法的步骤。

本申请所提供数据检索的方法,包括:根据输入的数据检索命令确定检索条件和数据源信息,并根据数据源信息确定待检索数据源;通过远程过程调用协议调用待检索数据源的检索接口,检索接口通过每个数据源中的微服务自定义实现;通过检索接口在待检索数据源中依据检索条件进行数据检索。

本申请所提供的技术方案,通过根据输入的数据检索命令确定检索条件和数据源信息,并根据数据源信息确定待检索数据源,然后通过远程过程调用协议调用待检索数据源的检索接口,最后通过检索接口在待检索数据源中依据检索条件进行数据检索,本申请实现了一种分布式、多元数据库兼容、可扩展的系统架构,在主服务中可通过指定数据源使用各个子系统或服务进行检索,使得代码更为规范统一,复用度高,且适用于各类数据库,实现了在不同数据源中对数据进行统一检索。本申请同时还提供了一种数据检索的系统、设备及可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种数据检索的方法的流程图;

图2为本申请实施例所提供的一种数据检索的系统的结构图;

图3为本申请实施例所提供的一种数据检索设备的结构图。

具体实施方式

本申请的核心是提供一种数据检索的方法、系统、设备及可读存储介质,用于实现不同数据源中数据统一检索。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种数据检索的方法的流程图。

其具体包括如下步骤:

S101:根据输入的数据检索命令确定检索条件和数据源信息,并根据数据源信息确定待检索数据源;

基于当前企业业务中检索功能局限于单一类型数据库数据,且偏向于纯业务开发,当因业务需求需要更改数据库或者兼容多种数据库时,往往意味着重构。在系统不断扩大,向分布式、微服务方向推进后会出现检索功能难以拓展,且各个服务内的检索中心功能分散,无法统一集成,无法从统一门户进入不同数据源或微服务的检索中心;故本申请提供了一种数据检索的方法,用于解决上述问题。

在一个具体实施例中,本申请通过通用检索框架实现了与mysql、clickhouse等结构化数据库以及Elasticsearch等非机构化数据库的连接,并通过统一的检索接口实现多数据源的数据检索,解决了当前针对不同数据源需要反复编写雷同缺不可复用的代码问题,以及微服务下各个服务难以自定义检索中心并集成的难点。

在本申请中,各类数据库系统作为数据存储仓库,本申请通过对对应的检索接口进行调用,便可实现对不同数据库的数据检索;

这里提到的数据检索命令中包括对应的检索条件和数据源信息,检索条件即为符合用户需求或业务需求的检索条件,数据源信息即为用于描述每个数据源的种类信息,例如,这里提到的数据源可以包括数据库、数据表(或索引)、字典引用等数据源,在此基础上,数据源信息对应可以包括数据库信息、数据表信息(或索引信息)、字典引用信息等,通过数据源信息可以确定待检索数据源,并确定对应的检索接口。

可选的,该数据检索命令可以为用户输入的,也可以为上层软件或系统输入的,本申请对数据检索命令的输入方式不做具体限定。

可选的,在根据输入的数据检索命令确定检索条件和数据源信息之前,还可以执行如下步骤:

为每个数据源设置对应的检索接口和检索字典;

依据每个数据源的类型定义对应的数据源信息,并将数据源信息注册到检索中心中。

这里提到的检索字典即为数据库中保存的字段,字典中存在的字段用于检索、聚合分析和语法提示,不存在的字段只会在数据详情中展示,检索字典统一格式为:字段名、类型、描述、枚举值等,字段名即mysql的表结构字段、ElasticSearch的mapping字段等均可;

在此基础上,这里提到的根据数据源信息确定待检索数据源,其具体可以为:

通过检索中心查找数据源信息对应的待检索数据源,以及待检索数据源的检索逻辑。

S102:通过远程过程调用协议调用待检索数据源的检索接口;

这里提到的远程过程调用协议是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议,在开放式系统互联网络通信模型中,远程过程调用协议跨越了传输层和应用层,使得开发包括网络分布式多程序在内的应用程序更加容易;本申请通过远程过程调用协议

在本申请中,所有数据源的检索服务在启动的时候注册到检索中心里面,在接收到数据检索的请求时,去检索中心调用待检索数据源的检索接口,然后便可以通过该检索接口在待检索数据源中依据检索条件进行数据检索。

这里提到的检索接口通过每个数据源中的微服务自定义实现,可选的,在一个具体实施例中,这里提到的检索接口具体通过执行如下定义实现:

public abstract Object query(Object[]params);

public abstract Object aggregation(Object[]params)。

S103:通过检索接口在待检索数据源中依据检索条件进行数据检索。

可选的,在通过检索接口在待检索数据源中根据检索条件进行数据检索之后,还可以执行如下步骤实现对数据检索结果的统计分析:

根据输入的统计分析命令通过检索接口对得到的数据检索结果进行统计分析。

可选的,这里提到的通过检索接口在待检索数据源中依据检索条件进行数据检索,其具体可以为:

通过检索接口在待检索数据源中依据检索逻辑和检索条件进行数据检索。

可选的,这里提到的通过检索接口在待检索数据源中依据检索条件进行数据检索,其具体可以为:

获取待检索数据源所使用的数据库语言;

通过检索接口将检索条件转换为数据库语言对应的数据库检索条件;

在待检索数据源中依据数据库检索条件进行数据检索。

基于上述技术方案,本申请所提供的一种数据检索的方法,通过根据输入的数据检索命令确定检索条件和数据源信息,并根据数据源信息确定待检索数据源,然后通过远程过程调用协议调用待检索数据源的检索接口,最后通过检索接口在待检索数据源中依据检索条件进行数据检索,本申请实现了一种分布式、多元数据库兼容、可扩展的系统架构,在主服务中可通过指定数据源使用各个子系统或服务进行检索,使得代码更为规范统一,复用度高,且适用于各类数据库,实现了在不同数据源中对数据进行统一检索。

请参考图2,图2为本申请实施例所提供的一种数据检索的系统的结构图。

该系统可以包括:

确定模块100,用于根据输入的数据检索命令确定检索条件和数据源信息,并根据所述数据源信息确定待检索数据源;

调用模块200,用于通过远程过程调用协议调用所述待检索数据源的检索接口,所述检索接口通过每个数据源中的微服务自定义实现;

数据检索模块300,用于通过所述检索接口在所述待检索数据源中依据所述检索条件进行数据检索。

在上述实施例的基础上,在一个具体实施例中,该系统还可以包括:

设置模块,用于为每个所述数据源设置对应的检索接口和检索字典;

注册模块,用于依据每个所述数据源的类型定义对应的数据源信息,并将所述数据源信息注册到检索中心中。

在上述实施例的基础上,在一个具体实施例中,该确定模块100可以包括:

确定子模块,用于通过所述检索中心查找所述数据源信息对应的待检索数据源,以及所述待检索数据源的检索逻辑;

该数据检索模块300对应可以包括:

第一检索子模块,用于通过所述检索接口在所述待检索数据源中,依据所述检索字典、所述检索逻辑和所述检索条件进行数据检索。

在上述实施例的基础上,在一个具体实施例中,该系统还可以包括:

统计分析模块,用于根据输入的统计分析命令通过所述检索接口对得到的数据检索结果进行统计分析。

在上述实施例的基础上,在一个具体实施例中,该数据检索模块300可以包括:

获取子模块,用于获取所述待检索数据源所使用的数据库语言;

转换子模块,用于通过所述检索接口将所述检索条件转换为所述数据库语言对应的数据库检索条件;

第二检索子模块,用于在所述待检索数据源中依据所述数据库检索条件进行数据检索。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

请参考图3,图3为本申请实施例所提供的一种数据检索设备的结构图。

该数据检索设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对装置中的一系列指令操作。更进一步地,处理器422可以设置为与存储介质430通信,在数据检索设备400上执行存储介质430中的一系列指令操作。

数据检索设备400还可以包括一个或一个以上电源424,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,和/或,一个或一个以上操作系统441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

上述图1所描述的数据检索的方法中的步骤由数据检索设备基于该图3所示的结构实现。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本申请所提供的一种数据检索的方法、系统、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

相关技术
  • 一种数据检索的方法、系统、设备及可读存储介质
  • 一种数据检索方法、装置、电子设备及计算机可读存储介质
技术分类

06120112456974