当前位置: 首页 > 专利查询>浙江大学专利>正文

一种分布式流数据处理系统中局部算子的业务封装方法技术方案

技术编号:38248289 阅读:9 留言:0更新日期:2023-07-25 18:07
本发明专利技术公开了一种分布式流数据处理系统中局部算子的业务封装方法,涉及计算机技术领域。该方法包括:在原本流数据处理系统架构提取出组件和连接两类基本数据结构,并将其封装成部件数据结构;设计了部件映射方法,将高层的部件描述模型展开成流数据处理系统底层的架构对应的数据结构,同时应用部件参数配置和流程内的连接配置,并提供实例化方法;提供了部件的持久化存储方法。本发明专利技术的目的在于解决当前流处理系统中广泛存在的系统功能拓展性弱、重复性的业务设计频繁和新功能需求响应难及时的问题。本发明专利技术能够在生产环境中实现系统功能动态增加,实现业务流程快速复用,减少大量的机械重复工作,提高业务需求响应速度。提高业务需求响应速度。提高业务需求响应速度。

【技术实现步骤摘要】
一种分布式流数据处理系统中局部算子的业务封装方法


[0001]本专利技术涉及大数据处理领域,尤其涉及一种分布式流数据处理系统中局部算子的业务封装方法。

技术介绍

[0002]分布式流数据处理系统中,一个具体的流数据处理业务流程是由多个基础数据处理算子组成的,数据处理算子可以分为三大类:数据源(Source)、数据转换(Transformer)和数据消费(Sink)。
[0003]一个标准的数据处理流程由一个Source算子,多个Transformer算子和一个Sink算子组成,算子和算子之间由连接线(Channel)进行连接,Source算子引接外部数据源形成无边界的流数据,流数据通过Channel流入到下一个算子,Transformer算子对数据进行处理,包括数据转换、清洗、聚合、拆分和过滤等,数据流入到Sink算子时,Sink算子负责消费数据,例如将数据存入外部数据库、本地文件或放入消息队列中。
[0004]数据处理业务越复杂,流程设计也越复杂,会出现多Source多Sink的情况,且数据处理部分的Transformer算子之间的拓扑组合关系也将变得非常复杂和抽象。与此同时,在数据处理业务开发的过程中,必然会面临“重复造轮子”的现象,即需要重复设计一些曾经已完成的“微业务”,这些微业务具有组合性、可复用和无状态和的特点。组合性指这些业务均由若干个数据处理算子组合而成,可复用指的是微业务是可以应用于绝大部分其他流程中,无状态指的是微业务的输出结果只与输入有关。微业务的定位处于单个基础算子和整个数据处理流程之间,但同时具有两者的特性,微业务具有算子的特性,在流程的角度,微业务是比基础算子相对复杂的数据处理算子,在算子的角度,微业务是由多个算子组成的非常规流程。
[0005]微业务的复用量随着业务需求变得复杂而增多,虽然可以单独为这类微业务设计对应的算子,但在需求不断新增和变化的生产环境中,这种方式显然会增大系统研发的工作量。
[0006]因此,根据微业务的特性,采用一种业务封装模型,以“部件”的形式来实现微业务封装。该模型允许用户单独设计由多种算子组合而成的新算子(这种新算子被称为部件),部件可以当作算子应用于流程中。通过部件方式,可以将大部分流程中重复用到的局部业务抽离出来形成单独的算子,降低流程设计的开发工作量,同时拓展系统功能。

技术实现思路

[0007]本专利技术的目的在于针对现有技术的不足,提供一种分布式流数据处理系统中局部算子的业务封装方法;
[0008]本专利技术是通过以下内容实现的:一种分布式流数据处理系统中局部算子的业务封装方法,该方法包括以下步骤:
[0009]S1、构建组件和连接描述模型:首先提取算子元数据中的算子ID、算子参数字典、
算子种类和端口表,封装成组件数据结构,形成组件描述模型;再提取分布式流数据处理系统中描述算子之间关系的数据,封装成连接数据结构,形成连接描述模型;
[0010]S2、进行映射配置,包括参数映射和端口映射,并维护参数映射表和端口映射表,所述端口映射包括属性映射和字段映射;
[0011]S3、构建部件描述模型:提取部件配置,其中包括组件描述模型、组件连接描述模型、参数映射表和端口映射表;封装成数据结构,形成部件描述模型;
[0012]S4、对部件描述模型进行初步处理:对部件中所有出现的ID进行重置,根据部件描述模型,生成并维护与组件描述模型结构相同的内部组件表、与连接描述模型结构相同的内部连接表、结构为“部件端口、算子ID、内部组件端口”的三元组部件

组件端口映射表和结构为“算子ID、组件参数名、部件参数值、参数类型”的四元组可编辑参数表;
[0013]S5、部件展开,对组件列表进行遍历,进行如下步骤:
[0014]S51、进行参数映射替换,对可编辑参数表遍历,通过算子ID找到对应的组件,并使用部件参数对组件进行参数替换;
[0015]S52、端口映射替换:对于输入端口,将与上游组件相连的连接描述模型的目的端属性修改为与该部件端口相连的内部算子ID与端口;对于输出端口,将与部件相连的下游组件的连接描述模型的起始端修改为与该部件端口相连的内部算子ID与端口,形成新的连接列表并存储;
[0016]S53、判断部件的组件列表中是否存在其他部件;若存在其他部件,额外维护一个层级计数器与一个层级

算子ID映射表,每当展开一级部件,层级计数器加1,若不存在其他部件,则跳过该步骤回到S51;
[0017]S54、对组件列表完成遍历后,得到展开后的组件列表与连接列表,完成部件展开;
[0018]S6、将展开后得到的组件进行实例化,应用于流程中。
[0019]进一步地,所述部件描述模型具体包括:部件ID、部件名、启动标志、部件配置;其中所述部件配置还包括:组件列表、连接列表、部件参数字典、参数映射表、部件端口列表、端口映射表;
[0020]组件描述模型具体包括:算子ID、算子参数字典、算子种类、端口表;
[0021]连接描述模型具体包括:起始端组件端口、目的端组件端口。
[0022]进一步地,部件配置中的组件列表是部件内的算子集合,连接列表是部件内的组件间连接集合;部件参数字典为部件自身的配置;部件端口表为部件的数据端口名;参数映射表用于描述部件参数与内部算子参数之间的关联关系;端口映射表用于描述部件端口与内部组件端口的关联关系。
[0023]进一步地,所述属性映射为:通过将算子的参数与部件的参数绑定,在运行时将该算子的参数值替换成部件的参数值;参数映射表中存储:“部件参数名:算子ID

组件属性名”键值对,并标记其为ATTRIBUTE类型。
[0024]所述字段映射为:每一个组件具有参数以及对应的参数值,在组件参数值中添加动态字段,将该字段与部件参数绑定,在部件初步处理时将组件参数值进行替换;采用“%[字段]%”标记作为动态字段标记,组件中的参数值中,只要部分值被该动态字段包裹,那么该值就将被作为字段类参数,在部件映射处理时,该字段类参数将被部件参数替换;参数映射表中存储“部件参数名:算子ID

字段”键值对,并标记其为RAW类型。
[0025]进一步地,所述部件

组件端口映射方法具体为:通过部件端口映射表,能够将部件所相连的外部组件连接至对应的内部组件的端口;端口映射表中存储“部件端口名:算子ID

端口名”键值对。
[0026]进一步地,所述步骤S4中对部件中所有出现的ID进行重置,具体方法如下:
[0027]步骤S41:将部件描述模型序列化为JSON字符串,形成部件字符串;
[0028]步骤S42:采用正则表达式对部件字符串进行模式匹配,为每一个匹配到的唯一标识符UUID生成一个新的UUID,旧UUID作为映射表的键,新UUID作为映射表的值,生成一个“旧ID

新ID”本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式流数据处理系统中局部算子的业务封装方法,其特征在于,该方法包括以下步骤:S1、构建组件和连接描述模型:首先提取算子元数据中的算子ID、算子参数字典、算子种类和端口表,封装成组件数据结构,形成组件描述模型;再提取分布式流数据处理系统中描述算子之间关系的数据,封装成连接数据结构,形成连接描述模型;S2、进行映射配置,包括参数映射和端口映射,并维护参数映射表和端口映射表,所述端口映射包括属性映射和字段映射;S3、构建部件描述模型:提取部件配置,其中包括组件描述模型、组件连接描述模型、参数映射表和端口映射表;封装成数据结构,形成部件描述模型;S4、对部件描述模型进行初步处理:对部件中所有出现的ID进行重置,根据部件描述模型,生成并维护与组件描述模型结构相同的内部组件表、与连接描述模型结构相同的内部连接表、结构为“部件端口、算子ID、内部组件端口”的三元组部件

组件端口映射表和结构为“算子ID、组件参数名、部件参数值、参数类型”的四元组可编辑参数表;S5、部件展开,进行如下步骤:S51、进行参数映射替换,对可编辑参数表遍历,通过算子ID找到对应的组件,并使用部件参数对组件进行参数替换;S52、端口映射替换:对于输入端口,将与上游组件相连的连接描述模型的目的端属性修改为与该部件端口相连的内部算子ID与端口;对于输出端口,将与部件相连的下游组件的连接描述模型的起始端修改为与该部件端口相连的内部算子ID与端口,形成新的连接列表并存储;S53、判断部件的组件列表中是否存在其他部件;若存在其他部件,额外维护一个层级计数器与一个层级

算子ID映射表,每展开一级部件,层级计数器加1,若不存在其他部件,则跳过该步骤;S54、对组件列表进行遍历,遍历完成后得到展开的组件列表与连接列表,完成部件展开;S6、将展开后得到的组件进行实例化,应用于流程中。2.根据权利要求1所述的一种分布式流数据处理系统中局部算子的业务封装方法,其特征在于,所述部件描述模型具体包括:部件ID、部件名、启动标志、部件配置;其中所述部件配置还包括:组件列表、连接列表、部件参数字典、参数映射表、部件端口列表、端口映射表;组件描述模型具体包括:算子ID、算子参数字典、算子种类、端口表;连接描述模型具体包括:起始端组件端口、目的端组件端口。3.根据权利要求2所述的一种分布式流数据处理系统中局部算子的业务封装方法,其特征在于,部件配置中的组件列表是部件内的算子集合,连接列表是部件内的组件间连接集合;部件参数字典为部件自身的配置;部件端口表为部件的数据端口名;参数映射表用于描述部件参数与内部算子参数之间的关联关系;端口映射表用于描述部件端口与内部组件端口的关联关系。4.根据权利要求1所述的一种分布式流数据处理系统中局部算子的业务封装方法,其特征在于,
所述属性映射为:通过将算子的参数与部件的参数绑定,在运行时将该算子的参数值替换成部件的参数值;参数映射表中存储:“部件参数名:算子ID

组件属性名”键值对,并标记其为ATTRIBUTE类型;所述字段映射为:每一个组件具有参数以及对应的参数值,在组件参数值中添加动态字段,将该字段与部件参数绑定,在部件初步处理时将组件参数值进行替换;采用动态字段标记,组件中的参数值中,只要部分值被该动态字段包裹,那么该值就将被作为字段类参数,在部件映射处理时,该字段类参数将被部件参数替换;参数映射表中存储“部件参数名:算子ID

字段”键值对,并标记其为R...

【专利技术属性】
技术研发人员:陈奇李可宁张子健王备裘英杰
申请(专利权)人:浙江大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1