一种基于元数据的流式数据处理系统的制作方法

文档序号:28112217发布日期:2021-12-22 14:11阅读:118来源:国知局
一种基于元数据的流式数据处理系统的制作方法

1.本发明涉及数据处理技术领域,尤其涉及一种基于元数据的流式数据处理系统。


背景技术:

2.目前随着互联网、物联网技术飞速的发展,信息浏览、检索,物联网设备的数据上报,以及电子商务、互联网等很多常见的生活产品已经全部在线化。对于实时的要求进一步提升,而信息的交互和沟通正在从点对点往信息链甚至信息网的方向发展,这样必然带来数据在各个维度的交叉关联,数据爆炸已不可避免,因此流式处理应运而生,解决了实时框架和数据大规模计算的问题。
3.当前实时处理需要掌握各种大数据技术及流处理技术,对开发人员技能要求较高。当流式数据处理业务较多时,缺乏统一的管理,业务快速演进、需求快速变化,设计新的数据处理流程或者修改已有的流程无法迅速实施。
4.鉴于当前智慧安防、智慧城市、智慧农业、智慧交通等行业的飞速发展,积累了大量数据,这些数据的汇聚和治理,往往需要各平台自己完成,这就产生了大量重复工作,并且数据缺乏管理,难以充分利用。
5.这就需要一套适用于各行各业的通用流式数据处理系统,能够通过元数据的配置,动态完成数据的汇聚接口、存储、治理、推送、共享及可视化。在企业中,只要有数据存在的地方,就有其对应元数据,只有完整、准确的元数据存在,才能更好地理解数据,充分挖掘数据的价值,这样就可以使行业应用的研发把精力聚焦在业务本身,而不是繁琐的数据处理和治理方面。


技术实现要素:

6.针对上述现有技术中的问题,本发明的目的在于提供一种基于元数据的流式数据处理系统,通过可视化的方法对元数据定义、流程定义、流程编排,使用拖曳组件和模型驱动的逻辑来创建流式处理流程。
7.本发明是通过如下技术方案实现的:一种基于元数据的流式数据处理系统,包括元数据管理模块,所述元数据管理模块能够根据数据的形态和存储方式定义元模型的结构;流程管理模块,包括流程管理组件及流程编排组件,所述流程编排组件嵌有流程编排交互界面,在所述流程编排交互界面通过拖放算子进行可视化流程编排,编排完成后形成流式处理流程及相应的流程元数据;所述流程管理组件能够获取所述流程元数据并解析为流程执行图;流程调度模块,所述流程调度模块能够获取流程执行图,并根据所述流程执行图分配执行任务并发出相应的执行指令;流程执行模块,所述流程执行模块能够接收所述执行指令,并执行相应的所述执行任务,启动相应的算子开始计算。
8.进一步,所述元模型包括:接口元模型、逻辑元模型、物理元模型;根据所述元模型
定义相应的元数据的结构,所述元数据包括:接口元数据、逻辑元数据、物理元数据。
9.进一步,所述算子采用flink或springboot实现,包括:汇聚算子、转换算子、分发算子、聚合算子、推送算子。
10.进一步,所述可视化流程编排具体步骤依次为:1、拖放所述源端数据的配置信息和所述汇聚算子至所述流程编排交互界面,关联所述源端数据与接口元数据得到接口模型;3、拖放所述转换算子,自动获取上级模型作为输入模型,如果存在下级模型则获取下级模型作为输出模型,不存在则匹配逻辑元数据获取选取模型,使用图形化配置输入模型与输出模型的关系,通过连线进行字段关联,形成映射规则;4、拖放所述分发算子,并配置所述聚合算子输入模型和输出模型,实现聚合开窗操作;5、拖放推送算子,配置输出模型,如果存在目标数据则读取目标物理模型;6、拖放目标数据的配置信息,配置物理模型,及目标数据类型、目标数据连接信息;7、通过图形化操作,将上述1

6步骤连线后形成流式处理流程。
11.进一步,所述流程执行模块内部嵌有任务执行程序,所述任务执行程序接收到执行请求,启动执行相应的算子,并向所述算子发送执行参数;所述算子接收到执行参数后,通过rest协议与任务执行程序通信,获取接口元数据、逻辑元数据、物理元数据及映射规则;所述算子获取到元数据后,根据元数据自动生成转换代码和存储结果的sql,使用流式处理引擎开始进行计算;所述算子执行完毕后向所述任务执行程序发送完成或失败指令,并将计算结果传递到下一个节点运行的算子。
12.进一步,所述流程管理模块还包括监控告警组件,所述任务执行程序定时监测所述算子的执行状态,并将所述执行状态反馈至所述监控告警组件;所述任务执行程序接收到完成或失败命令后,实时将信息上报到所述监控告警组件。
13.一种基于元数据的流式数据处理系统的流式数据处理方法,其特征在于,包括如下步骤:s1、根据源端数据的类型和存储方式定义元模型结构,根据所述元模型定义元数据结构;s2、新建流式处理流程,并通过可视化流程编排拖放算子对流程进行编排;s3、选中所述流式处理流程中的转换算子,对所述转换算子的输入模型和输出模型进行图形化映射字段配置,生成映射规则;s4、将配置好的流式处理流程上线;s5、执行所述流式处理流程,向所述流程管理组件发送启动命令及流程元数据;s6、流程管理组件接收到启动命令后, 将所述流程元数据解析为流程执行图,并将所述流程执行图发送至所述流程调度模块;s7、所述流程调度模块为根据所述流程执行图为所述流程执行模块中分配一个或多个执行节点,并向该节点上的任务执行程序发送执行请求;s8、任务执行程序接收到执行请求,执行相应的算子,并向该算子发送执行参数;s9、算子程序接收到执行参数后,通过rest协议与任务执行程序通信,获取接口元数据、逻辑元数据、物理元数据及映射规则;s10、算子程序获取到元数据后,根据元数据自动生成转换代码和存储结果的sql,开始进行计算;
s11、所述任务执行程序定时监测所述算子的执行状态,并将所述执行状态反馈至所述监控告警组件;s12、算子程序执行完成后,向任务执行器发送完成或失败命令,并将结果集传递到下一个节点运行的算子;s13、所述任务执行程序接收到完成或失败命令后,实时将信息上报到所述监控告警组件。
14.本发明的有益效果为:能够通过元数据配置、图形化的流程编排,动态完成数据的汇聚、存储、治理、推送及数据共享与数据可视化;当一个新的流式数处理业务需要上线时,只需要元数据定义、可视化流程编排、运行流任务即可提供统一、高效的流式数据处理业务,能够快速地进行业务上线,缩短了实施交付周期,并对流任务的运行状况进行监控,有效地降低了企业维护成本。此外还可以满足业务需求的快速演进,对新的数据处理流程和修改已有的流程进行快速实施,持续改进生产系统;可以使开发人员把应用研发的精力焦距到业务本身,而不是繁琐的流式处理环节;可以降低开发人员门槛,快速构建实时计算应用,也使得非技术背景的业务人员同样可以构建流式处理,对于大型企业来讲,本发明还可以降低it团队培训、技术部署的初始成本。
附图说明
15.图1为系统结果框图。
16.图2为元模型结构示意图。
17.图3为算子执行过程示意图。
18.图4为算子内部的工作过程示意图。
19.图5为方法流程示意图。
20.图6为接口元数据示例。
21.图7为逻辑元数据示例。
22.图8为物理元数据一示例。
23.图9为物理元数据二示例。
24.图10为可视化流程编排图。
25.图11为图形化映射字段配置图。
26.图12为目标数据示例。
具体实施方式
27.为能清楚说明本方案的技术特点,下面通过具体实施方式,对本方案进行阐述。
28.实施例一,参见图1

图5,本发明是通过如下技术方案实现的:一种基于元数据的流式数据处理系统,包括元数据管理模块,所述元数据管理模块能够根据数据的形态和存储方式定义元模型的结构;所述元模型包括:接口元模型、逻辑元模型、物理元模型;根据所述元模型定义相应的元数据的结构,所述元数据包括:接口元数据、逻辑元数据、物理元数据;元数据的管理,可以帮助企业人员清晰的看到企业有哪些数据,分别存在什么位置,同时帮助理清企业的数据字典,快速查询和定位数据。如图2所示,定义一个接口包,里
面定义了接口模型的元模型,包含接口集合的元元数据、json接口模型的元元数据。或定义一个数据库包,定义关系型数据库的元模型,其中又定义了schema、表、视图、存储过程、函数、程序包、列、主键、索引的元元数据。他们直接以组合的方式定义关联关系。schema 由表、视图、函数、存储过程、程序包组成;表由列、主键、索引组成。接口集合由接口模型组成。此外元模型还可以根据您的需求建立自己的元模型;流程管理模块,包括流程管理组件及流程编排组件,所述流程编排组件嵌有流程编排交互界面,在所述流程编排交互界面通过拖放算子进行可视化流程编排,编排完成后形成流式处理流程及相应的流程元数据;所述流程管理组件能够获取所述流程元数据并解析为流程执行图;流程调度模块,所述流程调度模块能够获取流程执行图,并根据所述流程执行图分配执行任务并发出相应的执行指令;流程执行模块,所述流程执行模块能够接收所述执行指令,并执行相应的所述执行任务,启动相应的算子开始计算。
29.如图3所示,每个算子都是一个可以执行的程序,可以采用不同的底层技术实现,采用flink或springboot实现,包括:汇聚算子、转换算子、分发算子、聚合算子、推送算子。其中,汇聚算子可以提供多种方式获取数据,并且可以自定义汇聚算子支持更多的协议,如http协议rest的数据接入,ftp协议数据接入、websocket协议的数据接入等,还可以作集成鉴权、安全加密、网关等功能,汇聚算子根据元数据定义的接口模型,对进入的数据进行解析校验,并将数据发送到kafka交由下一个节点进行处理;分发算子接收上游消息队列中的数据,将数据复制多份或将数据负载均衡的方式发送到消息队列不同的topic中,后续可以连接多个下游算子,下游算子接收到的数据不同则处理的结果不同,分发算子也可以将数据直接落地到数据湖中,数据库可以是数据库也可以是非关系型数据库。流处理算子是对数据进行具体的计算,可以有不同的实现,也可以自定义扩展实现特定的流式处理算子,聚合、map转换、列拆分成多行、列传行、去除重复记录、字段选择、字符串替、排序、基于脚本处理、基于公式处理、字段加密、字段解密、数据采样等。
30.map转换算子是流处理算子的一种,首先设置输入模型和输出模型、可以通过图形化的方式配置输入模型和输出模型的字段连线,由此建立转换关系,数据通过map转换算子时,可以由输入模型转换为输出模型。聚合算子是流处理算子的一种,首先分组字段、和聚合窗口,然后再设置聚合字段,对除分组的字段设置聚合方法,如求和、平均数、最大、最小、个数等方法,把数据流进行聚合为新的数据,交由下一节点处理。
31.推送算子可以将上游接收到的数据推送到数据库中、文件中、并且也支持http 协议、ftp协议及websocket协议。其他协议可以自行进行扩展开发。该算子是将数据推送到具体的存储设备中,可以是数据库、也可以是第三方的平台接口。
32.算子内部的工作过程如图4所示,任意数据进入算子程序;由map映射算子程序选择根据接口元数据识别数据内容,根据映射规则转换为逻辑模型,将结果集交由下一个或多个节点继续处理;由聚合算子程序根据逻辑元数据识别上游节点数据内容,根据映射规则将数据聚合为物理模型,将物理模型保存到相应的数据库中。
33.所述可视化流程编排具体步骤依次为:1、拖放所述源端数据的配置信息和所述汇聚算子至所述流程编排交互界面,关联所述源端数据与接口元数据得到接口模型;3、拖放
所述转换算子,自动获取上级模型作为输入模型,如果存在下级模型则获取下级模型作为输出模型,不存在则匹配逻辑元数据获取选取模型,使用图形化配置输入模型与输出模型的关系,通过连线进行字段关联,形成映射规则;4、拖放所述分发算子,并配置所述聚合算子输入模型和输出模型,实现聚合开窗操作;5、拖放推送算子,配置输出模型,如果存在目标数据则读取目标物理模型;6、拖放目标数据的配置信息,配置物理模型,及目标数据类型、目标数据连接信息;7、通过图形化操作,将上述1

6步骤连线后形成流式处理流程。根据业务需求组合不同的算子即可实现不同的计算功能。
34.所述流程执行模块内部嵌有任务执行程序,所述任务执行程序接收到执行请求,启动执行相应的算子,并向所述算子发送执行参数;所述算子接收到执行参数后,通过rest协议与任务执行程序通信,获取接口元数据、逻辑元数据、物理元数据及映射规则;所述算子获取到元数据后,根据元数据自动生成转换代码和存储结果的sql,使用流式处理引擎开始进行计算;所述算子执行完毕后向所述任务执行程序发送完成或失败指令,并将计算结果传递到下一个节点运行的算子。
35.结合图3,描述了流式处理流程的物理层的执行流程:汇聚算子可以接入多种数据源如:web

socket、http、ftp等,此外还负责鉴权、安全和网关功能,汇聚算子将数据发送到消息队列kafka,下游分发算子接收到消息后将数据分发至不同topic的kafka,在这里进行分支,下游流式处理算子接收到数据后可以进一步的对数据进行聚合操作,迸发往下游推送算子,推送算子也可实现向不同的目标数据推送数据,如http、ftp、数据库、写出文件、web

socket等。
36.如图1所示,所述流程管理模块还包括监控告警组件,所述任务执行程序定时监测所述算子的执行状态,并将所述执行状态反馈至所述监控告警组件;所述任务执行程序接收到完成或失败命令后,实时将信息上报到所述监控告警组件。
37.如图5

图12所示,实施例二,从实践上应用基于本系统的一种流式数据处理方法,具体如下:步骤1:使用内置json接口元模型、关系数据库元模型;步骤2:定义接口元数据:见图6;步骤3:定义逻辑元数据;见图7;步骤4:定义物理元数据;见图8、图9;步骤5,新建处理流程,内容如下:流程名称:人员数据汇聚流程状态:草稿;步骤6 使用可视化流程编排拖放算子,对流程进行编排;见图10;步骤7 使用选中需要进行转换操作的算子,在属性中打开模型关系对该模块进行图形化映射字段配置;见图11;步骤8 点击上线按钮;步骤9 点击执行流程按钮;步骤10 使用postman 投递目标数据到汇聚网关接口;见图12;步骤11 查看目标数据1 和目标数据2所关联的数据库,可看到这2个目标数据中的 employee1和employee2 表中都有步骤10 中的数据。
38.本发明的大数据的流处理方法,具有可靠性\高扩展性\高容错性,本发明的实施例旨在涵盖落入所赋权利要求的宽泛范围之内的所有这样的替换、修改和变形。因此凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
39.本发明创造的描述中,前面的详细描述已经通过使用框图、流程图和/或示例阐述了装置和/或过程的各种实施例。在这样的框图、流程图和/或示例包含一个或多个功能和/或操作的程度上,本领域技术人员将理解的是,这样的框图、流程图或示例内的每个功能和/或操作可通过许多各种不同的硬件、软件、固件或实际上它们的任何组合被单独地和/或集体地实现。
40.在系统的各方面的硬件和软件实施方式之间几乎没有差别;硬件或软件的使用通常是(但并不总是,因为在某些情景中在硬件和软件之间的选择可能变得重要)代表成本与效率折衷的设计选择。存在本文中所述的过程和/或系统和/或其它技术可借以被实现的各种手段(例如,硬件、软件和/或固件),并且优选的手段将随着其中过程和/或系统和/或其它技术被部署的情景的不同而改变。例如,如果实施者确定速度和准确性是极为重要的,那么实施者可选择主要为硬件和/或固件的手段;如果灵活性是极为重要的,那么实施者可选择主要为软件的实施方式;或者,但同样可替换地,实施者可选择硬件、软件和/或固件的某组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1