发明内容
针对上述技术问题,本说明书实施例提供一种多数据源集成的数据查询方法、装置及业务服务器,技术方案如下:
根据本说明书实施例的第一方面,提供一种多数据源集成的数据查询方法,所述方法包括:
接收数据查询请求,所述数据查询请求携带有待查询数据的数据属性;
根据预先配置的数据属性与数据源属性之间的映射关系,确定所述待查询数据的数据属性映射的目标数据源属性,其中,所述数据源属性包括数据源名、字段名;
根据预先配置的数据源属性与原子接口之间的映射关系,确定所述目标数据源属性映射的目标原子接口;
根据预先配置的原子接口与底层数据之间的映射关系,通过所述目标原子接口从其映射的底层数据中提取数据,得到所述待查询数据。
根据本说明书实施例的第二方面,提供一种多数据源集成的数据查询装置,所述装置包括:
接收模块,用于接收数据查询请求,所述数据查询请求携带有待查询数据的数据属性;
第一确定模块,用于根据预先配置的数据属性与数据源属性之间的映射关系,确定所述待查询数据的数据属性映射的目标数据源数据,其中,所述数据源属性包括数据源名、字段名;
第二确定模块,用于根据预先配置的数据源属性与原子接口之间的映射关系,确定所述目标数据源属性映射的目标原子接口;
数据提取模块,用于根据预先配置的原子接口与底层数据之间的映射关系,通过所述目标原子接口从其映射的底层数据中提取数据,得到所述待查询数据。
根据本说明书实施例的第三方面,提供一种业务服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现本说明书实施例提供的一种多数据源集成的数据查询方法。
本说明书实施例所提供的技术方案,通过接收数据查询请求,该数据查询请求携带有待查询数据的数据属性,根据预先配置的数据属性与数据源属性之间的映射关系,确定该待查询数据的数据属性映射的目标数据源属性,根据预先配置的数据源属性与原子接口之间的映射关系,确定该目标数据源属性映射的目标原子接口,最后根据预先配置的原子接口与底层数据之间的映射关系,通过目标原子接口从其映射的底层数据中提取数据,得到待查询数据,可以实现在业务方新增一种查询需求时,提高数据查询效率,并节省技术支持成本,提高技术研发团队的工作效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
为了解决现有技术中,当业务方新增一种数据查询需求时,需要技术研发人员排期进行数据查询接口的封装,并处理不同租户下的差异性,之后实施整个发布流程,才能实现对该新增的数据查询需求的技术支持,导致耗费技术支持成本,影响整个技术研发团队的工作效率的问题,本说明书提供一种多数据源集成的数据查询方法。
首先,从业务支持层面,对实现该多数据源集成的数据查询方法所需的业务框架进行说明。如图1所示,为实现本说明书提供的多数据源集成的数据查询方法的业务框架的一种示例。
图1所示例的业务框架具有两层抽象,分别为数据源抽象层与展现抽象层,如下,分别对该两个抽象层,以及该两个抽象层之间的关联关系进行描述:
(1)数据源抽象层:
用于封装原子接口,其包括底层数据层和原子接口层。其中,底层数据层提供多种数据,例如事件数据、分析数据等;原子接口层则位于底层数据层的上层,其封装有多个原子接口,本领域技术人员可以理解的是,原子接口是对于网络请求进行数据查询的最小封装单元,例如,对于国际支付域的会员信息查询封装是一种原子接口,也即通过该原子接口可以获取会员信息;对于国际支付域的交易信息查询封装也是一种原子接口,也即通过该原子接口可以获取交易信息。
基于上述描述,可以理解为数据源抽象层包含原子接口与底层数据之间的一一映射关系,也即通过某一原子接口可以提取到该原子接口映射的底层数据。
(2)展现抽象层:
用于封装数据源,其包括数据源层和查询配置层。其中,数据源层提供多个数据源,例如事件信息数据源、用户信息数据源、交易信息数据源等,这些数据源是基于业务划分的;查询配置层则位于数据源层的上层,该层是向业务方提供的配置层,通过查询配置层,业务方可预先配置数据属性与数据源属性之间的映射关系,其中,该映射关系可以为一对多的映射关系,也即一个数据属性可以映射至少一个数据源属性,这里所说的数据源属性可以包括数据源名、字段名。举例来说,以用户的IP地址信息这一数据属性为例,其映射的数据源属性可以包括事件信息数据源中的ipCountry、ipState、ipCity这三个字段。
(3)数据源抽象层和展示抽象层之间的关联关系:
如图1所示,数据源抽象层与展现抽象层之间通过数据源层与原子接口层相关联,其中,数据源层位于原子接口层的上层,由上述描述可知,数据源层所提供的多个数据源是基于业务划分的,例如,订单信息数据源可以提供购买的产品名称和产品的链接地址等信息,从而不同数据源可对应多个原子接口,因此,在数据源层与原子接口层之间的配置方式中,可以预先配置数据源属性与原子接口之间的映射关系,进一步,由于不同租户之间具有业务差异性,例如,对于购买的产品的链接地址信息而言,在AliExpress(全球速卖通)租户下,可以通过电商域的原子接口获取,而在Lazada(来赞达)租户下,则可以通过事件信息的原子接口获取,基于此,则可以预先在租户维度下,针对不同租户配置不同的数据源属性与原子接口之间的映射关系。
通过该种处理方式,可以屏蔽不同租户的业务差异性,从而保障业务逻辑上的一致性,实现下层的技术支持与上层业务实现的解耦,有利于后期***代码的长期维护;同时,当业务方新增一种查询需求时,由业务方预先定义好数据源属性即可,而无需技术研发人员参与,从而解放人力物力,提高技术研发团队的工作效率。
如下,在图1所示业务框架的基础上,示出下述实施例对本说明书提供的多数据源集成的数据查询方法进行说明:
请参见图2,为本说明书一示例性实施例提供的一种多数据源集成的数据查询方法的实施例流程图,该方法可以包括以下步骤:
步骤202:接收数据查询请求,所述数据查询请求携带有待查询数据的数据属性。
在本说明书实施例中,以业务方查询某一用户的IP地址为例,业务方可以通过***平台发起数据查询请求,该数据查询请求携带有待查询数据的数据属性,例如IP地址。
步骤204:根据预先配置的数据属性与数据源属性之间的映射关系,确定待查询数据的数据属性映射的目标数据源属性,其中,数据源属性包括数据源名、字段名。
在本说明书实施例中,***平台则可以根据预先配置的数据属性与数据源属性之间的映射关系,得到步骤202中所涉及的数据属性所映射的数据源属性,为了描述方便,将该数据源属性称为目标数据源属性。
以数据属性为IP地址举例来说,目标数据源属性所包括的数据源名可以为事件信息数据源,字段名可以包括ipCountry、ipState、ipCity这三个字段名。
需要说明的是,上述举例中仅以一个数据源名为例,在实际应用中,基于图1的相关描述可知,数据属性与数据源属性之间的映射关系可以为一对多的映射关系,从而,在本步骤中,所获取到的目标数据源属性可以包括两个以上数据源名,每一数据源名又可对应至少一个字段名。
步骤206:根据预先配置的数据源属性与原子接口之间的映射关系,确定目标数据源属性映射的目标原子接口。
步骤208:根据预先配置的原子接口与底层数据之间的映射关系,通过目标原子接口从其映射的底层数据中提取数据,得到待查询数据。
如下,对步骤206与步骤208进行说明:
在本说明书实施例中,可以依次遍历步骤204中确定的目标数据源属性所涉及到的每一数据源,针对当前遍历到的数据源,可以根据预先配置的数据源属性与原子接口之间的映射关系,确定该数据源属性映射的原子接口,为了描述方便,将该原子接口称为目标原子接口。
需要说明的是,基于上述图1中的相关描述可知,由于不同租户之间具有业务差异性,从而可预先从租户的维度,针对不同的租户配置不同的数据源属性与原子接口之间的映射关系,那么,在本说明书实施例中,步骤202中所提及到的数据查询请求还可以携带有待查询数据所属租户的租户信息,从而在步骤206中,则可以根据该租户信息,确定针对该租户信息所标识的租户预先配置的数据源属性与原子接口之间的映射关系,继而,根据该映射关系,确定目标原子接口。
进一步,则可以根据预先配置的原子接口与底层数据之间的映射关系,通过目标原子接口从其映射的底层数据中提取数据。
后续,继续遍历下一数据源,直至遍历完目标数据源属性所涉及到的每一数据源。
由上述描述可知,每遍历一个数据源,则可以提取到一段数据,在本说明书实施例中,可以将这些数据按照预先配置的数据格式进行拼接,将拼接后得到的数据作为待查询数据。
举例来说,预先配置的数据格式如下:
{eventDataSource:ipCity}
{eventDataSource:ipState}
{eventDataSource:ipCountry}; 
该数据格式的实际意义为,将从事件信息数据源中提取到的ipCity、ipState、ipCountry这三个字段以空格进行拼接。
本说明书实施例所提供的技术方案,通过接收数据查询请求,该数据查询请求携带有待查询数据的数据属性,根据预先配置的数据属性与数据源属性之间的映射关系,确定该待查询数据的数据属性映射的目标数据源属性,根据预先配置的数据源属性与原子接口之间的映射关系,确定该目标数据源属性映射的目标原子接口,最后根据预先配置的原子接口与底层数据之间的映射关系,通过目标原子接口从其映射的底层数据中提取数据,得到待查询数据,可以实现在业务方新增一种查询需求时,提高数据查询效率,并节省技术支持成本,提高技术研发团队的工作效率。
相应于上述方法实施例,本说明书实施例还提供一种多数据源集成的数据查询装置,请参见图3,为本说明书一示例性实施例提供的一种多数据源集成的数据查询装置的实施例框图,该装置可以包括:接收模块31、第一确定模块32、第二确定模块33,以及数据提取模块34。
其中,接收模块31,用于接收数据查询请求,所述数据查询请求携带有待查询数据的数据属性;
第一确定模块32,用于根据预先配置的数据属性与数据源属性之间的映射关系,确定所述待查询数据的数据属性映射的目标数据源数据,其中,所述数据源属性包括数据源名、字段名;
第二确定模块33,用于根据预先配置的数据源属性与原子接口之间的映射关系,确定所述目标数据源属性映射的目标原子接口;
数据提取模块34,用于根据预先配置的原子接口与底层数据之间的映射关系,通过所述目标原子接口从其映射的底层数据中提取数据,得到所述待查询数据。
在一实施例中,所述数据属性与至少一个数据源属性之间具有映射关系;
所述数据源属性与至少一个原子接口之间具有映射关系。
在一实施例中,在租户维度下,针对不同租户配置不同的数据源属性与原子接口之间的映射关系。
在一实施例中,所述数据查询请求还携带有所述待查询数据所属租户的租户信息;
所述第二确定模块包括(图3中并未示出):
关系确定子模块,用于根据所述租户信息,确定针对所述待查询数据所属租户预先配置的数据源属性与原子接口之间的映射关系;
目标确定子模块,用于根据所述针对所述待查询数据所属租户预先配置的数据源属性与原子接口之间的映射关系,确定所述目标数据源属性映射的目标原子接口。
在一实施例中,所述数据提取模块包括(图3中并未示出):
提取子模块,用于根据预先配置的原子接口与底层数据之间的映射关系,通过所述目标原子接口从其映射的底层数据中提取数据;
拼接子模块,用于将所提取出的数据按照预先配置的数据格式进行拼接,将拼接后得到的数据作为所述待查询数据。
可以理解的是,接收模块31、第一确定模块32、第二确定模块33,以及数据提取模块34作为四种功能独立的模块,既可以如图3所示同时配置在装置中,也可以分别单独配置在装置中,因此图3所示的结构不应理解为对本说明书实施例方案的限定。
此外,上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的一种多数据源集成的数据查询方法,该方法至少包括:接收数据查询请求,所述数据查询请求携带有待查询数据的数据属性;根据预先配置的数据属性与数据源属性之间的映射关系,确定目标数据源属性,其中,所述数据源属性包括数据源名、字段名;根据预先配置的数据源属性与原子接口之间的映射关系,确定所述目标数据源属性映射的目标原子接口;根据预先配置的原子接口与底层数据之间的映射关系,通过所述目标原子接口从其映射的底层数据中提取数据,得到所述待查询数据。
图4示出了本说明书实施例所提供的一种更为具体的业务服务器硬件结构示意图,该设备可以包括:处理器410、存储器420、输入/输出接口430、通信接口440和总线450。其中处理器410、存储器420、输入/输出接口430和通信接口440通过总线450实现彼此之间在设备内部的通信连接。
处理器410可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器420可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
输入/输出接口430用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口440用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线450包括一通路,在设备的各个组件(例如处理器410、存储器420、输入/输出接口430和通信接口440)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器410、存储器420、输入/输出接口430、通信接口440以及总线450,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的一种多数据源集成的数据查询方法,该方法至少包括:接收数据查询请求,所述数据查询请求携带有待查询数据的数据属性;根据预先配置的数据属性与数据源属性之间的映射关系,确定目标数据源属性,其中,所述数据源属性包括数据源名、字段名;根据预先配置的数据源属性与原子接口之间的映射关系,确定所述目标数据源属性映射的目标原子接口;根据预先配置的原子接口与底层数据之间的映射关系,通过所述目标原子接口从其映射的底层数据中提取数据,得到所述待查询数据。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。