一种数据处理方法、装置及设备制造方法及图纸

技术编号:37558095 阅读:6 留言:0更新日期:2023-05-15 07:41
本发明专利技术提供了一种数据处理方法、装置及设备,将获取的流文件FlowFile中的元数据metadata拆分为一个或多个记录Record;从一个或多个Record中获取待处理的Record,对待处理的Record进行处理,并将处理后的Record保存到所述FlowFile的metadata部分。通过将FlowFile分割为一个或多个Record,并将这些Record的信息存储在FlowFile的metadata部分,是存储在内存中的,后续对这些Record进行过滤、转换和计算就能够基于这些记录Record进行操作,而无需对整个的FlowFile进行操作,减少了对于FlowFile的多次读写。FlowFile的多次读写。FlowFile的多次读写。

【技术实现步骤摘要】
一种数据处理方法、装置及设备


[0001]本专利技术涉及数据采集
,特别是指一种数据处理方法、装置及设备。

技术介绍

[0002]数据处理和分发系统(Apache NiFi,以下简称NiFi)是一款功能非常强大的实现数据采集、数据清洗,将数据从来源端经过抽取、转换并加载至目的端(ETL,Extract

Transform

Load)的开源的工具。NiFi支持图形化操作,对流程设计人员友好;内置200多个处理器(Processor),满足大部分数据采集和清洗的需求;支持数据流的全链路追踪,实时查看数据流向;支持单机、集群、docker等灵活部署,适用于多种使用环境。鉴于NiFi有这么多优势特性,所以在生产环境的ETL场景中得到了广泛的使用。
[0003]NiFi在进行数据处理的时候,处理的对象是流文件(FlowFile)。如图1所示,一个FlowFile包含两部分内容:元数据(metadata)和业务数据(data)。其中,metadata主要包含了FlowFile的属性,如唯一标识符、名称、大小和其他一些自定义属性;data是这个FlowFile包含的ETL数据。metadata保存在内存中,可以修改。业务数据不可修改,指向一个本地文件系统的真实文件
[0004]在相关技术中,整个ETL流程处理的对象都是FlowFile。由于需要多个Processor对数据进行多次处理,所以导致要多次读取FlowFile,并生成新的FlowFile,导致整个ETL流程的处理速度很慢,无法高性能地处理大量的数据。随着数据接入数量越来越大,这种“整存整取”的处理方式的劣势越来越凸显出来。

技术实现思路

[0005]本专利技术要解决的技术问题是提供一种数据处理方法、装置及设备,解决如何减少新的FlowFile产生,以及减少FlowFile的读写过程的问题。
[0006]为解决上述技术问题,本专利技术的实施例提供技术方案如下:
[0007]本专利技术实施例提供了一种数据处理方法,所述方法包括:
[0008]将获取的流文件FlowFile中的元数据metadata拆分为一个或多个记录Record;
[0009]从所述一个或多个Record中获取待处理的Record,对所述待处理的Record进行处理,并将处理后的Record保存到所述FlowFile的metadata部分。
[0010]在本申请的一个优先实施例中,将获取的FlowFile中的元数据拆分为一个或多个Record,包括:
[0011]根据元数据的数据类型,将获取的流文件FlowFile中的元数据metadata拆分为一个或多个Record。
[0012]在本申请的一个优先实施例中,根据数据类型,将获取的FlowFile中的元数据metadata拆分为一个或多个Record,包括:
[0013]如果所述FlowFile中的metadata的数据类型包括:逗号分隔值csv文件和/或数据库数据,则所述FlowFile中的metadata按行拆分,一行metadata拆分为一个Record;
[0014]和/或,
[0015]如果所述FlowFile中的metadata的数据类型为流式数据,则所述FlowFile中的metadata按流式数据中的消息message拆分,一个message拆分为一个Record。
[0016]在本申请的一个优先实施例中,所述Record的信息通过关键字

值key

value的方式存放在所述FlowFile的元数据部分。
[0017]在本申请的一个优先实施例中,从所述一个或多个Record中获取待处理的Record,对所述待处理的Record进行处理,并将处理后的Record保存到所述FlowFile的metadata部分,包括:
[0018]从所述一个或多个Record中获取待过滤的Record,对所述待过滤的Record进行过滤处理,并将过滤处理得到的Record保存到所述FlowFile的metadata部分。
[0019]在本申请的一个优先实施例中,从所述一个或多个Record中获取待处理的Record,对所述待处理的Record进行处理,并将处理后的Record保存到所述FlowFile的metadata部分,还包括:
[0020]从所述一个或多个Record中获取待转换的Record,对所述待转换的Record进行转换处理,并将转换处理得到的Record保存到所述FlowFile的metadata部分。
[0021]在本申请的一个优先实施例中,从所述一个或多个Record中获取待处理的Record,对所述待处理的Record进行处理,并将处理后的Record保存到所述FlowFile的metadata部分,还包括:
[0022]从所述一个或多个Record中获取待计算的Record,对所述待计算的Record进行计算处理,并将计算处理得到的Record保存到所述FlowFile的metadata部分。
[0023]在本申请的一个优先实施例中,所述方法还包括:
[0024]将所述FlowFile的metadata部分中的一个或多个Record存储到数据库中。
[0025]本专利技术实施例还提供了一种数据处理装置,所述装置包括:
[0026]第一处理模块,用于将获取的FlowFile中的metadata拆分为一个或多个Record;
[0027]第二处理模块,用于从所述一个或多个Record中获取待处理的Record,对所述待处理的Record进行处理,并将处理后的Record保存到所述FlowFile的metadata部分。
[0028]在本申请的一个优先实施例中,所述第一处理模块包括:
[0029]记录生成单元,用于根据元数据的数据类型,将获取的FlowFile中的元数据metadata拆分为一个或多个记录Record。
[0030]在本申请的一个优先实施例中,所述记录生成单元,具体用于如果所述FlowFile中的metadata的数据类型包括:逗号分隔值csv文件和/或数据库数据,则所述FlowFile中的metadata按行拆分,一行metadata拆分为一个Record;
[0031]如果所述FlowFile中的metadata的数据类型为流式数据,则所述FlowFile中的metadata按流式数据中的消息message拆分,一个message拆分为一个Record。
[0032]在本申请的一个优先实施例中,所述Record的信息通过key

value的方式存放在所述FlowFile的元数据部分。
[0033]在本申请的一个优先实施例中,所述第二处理模块,包括:
[0034]过滤单元,用于从所述一个或多个Record中获取待过本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:将获取的流文件FlowFile中的元数据metadata拆分为一个或多个记录Record;从所述一个或多个Record中获取待处理的Record,对所述待处理的Record进行处理,并将处理后的Record保存到所述FlowFile的metadata部分。2.根据权利要求1所述的方法,其特征在于,将获取的FlowFile中的元数据拆分为一个或多个Record,包括:根据元数据的数据类型,将获取的流文件FlowFile中的元数据metadata拆分为一个或多个Record。3.根据权利要求2所述的方法,其特征在于,根据数据类型,将获取的FlowFile中的元数据metadata拆分为一个或多个Record,包括:如果所述FlowFile中的metadata的数据类型包括:逗号分隔值csv文件和/或数据库数据,则所述FlowFile中的metadata按行拆分,一行metadata拆分为一个Record;和/或,如果所述FlowFile中的metadata的数据类型为流式数据,则所述FlowFile中的metadata按流式数据中的消息message拆分,一个message拆分为一个Record。4.根据权利要求1所述的方法,其特征在于,所述Record的信息通过关键字

值key

value的方式存放在所述FlowFile的元数据部分。5.根据权利要求1所述的方法,其特征在于,从所述一个或多个Record中获取待处理的Record,对所述待处理的Record进行处理,并将处理后的Record保存到所述FlowFile的metadata部分,包括:从所述一个或多个Record中获取待过滤的Record,对所述待过滤的Record进行过滤处理,并将过滤处理得到的Record保存到所述FlowFile的metadata部分。6.根据权利要求5所述的方法,其特征在于,从所述一个或多个Record中获取待处理的Record,对所述待处理的Record进行处理,并将处理后的Record保存到所述FlowFile的metadata部分,还包括:从所述一个或多个Record中获取待转换的Record,对所述待转换的Record进行转换处理,并将转换处理得到的Record保存到所述FlowFile的metadata部分。7.根据权利要求5或6所述的方法,其特征在于,从所述一个或多个Record中获取待处理的Record,对所述待处理的Record进行处理,并将处理后的Record保存到所述FlowFile的metadata部分,还包括:从所述一个或多个Record中获取待计算的Record,对所述待计算的Record进行计算处理,并将计算处理得到的Record保存到所述FlowFile的metadata部分。8.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述FlowFile的...

【专利技术属性】
技术研发人员:蔺东东
申请(专利权)人:中国移动通信集团有限公司
类型:发明
国别省市:

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

1