CN115309767A - 一种数据融合方法和装置 - Google Patents

一种数据融合方法和装置 Download PDF

Info

Publication number
CN115309767A
CN115309767A CN202210889928.4A CN202210889928A CN115309767A CN 115309767 A CN115309767 A CN 115309767A CN 202210889928 A CN202210889928 A CN 202210889928A CN 115309767 A CN115309767 A CN 115309767A
Authority
CN
China
Prior art keywords
data
data fusion
operator
task
configuration
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.)
Pending
Application number
CN202210889928.4A
Other languages
English (en)
Inventor
梁福坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jingdong City Beijing Digital Technology Co Ltd
Original Assignee
Jingdong City Beijing Digital Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jingdong City Beijing Digital Technology Co Ltd filed Critical Jingdong City Beijing Digital Technology Co Ltd
Priority to CN202210889928.4A priority Critical patent/CN115309767A/zh
Publication of CN115309767A publication Critical patent/CN115309767A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses

Abstract

本发明公开了一种数据融合方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:基于选定的算子建立数据融合任务,并保存数据融合任务的配置;将数据融合任务封装为数据服务,数据服务的输入参数根据数据融合任务的配置确定;响应于调用方对数据服务的调用请求,执行数据融合任务以得到数据融合结果,将数据融合结果通过数据服务返回至调用方。该实施方式能够通过即用即查询的方式发布成新的服务,防止保存的数据不能更新或更新滞后,支持针对跨库的方式进行数据的联表查询以及对SQL查询任务编排和结果的规则处理,实现跨越数据库、数据实例、数据库类型的数据融合。

Description

一种数据融合方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据融合方法和装置。
背景技术
多方位的系统数据之间需要进行数据的交互,这对于数据采集、存储和权限约束等方面有较大的人力和资金投入,同时对于时间成本、数据隐私保护等也是系统数据融合的重大挑战。通过多种数据关联提供新业务的增长速度,而各系统之间数据提供有效的融合,通过各方提供数据源的方式打通数据的融合的可能,再通过简单的ETL(Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程)处理,可以发布成API(应用程序接口)提供数据服务,供业务系统、指挥大屏等使用。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
通过数据能够存放在一起(例如数据仓库)的方式进行数据融合,如果有源头变更,数据仓库的数据不能更新或者更新滞后;无法针对跨库的方式进行数据的联表查询;数据融合的方式通过数据融合在库方式需要提前设计,无法做到即用即融合快速交付方式;多方数据来源整合后和发布成服务之间没有关系,造成有数据和有服务中间有大量实施工作。
发明内容
有鉴于此,本发明实施例提供一种数据融合方法和装置,能够通过即用即查询的方式发布成新的服务,防止保存的数据不能更新或更新滞后,支持针对跨库的方式进行数据的联表查询以及对SQL查询任务编排和结果的规则处理,实现跨越数据库、数据实例、数据库类型的数据融合。
为实现上述目的,根据本发明实施例的一个方面,提供了一种数据融合方法。
一种数据融合方法,包括:基于选定的算子建立数据融合任务,并保存所述数据融合任务的配置;将所述数据融合任务封装为数据服务,所述数据服务的输入参数根据所述数据融合任务的配置确定;响应于调用方对所述数据服务的调用请求,执行所述数据融合任务以得到数据融合结果,将所述数据融合结果通过所述数据服务返回至所述调用方。
可选地,所述基于选定的算子建立数据融合任务之前,包括:获取数据库链接认证信息;根据所述数据库链接认证信息配置数据源信息;将所述数据源信息持久化保存到数据库。
可选地,所述将所述数据源信息持久化保存到数据库之前,包括:对所述数据源信息的有效性进行验证,并确定所述有效性验证通过。
可选地,所述基于选定的算子建立数据融合任务,包括:将所述选定的算子拖拽到画布,并确定选定的各算子之间的关联关系。
可选地,所述保存所述数据融合任务的配置,包括:保存对选定的每个算子的配置,对算子的配置包括对算子的属性、参数、依赖以及输出的配置。
可选地,对算子的依赖的配置包括:将所述算子的输入配置为外部输入参数或所述算子的上游算子的输出。
可选地,对算子的输出的配置包括:配置对所述算子的结果数据的处理规则,所述处理规则包括以下的一种或多种:过滤规则、聚合规则、排序规则。
可选地,所述将所述数据融合任务封装为数据服务,包括:获取保存的所述数据融合任务的配置;从所述数据融合任务的配置中解析得到所述数据融合任务的输入参数;将执行所述数据融合任务得到的数据融合结果通过规则引擎进行数据重组后的数据发布成应用程序接口服务,所述数据融合任务的输入参数作为所述应用程序接口服务的入参。
根据本发明实施例的另一方面,提供了一种数据融合装置。
一种数据融合装置,包括:任务建立模块,用于基于选定的算子建立数据融合任务,并保存所述数据融合任务的配置;服务封装模块,用于将所述数据融合任务封装为数据服务,所述数据服务的输入参数根据所述数据融合任务的配置确定;数据融合模块,用于响应于调用方对所述数据服务的调用请求,执行所述数据融合任务以得到数据融合结果,将所述数据融合结果通过所述数据服务返回至所述调用方。
可选地,还包括数据源配置模块,用于:获取数据库链接认证信息;根据所述数据库链接认证信息配置数据源信息;将所述数据源信息持久化保存到数据库。
可选地,所述数据源配置模块还用于:对所述数据源信息的有效性进行验证,并确定所述有效性验证通过。
可选地,所述任务建立模块还用于:将所述选定的算子拖拽到画布,并确定选定的各算子之间的关联关系。
可选地,所述任务建立模块还用于:保存对选定的每个算子的配置,对算子的配置包括对算子的属性、参数、依赖以及输出的配置。
可选地,对算子的依赖的配置包括:将所述算子的输入配置为外部输入参数或所述算子的上游算子的输出。
可选地,对算子的输出的配置包括:配置对所述算子的结果数据的处理规则,所述处理规则包括以下的一种或多种:过滤规则、聚合规则、排序规则。
可选地,所述服务封装模块还用于:获取保存的所述数据融合任务的配置;从所述数据融合任务的配置中解析得到所述数据融合任务的输入参数;将执行所述数据融合任务得到的数据融合结果通过规则引擎进行数据重组后的数据发布成应用程序接口服务,所述数据融合任务的输入参数作为所述应用程序接口服务的入参。
根据本发明实施例的又一方面,提供了一种电子设备。
一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明实施例所提供的数据融合方法。
根据本发明实施例的又一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的数据融合方法。
上述发明中的一个实施例具有如下优点或有益效果:基于选定的算子建立数据融合任务,并保存数据融合任务的配置;将数据融合任务封装为数据服务,数据服务的输入参数根据数据融合任务的配置确定;响应于调用方对数据服务的调用请求,执行数据融合任务以得到数据融合结果,将数据融合结果通过数据服务返回至调用方。能够通过即用即查询的方式发布成新的服务,防止保存的数据不能更新或更新滞后,支持针对跨库的方式进行数据的联表查询以及对SQL查询任务编排和结果的规则处理,实现跨越数据库、数据实例、数据库类型的数据融合。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一个实施例的数据融合方法的主要步骤示意图;
图2是根据本发明一个实施例的数据融合流程示意图;
图3是根据本发明一个实施例的数据源配置流程示意图;
图4是根据本发明一个实施例的任务编排流程示意图;
图5是根据本发明一个实施例的算子示意图;
图6是根据本发明一个实施例的部门薪酬排序的数据融合流程示意图;
图7是根据本发明一个实施例的算子DAG编排画布示意图;
图8是根据本发明一个实施例的确定算子之间的关联关系示意图;
图9是根据本发明一个实施例的算子配置界面示意图;
图10是根据本发明一个实施例的规则引擎的执行流程示意图;
图11是根据本发明一个实施例的数据服务发布流程示意图;
图12是根据本发明一个实施例的数据融合装置的主要模块示意图;
图13是本发明实施例可以应用于其中的示例性系统架构图;
图14是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明一个实施例的数据融合方法的主要步骤示意图。如图1所示,本发明一个实施例的数据融合方法主要包括如下的步骤S101至步骤S103。
步骤S101:基于选定的算子建立数据融合任务,并保存数据融合任务的配置;
步骤S102:将数据融合任务封装为数据服务,数据服务的输入参数根据数据融合任务的配置确定;
步骤S103:响应于调用方对数据服务的调用请求,执行数据融合任务以得到数据融合结果,将数据融合结果通过数据服务返回至调用方。
基于选定的算子建立数据融合任务之前,获取数据库链接认证信息,根据数据库链接认证信息配置数据源信息,将数据源信息持久化保存到数据库。
将数据源信息持久化保存到数据库之前,可对数据源信息的有效性进行验证,并确定有效性验证通过。
基于选定的算子建立数据融合任务,具体可以将选定的算子拖拽到画布,并确定选定的各算子之间的关联关系。
保存数据融合任务的配置,具体包括:保存对选定的每个算子的配置,对算子的配置包括对算子的属性、参数、依赖以及输出的配置。
对算子的依赖的配置可以包括:将算子的输入配置为外部输入参数或算子的上游算子的输出。
数据服务的输入参数包括算子的外部输入参数。
对算子的输出的配置可以包括:配置对算子的结果数据的处理规则,处理规则包括以下的一种或多种:过滤规则、聚合规则、排序规则,处理规则可在规则引擎中执行,规则引擎主要完成的就是将业务规则从代码中分离出来。在规则引擎中,利用规则语言将规则定义为if-then的形式,if中定义了规则的条件,then中定义了规则的结果。规则引擎会基于数据对这些规则进行计算,找出匹配的规则。这样,当规则需要修改时,无需进行代码级的修改,只需要修改对应的规则,可以有效减少代码的开发量和维护量。具体在下文将进一步详述规则引擎及其处理规则。
将数据融合任务封装为数据服务,具体过程包括:获取保存的数据融合任务的配置;从数据融合任务的配置中解析得到数据融合任务的输入参数;将执行数据融合任务得到的数据融合结果通过规则引擎进行数据重组后的数据发布成应用程序接口服务,数据融合任务的输入参数作为应用程序接口服务的入参。
图2是根据本发明实施例的数据融合流程示意图,如图2所示,步骤包括数据源配置、任务编排、数据服务发布、业务调用、融合数据输出。其中,数据源配置主要是对于不同的数据库的连接进行配置,完成数据库链接的能力,执行层面实现数据库连接池;任务编排主要是把需要多个数据源SQL执行的算子进行配置,包括并行和串行的DAG((DirectedAcyclic Graph,有向无环图)编排、任务输入和输出,包括对执行的数据结果和内容进行ETL处理,并且对输出的内容和格式可以进行数据融合重组;数据服务发布主要是把任务执行所需要的参数传入,作为API的入参,把规则引擎对数据重组后的结果发布成API服务,供第三方服务调用或者大屏展示配置可用数据源。业务调用时可对具体SQL执行的算子内容进行配置,包括数据源选择、执行SQL参数构建、输出结果等,执行编排的任务,会依赖有向无环图DAG执行,并对结果做ETL处理后组织输出结果;融合数据输出主要是把执行的结果进行封装成json反馈调用方。
图3是根据本发明一个实施例的数据源配置流程示意图。
本发明一个实施例的数据源配置流程包括:获取数据库链接认证信息;维护数据源信息;进行数据源有效性验证;数据源持久化到数据库。
数据库的访问需要向DBA(数据库管理员)申请数据库访问的权限,一般提供访问请求客户端的IP,管理员根据业务的调用方和来访IP授权新建权限账号。数据库链接认证信息包括数据库链接地址、端口、账号、密码(也可以是CA证书),数据库链接其他参数等。
维护数据源信息主要是将数据库链接认证信息进行数据的录入,数据的形式如下:
Figure BDA0003767158040000071
Figure BDA0003767158040000081
维护数据源信息包括进行数据源的注册,也可以收集一下其他元数据,比如数据源维护者的信息、数据源的业务属性备注等信息。
针对不同数据库类型收集的信息不同,例如HBase、Minio等库信息略不相同。
在收集到信息后,还需要进行数据源有效性验证,验证的方式是根据选择的数据库类型,用不同的数据库引擎作为客户端进行链接,如果是java语言链接,就是选择不同的客户端的sdk驱动,例如mysql可以是mysql-connector-6.0.15.jar等,然后通过维护的CA证书或者用户名密码方式进行connect(连接),若CA证书或者用户名密码验证通过,则数据源有效性验证通过,否则数据源有效性验证不通过。可进行联通性测试,这部分是由前端进行操作,把链接传到给服务端,服务端负责真实的驱动选择和链接,测试通过后反馈给前端。
数据源验证成功后,进入数据源保存,前端确定可用后,点击提交后台以进行持久化保存到数据库。
图4是根据本发明一个实施例的任务编排流程示意图。如图4所示,任务编排流程包括:建立任务;进行算子有向无环图(DAG)编排;建立算子之间关联;进行算子设置和依赖填充;解析算子的输入;进行规则引擎输出解析;将任务配置持久化保存到数据库。
建立任务,即建立数据融合任务。数据融合后发布的数据,组织形式均以任务作为一个单元,这个单元可以是一个SQL查询发布成服务,也可以是异构数据库的多种数据融合后发布调用服务,因此,首先需要新建任务,新建任务时可以输入要建立的任务的基本信息,包括但不限于任务名称、任务描述等。
在介绍进行算子有向无环图编排之前,首先介绍下本发明实施例的算子。算子是作为一个最小的基本操作单元,执行完成一定的任务。算子并不是孤立的,他有输入和任务执行、输出等操作,通过一些列共性的操作所以可以整合成不同的算子。
算子的产生注册步骤包括:1)算子的基本信息收集:包括算子的名称、算子的父类(例如数据清洗),算子的英文标识(全局算子唯一不重复)用于引用、算子图标等;算子的类型:可枚举的选择,比如数据清洗、数据计算、数据挖掘等;算子状态信息:是否激活等。2)算子的需要传入的参数(可选),针对参数必须要输入的内容,包括多个参数的名称、参数的英文标识,参数的类型、参数默认值等。参数也可以支持用户自行设定开关,支持自定义。3)算子执行任务的引用:算子具体执行的内容,可以为具体调用的微服务、接口、或者触发执行的脚本等。4)将以上信息持久化保存在数据库。在进行算子操作时读取数据库进行页面渲染,展示激活的算子。
例如图5的算子示意图中所示,算子有:数据获取、数据过滤、数据转换、规则引擎、数据发布等算子。本发明实施例不局限在这些算子,其他有共性的能力都可以组装成算子。下面以上述提到算子为例,来说明本发明实施例的算子有向无环图编排过程。
图6是根据本发明一个实施例的部门薪酬排序的数据融合流程示意图。如图6所示,该示例中,分别获取OA中考勤的出勤情况,计算薪酬,同时从出库系统中获得用户的计件信息,并通过薪酬计算的算子做合计,获得员工的整体薪酬后关联人事的组织结构后进行薪酬的排名。
一个最终的业务指标需要从多个系统中获取,如果分别抽取到数据仓库或导致大量的数据同步任务、计算任务,让整体交付的效率和实时性、灵活度变低。本发明实施例通过对算子编排、任务计算和服务发布的方式来解耦不同环节之间的衔接。
可以从图5的算子示意图中选择不同的算子到画布,比如对于考勤信息获取和出库系统计件信息均是选择的数据获取算子,对于员工工资合计的薪酬计算选择规则引擎算子,而对于关联人事部门排名则是选择数据转换算子,把上面不同的算子拖拽到画布为任务编排做准备,对于数据发布服务则是选择数据发布算子。本发明一个实施例的算子DAG编排画布示意图如图7所示,其中数据获取1和数据获取2均为选择的数据获取算子,图7中的规则引擎对应规则引擎算子,数据转换对应数据转换算子,数据发布API对应数据发布算子。本步骤是针对输出任务进行设计,选择合适的算子进行集合组成,下文会将涉及确定算子之间的关联关系和配置衔接。
算子之间关联是组成DAG的关键,通过不同算子之间的单向的连通,组成了一个具备执行顺序的数据融合任务,数据融合任务包括算子和算子之间的关联关系。如图8所示,衔接先后算子之间的顺序,最后变成了具备串行和并行关系的一个有向无环图DAG,其中包括数据获取1和数据获取2、规则引擎、数据转换、数据发布API所分别对应的算子。
需要说明的是,在另外的实施例中有向无环图DAG中的算子可以在上述示例的几种算子的基础上减少或增加一个或多个类型的算子,具体根据业务需求而定。
针对任务编排,通过上述各操作已完成了算子顺序的依赖,但是具体的任务之间依赖,以及关联和衔接的具体操作是算子内容配置的重要逻辑。下面将进一步介绍各算子的设置和依赖填充过程。
数据获取算子设置:选中算子后可以调出算子属性,算子的设置包括修改算子的默认名字,例如修改为OA系统考勤信息获取,同时会选择不同的数据库类型的数据源,然后填充SQL内容,满足数据获取的最小条件,如果业务场景可以根据时间进行筛选,[begin~end],begin为起始时间,end为结束时间,那么SQL执行也需要针对获取的输入条件,需要在SQL侧进行执行。比如之前OA数据源,类型为mysql数据库,SQL内容为:
Select user_id,username,kaoqin from oa_kaoqin where is_delete=0;
那么接入时间区间的考勤约束就变成了:
Select user_id,username,kaoqin from oa_kaoqin where is_delete=0 andcheck_time between 2022-01-01 and 2022-01-31;
解析算子的输入,具体地,算子的输入参数的来源分为外部传入(例如API参数提供),也可以是内部DAG的其他上游算子的输出提供的,所以可以进行对算子的依赖的配置,即设置一个算子输入的条件来源的选择:外部传入和上游流程传入,外部传入即将算子的输入配置为外部输入参数,上游流程传入即将算子的输入配置为算子的上游算子的输出。如果为外部传入可以定义占位符,后面流程在传入真实数值后可替换占位符,占位符的示例如下:
Select user_id,username,kaoqin from oa_kaoqin where is_delete=0 andcheck_time between@begin_day@and@end_day@;
其中@begin_day@和@end_day@2个参数分别为SQL中占位符,这2个内容需要在算子属性设置。
图9是根据本发明一个实施例的算子配置界面示意图。其中$salay_start_day$为外部API传入内容,比如通过RestAPI的GET请求为:
http://demo-domain.com/api/1.0/getUserSalay?salay_start_day=2022-01-01&salay_end_day=2022-01-31
则会把获得外部输入salay_start_day替换实际的@begin_day@占位符。其他获得计件系统也是类似配置,依赖外部输入时间参数等。
进行规则引擎输出解析,具体地,本发明实施例针对每一个算子的输出会定义一个集合的变量,比如OA的考勤信息输出的结果集为:resut_kaoqin,计件系统输出的结果集变量为:result_jijianfee,以备后续步骤使用。同时根据SQL会生成结果的Schema(模式),包含输出的列名、数据类型信息,便于后续进行解析。
完成了算子设置之后,进行算子的依赖填充。以员工工资合计步骤为例,因为工资合计依赖获取OA考勤信息和出库系统计算信息这两个步骤的数据获取的结果后进一步计算,所以依赖的内容均为上游算子的输出:
resut_kaoqin(user_id/user_name/kaoqin)
result_jijianfee(user_id、jijian_fee),
工资的合计是不同的user_id,执行sum(kaoqin+jijian_fee)。
通过配置员工工资合计步骤对应的算子(例如规则引擎算子)的输入为:resut_kaoqin、result_jijianfee,完成该规则引擎算子的依赖填充。
针对数据转换的算子,配置如下:
增加数据集合变量筛选,分别选择DAG前面的resut_kaoqin、result_jijianfee,选择完集合变量后,可以根据数据集合得到数据详细的Schema,两者分别为:
resut_kaoqin:
Figure BDA0003767158040000121
result_jijianfee:
Figure BDA0003767158040000122
本发明实施例的规则引擎组成可以包括:过滤规则、聚合规则、排序规则等。
过滤规则:可以针对返回的结果集在使用前可以进行简单的过滤处理,过滤规则可以针对返回的结果集进行过滤,操作为:
[{target operator value}and|or{target operator value}]
例如针对result_jijianfee设置的为jijian_fee需要大于500,并且小于20000,则规则引擎设定如下,操作符可以是=、<>、>、<等,也可以是in、not in等其他逻辑字符:
[{@jijian_fee@>500}and{@jijian_fee@<20000}]
其中@jijian_fee@为Schema中的字段引用。过滤规则可以在其他规则之前执行。
聚合规则:需要配置两类内容:一是数据集之间关联关系,依赖对Schema解析和关联绑定,格式例如:[{target operator value}and|or{target operator value}]。对于本例,例如为:[{result_jijianfee.@user_id@=result_kaoqin.@user_id@}]。通过变量名.Schema中列名的方式对内容进行选取,操作符可以与过滤中使用的操作符类似。两个结果集之间的结构也可以是多个变量进行链接。二是查询语句,新的数据集可以支持聚合(例如工资做sum(求和))、也可以不进行聚合仅仅做关联。选择聚合字段具体可以是原始字段,也可以是聚合函数和字段的方式。比如以下选择:
原始字段:result_kaoqin.@user_id@、result_kaoqin.@user_name@
聚合字段为:sum(result_kaoqin.@kaoqin@+result_jijianfee.@jijian_fee@),聚合函数也可以是sum、avg、max、min、count、count(distinct)等,函数里面支持字段和四则运算符号。
上面类似要select部分,接下来可以选择分组字段,类似group by操作,比如本例子中支持的是:group by result_kaoqin.@user_id@,result_kaoqin.@user_name@
排序规则:可通过变量名和列名进行多组组合,例如:order by result_kaoqin.@user_id@操作。
最终规则引擎针对上面的过滤、聚合、排序三个操作会收到会组合成如下内容:
Select result_kaoqin.@user_id@,result_kaoqin.@user_name@,sum(result_kaoqin.@kaoqin@+result_jijianfee.@jijian_fee@)as fee from result_kaoqin,result_kaoqin on result_jijianfee.@user_id@=result_kaoqin.@user_id@
group by result_kaoqin.@user_id@,result_kaoqin.@user_name@having fee>100
order by result_kaoqin.@user_id@
图10是根据本发明一个实施例的规则引擎的执行流程示意图。如图10所示,本发明一个实施例的规则引擎的执行流程包括:获得外部或者中间数据入库;替换规则引擎占位符;SQL执行后存入库;任务执行结束清理结果。
每次执行的输出可以存放在MySQL、HBase等外部数据库,表名即为集合变量名,根据输入条件替换规则引擎中的变量和表名,可以借助数据库引擎完成结果的执行,并把接入存入到新的表中。需要说明的是,本发明实施例以针对结构化数据的查询处理和输出为例,也可以通过输入、过滤、查询语句等方式来完成数据的接入、关联、过滤、查询(分组、排序、分组后过滤)等,可以借助存储在ElasticSearch、MongoDB等非结构化存储引擎来设计规则引擎的类型。
Java开源的规则引擎有:Drools、Easy Rules、Mandarax、IBM ILOG。使用最为广泛并且开源的是Drools。
数据库保存是把整个任务配置的进行持久化保存,便于后续调用的时候对DAG任务进行执行。
数据服务的主要职责是将SQL查询DAG整个过程屏蔽内部执行细节,关注在外部参数输入作为API的输入参数,数据输出的结构化表格或者非结构化的规则引擎对结果格式的编排,也会对任务执行的状态码和异常等信息进行处理,发布成为数据服务。通常情况下将服务注册到API网关,实现一些流量的计量计费、统一鉴权、负载均衡等服务,或者,可以直接发布成RestFulAPI。
图11是根据本发明一个实施例的数据服务发布流程示意图。如图11所示,包括:解析外部参数;解析结果输出格式;编排调用任务封装;发布成RestFulAPI;注册到API网关。下文将对各步骤分别做进一步介绍。
解析外部参数,通过读取数据融合任务的外部参数输入列表(其中包括算子的外部输入参数)来组装API内容发布需要外部输入的参数,同时也作为API对外发布说明的部分,可以自动生成入参列表声明。参数可能会涉及到数据类型、数组、数据对象等多种不同形式,对于参数输入而言关注key(键)=value(值),其中value的具体值可以根据实际情况组装,一般接口会额外增加其他鉴权、分页等参数。
解析结果输出格式,针对一个基于SQL的DAG执行最后的输出可能有多种形式,比如写到消息中间件、写到数据库,也可以作为查询的最后结果数据集放置到内存,返回给请求,取决于算子针对业务输出的需求,一般情况下DAG的过程非末端算子(即DAG中不是位于最后的算子)的结果集写入到数据库,最后末端算子(即DAG中位于最后的算子)的结果集保留在内存以返回给前端,提高结果数据的返回速度。也存在后端依赖结果进行分页,需要临时写入到数据库进行分页后返回。或者,最后末端算子的结果数据保留在数据库可以作为缓存内容进行临时保存,原理是如果针对一个任务输入参数相同(除分页等跟查询结果没关系的参数外),那么结果集合可以从缓存中获取,比如缓存数据库为Redis。
解析的结果输出的格式,是为了对API的描述和输出形式做一个自动生成,方便使用方调用。与输入不同的,输出的格式一般会在输出结果的的子节点上开展。
编排调用任务封装,是对DAG具体执行示例过程的封装,通过任务的编排把具体执行的业务内容和业务逻辑分开,对于任务执行的封装而言,通过DAG解析和外部参数输入,将执行的内容并行,DAG引擎在很多大数据引擎的任务解析和执行优化后都会形成DAG,然后执行引擎进行执行,例如Impala、Hive、Spark等。根据业务需求,本发明实施例的SQL可以是select、也可以是create、drop、delete等操作。
发布成RestFulAPI的过程是通过http/https协议来接收和返回参数,通过一定的鉴权后,基于外部入参调用编排任务(即数据融合任务)封装的内容,将任务执行的结果再进行封装反馈给调用的客户端。可以对外部发布接口,接收业务数据,比如针对某任务调用的url为:
https://demo-auth.com/api/1.0/getDeptSalay/
注册动作可以包括:选择http method、填写相关url绑定信息、选择鉴权方式、绑定域名等。还可以发布接口调用的使用说明,包括鉴权、入参、结果返回的介绍,供研发侧人员使用。
作为可选的实施方式,发布成RestFulAPI之后还可以包括注册到API网关的步骤,API网关(API Gateway)提供高性能、高可用的API托管服务,帮助用户对外开放的应用,提供完整的API发布、管理、维护生命周期管理,用户只需进行简单的操作,即可快速、低成本、低风险地开放数据或服务。对API生命周期管理,也需要对API访问授权,服务的负载均衡等进行调度和监控。
在业务调用时,调用方可以通过https、http协议发起调用请求,按照本发明实施例的数据服务的接口要求的method方法进行调用,同时可增加鉴权等凭证信息。本发明实施例的服务器响应于调用方的调用请求,执行数据融合任务以得到数据融合结果,将数据融合结果通过数据服务返回至调用方,从而完成了数据融合结果的输出。
图12是根据本发明一个实施例的数据融合装置的主要模块示意图,如图12所示,本发明一个实施例的数据融合装置1200主要包括:任务建立模块1201、服务封装模块1202、数据融合模块1203。
任务建立模块1201,用于基于选定的算子建立数据融合任务,并保存数据融合任务的配置;
服务封装模块1202,用于将数据融合任务封装为数据服务,数据服务的输入参数根据数据融合任务的配置确定;
数据融合模块1203,用于响应于调用方对数据服务的调用请求,执行数据融合任务以得到数据融合结果,将数据融合结果通过数据服务返回至调用方。
还可以包括数据源配置模块,用于:获取数据库链接认证信息;根据数据库链接认证信息配置数据源信息;将数据源信息持久化保存到数据库。
数据源配置模块还可用于:对数据源信息的有效性进行验证,并确定有效性验证通过。
任务建立模块1201还可以用于:将选定的算子拖拽到画布,并确定选定的各算子之间的关联关系。
任务建立模块1201具体还用于:保存对选定的每个算子的配置,对算子的配置包括对算子的属性、参数、依赖以及输出的配置。
对算子的依赖的配置可包括:将算子的输入配置为外部输入参数或算子的上游算子的输出。
对算子的输出的配置可包括:配置对算子的结果数据的处理规则,处理规则包括以下的一种或多种:过滤规则、聚合规则、排序规则。
服务封装模块1202具体还用于:获取保存的数据融合任务的配置;从数据融合任务的配置中解析得到数据融合任务的输入参数;将执行数据融合任务得到的数据融合结果通过规则引擎进行数据重组后的数据发布成应用程序接口服务,数据融合任务的输入参数作为应用程序接口服务的入参。
另外,在本发明实施例中所述数据融合装置的具体实施内容,在上面所述数据融合方法中已经详细说明了,故在此重复内容不再说明。
图13示出了可以应用本发明实施例的数据融合方法或数据融合装置的示例性系统架构1300。
如图13所示,系统架构1300可以包括终端设备1301、1302、1303,网络1304和服务器1305。网络1304用以在终端设备1301、1302、1303和服务器1305之间提供通信链路的介质。网络1304可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备1301、1302、1303通过网络1304与服务器1305交互,以接收或发送消息等。终端设备1301、1302、1303上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备1301、1302、1303可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器1305可以是提供各种服务的服务器,例如对用户利用终端设备1301、1302、1303所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的数据融合方法一般由服务器1305执行,相应地,数据融合装置一般设置于服务器1305中。
应该理解,图13中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图14,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统1400的结构示意图。图14示出的终端设备或服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图14所示,计算机系统1400包括中央处理单元(CPU)1401,其可以根据存储在只读存储器(ROM)1402中的程序或者从存储部分1408加载到随机访问存储器(RAM)1403中的程序而执行各种适当的动作和处理。在RAM 1403中,还存储有系统1400操作所需的各种程序和数据。CPU 1401、ROM 1402以及RAM 1403通过总线1404彼此相连。输入/输出(I/O)接口1405也连接至总线1404。
以下部件连接至I/O接口1405:包括键盘、鼠标等的输入部分1406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1407;包括硬盘等的存储部分1408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1409。通信部分1409经由诸如因特网的网络执行通信处理。驱动器1410也根据需要连接至I/O接口1405。可拆卸介质1411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1410上,以便于从其上读出的计算机程序根据需要被安装入存储部分1408。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1409从网络上被下载和安装,和/或从可拆卸介质1411被安装。在该计算机程序被中央处理单元(CPU)1401执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括任务建立模块、服务封装模块、数据融合模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,任务建立模块还可以被描述为“用于基于选定的算子建立数据融合任务,并保存所述数据融合任务的配置的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:基于选定的算子建立数据融合任务,并保存所述数据融合任务的配置;将所述数据融合任务封装为数据服务,所述数据服务的输入参数根据所述数据融合任务的配置确定;响应于调用方对所述数据服务的调用请求,执行所述数据融合任务以得到数据融合结果,将所述数据融合结果通过所述数据服务返回至所述调用方。
根据本发明实施例的技术方案,能够通过即用即查询的方式发布成新的服务,防止保存的数据不能更新或更新滞后,支持针对跨库的方式进行数据的联表查询以及对SQL查询任务编排和结果的规则处理,实现跨越数据库、数据实例、数据库类型的数据融合。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (18)

1.一种数据融合方法,其特征在于,包括:
基于选定的算子建立数据融合任务,并保存所述数据融合任务的配置;
将所述数据融合任务封装为数据服务,所述数据服务的输入参数根据所述数据融合任务的配置确定;
响应于调用方对所述数据服务的调用请求,执行所述数据融合任务以得到数据融合结果,将所述数据融合结果通过所述数据服务返回至所述调用方。
2.根据权利要求1所述的方法,其特征在于,所述基于选定的算子建立数据融合任务之前,包括:
获取数据库链接认证信息;
根据所述数据库链接认证信息配置数据源信息;
将所述数据源信息持久化保存到数据库。
3.根据权利要求2所述的方法,其特征在于,所述将所述数据源信息持久化保存到数据库之前,包括:
对所述数据源信息的有效性进行验证,并确定所述有效性验证通过。
4.根据权利要求1所述的方法,其特征在于,所述基于选定的算子建立数据融合任务,包括:
将所述选定的算子拖拽到画布,并确定选定的各算子之间的关联关系。
5.根据权利要求1所述的方法,其特征在于,所述保存所述数据融合任务的配置,包括:
保存对选定的每个算子的配置,对算子的配置包括对算子的属性、参数、依赖以及输出的配置。
6.根据权利要求5所述的方法,其特征在于,对算子的依赖的配置包括:将所述算子的输入配置为外部输入参数或所述算子的上游算子的输出。
7.根据权利要求5所述的方法,其特征在于,对算子的输出的配置包括:
配置对所述算子的结果数据的处理规则,所述处理规则包括以下的一种或多种:过滤规则、聚合规则、排序规则。
8.根据权利要求7所述的方法,其特征在于,所述将所述数据融合任务封装为数据服务,包括:
获取保存的所述数据融合任务的配置;
从所述数据融合任务的配置中解析得到所述数据融合任务的输入参数;
将执行所述数据融合任务得到的数据融合结果通过规则引擎进行数据重组后的数据发布成应用程序接口服务,所述数据融合任务的输入参数作为所述应用程序接口服务的入参。
9.一种数据融合装置,其特征在于,包括:
任务建立模块,用于基于选定的算子建立数据融合任务,并保存所述数据融合任务的配置;
服务封装模块,用于将所述数据融合任务封装为数据服务,所述数据服务的输入参数根据所述数据融合任务的配置确定;
数据融合模块,用于响应于调用方对所述数据服务的调用请求,执行所述数据融合任务以得到数据融合结果,将所述数据融合结果通过所述数据服务返回至所述调用方。
10.根据权利要求9所述的装置,其特征在于,还包括数据源配置模块,用于:
获取数据库链接认证信息;
根据所述数据库链接认证信息配置数据源信息;
将所述数据源信息持久化保存到数据库。
11.根据权利要求10所述的装置,其特征在于,所述数据源配置模块还用于:
对所述数据源信息的有效性进行验证,并确定所述有效性验证通过。
12.根据权利要求9所述的装置,其特征在于,所述任务建立模块还用于:
将所述选定的算子拖拽到画布,并确定选定的各算子之间的关联关系。
13.根据权利要求9所述的装置,其特征在于,所述任务建立模块还用于:
保存对选定的每个算子的配置,对算子的配置包括对算子的属性、参数、依赖以及输出的配置。
14.根据权利要求13所述的装置,其特征在于,对算子的依赖的配置包括:将所述算子的输入配置为外部输入参数或所述算子的上游算子的输出。
15.根据权利要求13所述的装置,其特征在于,对算子的输出的配置包括:
配置对所述算子的结果数据的处理规则,所述处理规则包括以下的一种或多种:过滤规则、聚合规则、排序规则。
16.根据权利要求15所述的装置,其特征在于,所述服务封装模块还用于:
获取保存的所述数据融合任务的配置;
从所述数据融合任务的配置中解析得到所述数据融合任务的输入参数;
将执行所述数据融合任务得到的数据融合结果通过规则引擎进行数据重组后的数据发布成应用程序接口服务,所述数据融合任务的输入参数作为所述应用程序接口服务的入参。
17.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
18.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8中任一所述的方法。
CN202210889928.4A 2022-07-27 2022-07-27 一种数据融合方法和装置 Pending CN115309767A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210889928.4A CN115309767A (zh) 2022-07-27 2022-07-27 一种数据融合方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210889928.4A CN115309767A (zh) 2022-07-27 2022-07-27 一种数据融合方法和装置

Publications (1)

Publication Number Publication Date
CN115309767A true CN115309767A (zh) 2022-11-08

Family

ID=83858689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210889928.4A Pending CN115309767A (zh) 2022-07-27 2022-07-27 一种数据融合方法和装置

Country Status (1)

Country Link
CN (1) CN115309767A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115659314A (zh) * 2022-12-13 2023-01-31 合肥喆塔科技有限公司 一种基于混合数据的数据服务方法
CN117033519A (zh) * 2023-09-28 2023-11-10 北京谷器数据科技有限公司 一种关系型异构数据库数据同步的方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115659314A (zh) * 2022-12-13 2023-01-31 合肥喆塔科技有限公司 一种基于混合数据的数据服务方法
CN117033519A (zh) * 2023-09-28 2023-11-10 北京谷器数据科技有限公司 一种关系型异构数据库数据同步的方法及系统

Similar Documents

Publication Publication Date Title
US11216302B2 (en) Modifying task dependencies at worker nodes using precompiled libraries
US11392654B2 (en) Data fabric service system
US11442935B2 (en) Determining a record generation estimate of a processing task
US11321321B2 (en) Record expansion and reduction based on a processing task in a data intake and query system
US20220327125A1 (en) Query scheduling based on a query-resource allocation and resource availability
US11599541B2 (en) Determining records generated by a processing task of a query
US20200364223A1 (en) Search time estimate in a data intake and query system
US20190310977A1 (en) Bucket data distribution for exporting data to worker nodes
US20190258637A1 (en) Partitioning and reducing records at ingest of a worker node
US11016958B2 (en) Recreating an OLTP table and reapplying database transactions for real-time analytics
CN105243528A (zh) 大数据环境下金融it系统中图形化集中对账系统与方法
CN115309767A (zh) 一种数据融合方法和装置
US20130254237A1 (en) Declarative specification of data integraton workflows for execution on parallel processing platforms
CN107103064B (zh) 数据统计方法及装置
CN109783562B (zh) 一种业务处理方法和装置
US10872097B2 (en) Data resolution system for management of distributed data
US11620541B1 (en) Custom use case framework in computer analytics system
CN115017182A (zh) 一种可视化的数据分析方法及设备
US20220138644A1 (en) System and method for leveraging a completeness graph
Bellini et al. Internet 4 Things
US20210286779A1 (en) Asynchronous processing of large-scale data in a cloud computing environment
Yahia A language-based approach for web service composition
Srinivasa et al. Storm
WO2023192230A1 (en) Graph-based query engine for an extensibility platform
CN113627998A (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