CN111258997B - 基于NiFi的数据处理方法和装置 - Google Patents
基于NiFi的数据处理方法和装置 Download PDFInfo
- Publication number
- CN111258997B CN111258997B CN202010047169.8A CN202010047169A CN111258997B CN 111258997 B CN111258997 B CN 111258997B CN 202010047169 A CN202010047169 A CN 202010047169A CN 111258997 B CN111258997 B CN 111258997B
- Authority
- CN
- China
- Prior art keywords
- data
- component
- conversion
- processed
- cleaning
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000006243 chemical reaction Methods 0.000 claims abstract description 147
- 238000004140 cleaning Methods 0.000 claims abstract description 132
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims description 39
- 238000012216 screening Methods 0.000 claims description 25
- 238000004806 packaging method and process Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 4
- 238000006467 substitution reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了基于NiFi的数据处理方法和装置,包括:预先部署NiFi组件,并设置用于数据清洗的清洗组件和用于数据转换的转换组件,还包括:将清洗组件和转换组件嵌入在NiFi组件中;利用嵌入后的NiFi组件执行:采集数据源中的待处理数据;调用清洗组件和转换组件对待处理数据进行处理,得到处理后的数据;将处理后的数据存储到数据仓库中。本方案能够去除杂乱的数据。
Description
技术领域
本发明涉及计算机技术领域,特别涉及基于NiFi的数据处理方法和装置。
背景技术
随着科技发达,信息流通,人们之间的交流越来越密切,生活也越来越方便,大数据逐渐成为高科技时代的产物。大数据是如此重要,以至于其数据采集、储存、搜索、共享、分析,乃至可视化地呈现,都成为了当前重要的研究课题。
目前,数据仓库中存储的数据通常是面向某一主题的数据的集合,而这些数据通常从多个业务系统中抽取而来,并且通常包含历史数据。这样就避免不了有的数据是错误数据、有的数据相互之间有冲突,从而不利于数据分析。
发明内容
本发明实施例提供了基于NiFi的数据处理方法和装置,能够去除杂乱的数据。
第一方面,本发明提供了基于NiFi的数据处理方法,预先部署NiFi组件,并设置用于数据清洗的清洗组件和用于数据转换的转换组件,还包括:
将所述清洗组件和所述转换组件嵌入在所述NiFi组件中;
利用嵌入后的所述NiFi组件执行:
采集数据源中的待处理数据;
调用所述清洗组件和所述转换组件对所述待处理数据进行处理,得到处理后的数据;
将所述处理后的数据存储到数据仓库中。
优选地,
所述调用所述清洗组件和所述转换组件对所述待处理数据进行处理,得到处理后的数据,包括:
S1:确定所述清洗组件的处理优先级是否高于所述转换组件的处理优先级,如果是,执行S2,否则,执行S3;
S2:调用所述清洗组件对所述待处理数据进行数据清洗,将清洗后的数据作为待处理数据,并调用所述转换组件对该待处理数据进行数据转换;
S3:调用所述转换组件对所述待处理数据进行数据转换,将转换后的数据作为待处理数据,并调用所述清洗组件对该待处理数据进行数据清洗。
优选地,
在所述S1之前,进一步包括:
确定至少一个字段名筛选条件;
所述S2中的调用所述清洗组件对所述待处理数据进行数据清洗,包括:
调用所述清洗组件执行:
D1:确定待清洗集合,其中,所述待清洗集合中包括所述待处理数据中的至少一个第一字段名;
D2:从所述待清洗集合中确定当前第一字段名;
D3:确定所述当前第一字段名是否与所述至少一个字段名筛选条件相匹配,如果是,执行D4,否则,执行D5;
D4:从所述待处理数据中抽取所述第一字段名指示的字段,执行D5;
D5:确定所述当前第一字段名是否为所述待清洗集合中最后一个第一字段名,如果是,结束当前流程,否则,执行D6;
D6:从所述待清洗集合中删除所述当前第一字段名,返回D2。
优选地,
在所述S1之前,进一步包括:
确定至少一个转换条件;
所述S3中的调用所述转换组件对所述待处理数据进行数据转换,包括:
调用所述转换组件执行:
F1:确定待转换集合,其中,所述待转换集合包括所述待处理数据中的至少一个第二字段名;
F2:从所述待转换集合中确定当前第二字段名;
F3:按照所述至少一个转换条件对所述当前第二字段名指示的字段进行转换;
F4:确定所述当前第二字段名是否为所述待转换集合中的最后一个第二字段名,如果是,结束当前流程,否则,执行F5;
F5:从所述待转换集合中删除所述当前第二字段名,返回F2。
优选地,
所述将所述清洗组件和所述转换组件嵌入在所述NiFi组件中,包括:
确定所述NiFi组件的配置格式;
按照所述配置格式分别对所述清洗组件和所述转换组件进行打包,得到打包后的数据包;
将所述数据包添加到所述NiFi组件中;
运行添加所述数据包后的所述NiFi组件。
第二方面,本发明提供了基于NiFi的数据处理装置,包括:
组件设置模块,用于预先部署NiFi组件,并设置用于数据清洗的清洗组件和用于数据转换的转换组件;
组件嵌入模块,用于将所述组件设置模块设置的所述清洗组件和所述转换组件嵌入在所述NiFi组件中;
数据采集模块,用于利用所述组件嵌入模块嵌入后的所述NiFi组件,采集数据源中的待处理数据;
数据清洗转换模块,用于利用所述组件嵌入模块嵌入后的所述NiFi组件,调用所述清洗组件和所述转换组件对所述数据采集模块采集的所述待处理数据进行处理,得到处理后的数据;
数据存储模块,用于将所述数据清洗转换模块得到的所述处理后的数据存储到数据仓库中。
优选地,
所述数据清洗转换模块,包括:判断模块、清洗模块和转换模块;
所述判断模块,用于确定所述清洗组件的处理优先级是否高于所述转换组件的处理优先级,如果是,触发所述清洗模块调用所述清洗组件对所述待处理数据进行数据清洗,将清洗后的数据作为待处理数据,并触发所述转换模块调用所述转换组件对所述清洗模块清洗后的该待处理数据进行数据转换;否则,触发所述转换模块调用所述转换组件对所述待处理数据进行数据转换,将转换后的数据作为待处理数据,并触发所述清洗模块调用所述清洗组件对所述转化模块转换的该待处理数据进行数据清洗。
优选地,
所述判断模块,进一步用于确定至少一个字段名筛选条件;
所述清洗模块,用于调用所述清洗组件执行:
D1:确定待清洗集合,其中,所述待清洗集合中包括所述待处理数据中的至少一个第一字段名;
D2:从所述待清洗集合中确定当前第一字段名;
D3:确定所述当前第一字段名是否与所述至少一个字段名筛选条件相匹配,如果是,执行D4,否则,执行D5;
D4:从所述待处理数据中抽取所述第一字段名指示的字段,执行D5;
D5:确定所述当前第一字段名是否为所述待清洗集合中最后一个第一字段名,如果是,结束当前流程,否则,执行D6;
D6:从所述待清洗集合中删除所述当前第一字段名,返回D2。
优选地,
所述判断模块,进一步用于确定至少一个转换条件;
所述转换模块,用于调用所述转换组件执行:
F1:确定待转换集合,其中,所述待转换集合包括所述待处理数据中的至少一个第二字段名;
F2:从所述待转换集合中确定当前第二字段名;
F3:按照所述至少一个转换条件对所述当前第二字段名指示的字段进行转换;
F4:确定所述当前第二字段名是否为所述待转换集合中的最后一个第二字段名,如果是,结束当前流程,否则,执行F5;
F5:从所述待转换集合中删除所述当前第二字段名,返回F2。
优选地,
所述组件嵌入模块,用于确定所述NiFi组件的配置格式;按照所述配置格式分别对所述清洗组件和所述转换组件进行打包,得到打包后的数据包;将所述数据包添加到所述NiFi组件中;运行添加所述数据包后的所述NiFi组件。
第三方面,本发明还提供了存储介质,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行上述任一项中所述的基于NiFi的数据处理方法。
第四方面,本发明还提供了计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行上述任一项中所述的基于NiFi的数据处理方法。
本发明实施例提供了NiFi的数据处理方法和装置,在NiFi组件中嵌入用于进行数据清洗的清洗组件和用于数据转换的转换组件,可以在数据处理过程中,由NiFi组件负责从数据源中抽取数据,然后调用清洗组件和转换组件来对抽取的数据进行相应数据清洗、转换操作,最后再将处理后的数据入库,实现获取去除杂乱后的数据的目的。并且,由于NiFi组件为开源的程序,因此,通过在其内部设置相应的数据清洗、转换程序,即可满足数据的处理需求,无需开发人员编写大量数据处理相关的代码,从而降低获取去除杂乱后的数据的难度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的基于NiFi的数据处理方法的流程图;
图2是本发明另一实施例提供的基于NiFi的数据处理方法的流程图;
图3是本发明一实施例提供的基于NiFi的数据处理装置的结构示意图;
图4是本发明另一实施例提供的基于NiFi的数据处理装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了基于NiFi的数据处理方法,包括:
步骤101:预先部署NiFi组件;
步骤102:设置用于数据清洗的清洗组件和用于数据转换的转换组件;
步骤103:将所述清洗组件和所述转换组件嵌入在所述NiFi组件中;
步骤104:利用嵌入后的所述NiFi组件执行:采集数据源中的待处理数据;
步骤105:调用所述清洗组件和所述转换组件对所述待处理数据进行处理,得到处理后的数据;
步骤106:将所述处理后的数据存储到数据仓库中。
在本发明实施例中,在NiFi组件中嵌入用于进行数据清洗的清洗组件和用于数据转换的转换组件,可以在数据处理过程中,由NiFi组件负责从数据源中抽取数据,然后调用清洗组件和转换组件来对抽取的数据进行相应数据清洗、转换操作,最后再将处理后的数据入库,实现获取去除杂乱后的数据的目的。并且,由于NiFi组件为开源的程序,因此,通过在其内部设置相应的数据清洗、转换程序,即可满足数据的处理需求,无需开发人员编写大量数据处理相关的代码,从而降低获取去除杂乱后的数据的难度。
在本发明一实施例中,所述调用所述清洗组件和所述转换组件对所述待处理数据进行处理,得到处理后的数据,包括:
S1:确定所述清洗组件的处理优先级是否高于所述转换组件的处理优先级,如果是,执行S2,否则,执行S3;
S2:调用所述清洗组件对所述待处理数据进行数据清洗,将清洗后的数据作为待处理数据,并调用所述转换组件对该待处理数据进行数据转换;
S3:调用所述转换组件对所述待处理数据进行数据转换,将转换后的数据作为待处理数据,并调用所述清洗组件对该待处理数据进行数据清洗。
在本发明实施例中,嵌入在NiFi组件中的清洗组件和转换组件对于数据处理的优先级可能不同,因此,在NiFi组件抽取到数据后,如果清洗组件高于转换组件的处理优先级,则清洗组件优先对NiFi组件抽取的数据进行数据清洗处理,然后再由转换组件对数据进行数据转换处理。反之,则转换组件优先对NiFi组件抽取的数据进行数据转换处理,然后再由清洗组件进行数据清洗处理。
在本发明一实施例中,在所述S1之前,进一步包括:
确定至少一个字段名筛选条件;
所述S2中的调用所述清洗组件对所述待处理数据进行数据清洗,包括:
调用所述清洗组件执行:
D1:确定待清洗集合,其中,所述待清洗集合中包括所述待处理数据中的至少一个第一字段名;
D2:从所述待清洗集合中确定当前第一字段名;
D3:确定所述当前第一字段名是否与所述至少一个字段名筛选条件相匹配,如果是,执行D4,否则,执行D5;
D4:从所述待处理数据中抽取所述第一字段名指示的字段,执行D5;
D5:确定所述当前第一字段名是否为所述待清洗集合中最后一个第一字段名,如果是,结束当前流程,否则,执行D6;
D6:从所述待清洗集合中删除所述当前第一字段名,返回D2。
在本发明实施例中,字段名筛选条件可以包括:用于校验待处理数据中的第一字段名所指示的字段为非空数据的非空校验、第一字段名的前缀包括所要筛选的字段信息且第一字段名指示的字段为非空数据的前缀校验(非)、第一字段名的后缀包括所要筛选的字段信息且第一字段名指示的字段为非空数据的后缀校验(非)、第一字段名的长度达到一定要求的最大长度校验和最小长度校验中的至少一个,但不限于此。在对数据进行数据清洗时,由于第一字段名可能在满足某一字段名筛选条件时不满足其他的字段名筛选条件,为了避免筛选出无用的数据,需要待处理数据中的每一个第一字段名符合所有的字段名筛选条件时,才能对符合条件的第一字段名指示的字段进行抽取操作。
具体地,根据需求还可以对待处理数据中的字段名进行空数据校验,即校验待处理数据中的第一字段名所指示的字段中不包含任何数据,然后对不包含任何数据的第一字段名进行记录,以便确定记录的第一字段名中不包含任何数据的原因。
在本发明一实施例中,在所述S1之前,进一步包括:
确定至少一个转换条件;
所述S3中的调用所述转换组件对所述待处理数据进行数据转换,包括:
调用所述转换组件执行:
F1:确定待转换集合,其中,所述待转换集合包括所述待处理数据中的至少一个第二字段名;
F2:从所述待转换集合中确定当前第二字段名;
F3:按照所述至少一个转换条件对所述当前第二字段名指示的字段进行转换;
F4:确定所述当前第二字段名是否为所述待转换集合中的最后一个第二字段名,如果是,结束当前流程,否则,执行F5;
F5:从所述待转换集合中删除所述当前第二字段名,返回F2。
在本发明实施例中,数据的转换条件可以包括:日期格式转换、按照字典进行不同语言转换的字典转换、普通值替换、数据中的控制替换为指定字符的空值替换、正则替换、schema指定字段转换和schema大小写转换中的至少一个,但不限于此。在对数据进行转换处理时,由于待处理数据中的第二字段名可能在满足某一转换条件时不满足其他的转换条件,为了避免筛选出的数据非所需的,因此需要将每一个第二字段名按照所有的转换条件进行相应的转换处理。
在本发明一实施例中,所述将所述清洗组件和所述转换组件嵌入在所述NiFi组件中,包括:
确定所述NiFi组件的配置格式;
按照所述配置格式分别对所述清洗组件和所述转换组件进行打包,得到打包后的数据包;
将所述数据包添加到所述NiFi组件中;
运行添加所述数据包后的所述NiFi组件。
在本发明实施例中,由于NiFi组件的文件有其专属的格式,因此为了使得NiFi能够调用即将嵌入的清洗组件和转换组件,需要将清洗组件和转换组件打包成与NiFi组件的配置格式相匹配的数据包,然后再将数据包放置到NiFi组件可以调用的位置处,对嵌入数据包后的NiFi组件进行重启,在需要的数据进行清洗和转换时,NiFi组件即可调用被嵌入的组件进行相应操作。
如图2所示,为了更加清楚地说明本发明的技术方案及优点,下面以清洗组件的处理优先级高于转换组件的处理优先级为例,对本发明实施例提供的基于NiFi的数据处理方法进行详细说明,具体可以包括以下步骤:
步骤201:预先部署NiFi组件。
步骤202:设置用于数据清洗的清洗组件和用于数据转换的转换组件。
步骤203:确定NiFi组件的配置格式。
具体地,不同的组件有自己专属的格式,因此为了使NiFi能够调用嵌入其内部的组件,需要依据NiFi组件文件的格式对待嵌入的组件进行处理。
步骤204:按照配置格式分别对清洗组件和转换组件进行打包,得到打包后的数据包。
步骤205:将数据包添加到NiFi组件中。
步骤206:运行添加数据包后的NiFi组件。
举例来说,当NiFi组件的配置格式为avro格式,则需要将能够进行数据清洗处理的清洗组件和能够对数据进行转换处理的转换组件,打包成与avro格式相匹配的数据包。然后将数据包添加到NiFi组件中,为了便于NiFi组件能够识别并调用该数据包,需要对添加数据包后的NiFi组件进行重启操作。
步骤207:确定至少一个字段名筛选条件和至少一个转换条件。
具体地,如需从NiFi组件抽取的数据中获取有用的数据,开发人员可以根据需求设置数据清洗过程中对数据进行筛选的字段名筛选条件,以及便于不同业务系统中数据的格式统一的转换条件。
比如,字段名筛选条件“非空校验”和转换条件“大写转换小写”。
步骤208:利用嵌入后的NiFi组件执行:采集数据源中的待处理数据。
具体地,根据需求NiFi组件可以从不同的数据源中采集数据,其中,数据源可以包括:FTP/SFPT、关系型数据库、消息队列以及物联网中的至少一个,但不限于此。
步骤209:调用清洗组件确定待清洗集合,其中,待清洗集合中包括待处理数据中的至少一个第一字段名。
具体地,NiFi组件在从关系型数据库中采集到字段名为“iGetJDBC”和“abcd”,其中,字段名为“iGetJDBC”所指示的字段内容为“iGetJDBC 1.8.0”和字段名“abcd”所指示的字段内容为“IS_PARENT”。设置由字段名为“iGetJDBC”和“abcd”组成的待清洗集合。
步骤210:从待清洗集合中确定当前第一字段名。
具体地,在待清洗集合中可以根据需求从中确定任意一个当前第一字段名,也可以根据字段名的字母、数字、字符长度等条件确定。例如,从待清洗集合中随机确定当前第一字段名“iGetJDBC”。
步骤211:确定当前第一字段名是否与各个字段名筛选条件相匹配,如果是,执行步骤212,否则,执行步骤213。
具体地,由于字段名筛选条件为“非空校验”,所以只需确认当前第一字段名“iGetJDBC”所指示的字段是否为空数据,即是否存在数据,由于当前第一字段名“iGetJDBC”所指示的字段为“iGetJDBC 1.8.0”,不是空数据,并且字段名筛选条件仅有字段名筛选条件“非空校验”一个条件,因此,当前第一字段名“iGetJDBC”校验通过,可以抽取其指示的字段为“iGetJDBC1.8.0”。
步骤212:从待处理数据中抽取第一字段名指示的字段,执行步骤213。
步骤213:确定当前第一字段名是否为待清洗集合中最后一个第一字段名,如果是,执行步骤215,否则,执行步骤214。
步骤214:从待清洗集合中删除当前第一字段名,返回步骤210。
具体地,由于当前第一字段名“iGetJDBC”不是待清洗结合中的最后一个第一字段名,在待清洗集合中还存在一个第一字段名“abcd”,因此,为了防止对已筛选过得字段名多次清洗筛选,可以从待清洗集合中删除当前第一字段名为“iGetJDBC”,并将待清洗集合中的第一字段名“abcd”作为当前第一字段名,基于清洗条件进行校验,直至待清洗集合中不存在未筛选的第一字段名为止。
步骤215:将数据清洗后的数据作为待处理数据,执行步骤216。
具体地,在待清洗集合中所有的第一字段名均被筛选完毕后,可以将经过清洗条件筛选后的第一字段名和其指示的字段作为待处理数据,进行数据转换处理。
步骤216:调用转换组件确定待转换集合,其中,待转换集合包括待处理数据中的至少一个第二字段名。
具体地,由于经过筛选后的第一字段名“iGetJDBC”和“abcd”均符合清洗条件,因此,可以将其作为第二字段名形成待转换集合。
步骤217:从待转换集合中确定当前第二字段名。
具体地,在待转换集合中可以根据需求从中确认任意一个当前第二字段名,也可以根据字段名的字母、数字、字符长度等条件确定。例如,从待转换集合中随机确定当前第二字段名“abcd”。
步骤218:按照各个转换条件对当前第二字段名指示的字段进行转换。
具体地,转换条件为“大写转换小写”,且述当前第二字段名指示的字段“IS_PARENT”中包括大写字符,因此,需要依据转换条件转换为“is_parent”,由于转换条件仅有“大写转换小写”一个,因此,当前第二字段名指示的字段的数据转换处理操作即为完成。
步骤219:确定当前第二字段名是否为待转换集合中的最后一个第二字段名,如果是,执行步骤221,否则,执行步骤220。
步骤220:从待转换集合中删除当前第二字段名,返回步骤217。
具体地,由于当前第二字段名“abcd”不是待转换集合中的最后一个第二字段名,因此,需要将其从待转换集合中删除,防止对待转换集合中的第二字段名指示的字段进行多次转换操作。并将待转换集合中的第二字段名“iGetJDBC”作为当前第二字段名,基于转换条件对其指示的字段进行数据转换,直至待转换集合中的所有第二字段名指示的字段均完成数据转换操作为止。
步骤221:将处理后的数据存储到数据仓库中。
具体地,在基于需求对所需要的字段名指示的字段进行数据清洗、转换操作后,NiFi组件可以对处理后的数据进行存储,完成数据处理操作。
需要说明的是,NiFi组件可以是单例也可以是以集群的形式存在,当NiFi组件以集群的形式存在时,该集群中存在主NiFi组件和副NiFi组件,主NiFi组件可以对所有的副NiFi组件需要进行调用、管理。
如图3所示,本发明实施例提供了基于NiFi的数据处理装置,包括:
组件设置模块301,用于预先部署NiFi组件,并设置用于数据清洗的清洗组件和用于数据转换的转换组件;
组件嵌入模块302,用于将所述组件设置模块301设置的所述清洗组件和所述转换组件嵌入在所述NiFi组件中;
数据采集模块303,用于利用所述组件嵌入模块302嵌入后的所述NiFi组件,采集数据源中的待处理数据;
数据清洗转换模块304,用于利用所述组件嵌入模块302嵌入后的所述NiFi组件,调用所述清洗组件和所述转换组件对所述数据采集模块303采集的所述待处理数据进行处理,得到处理后的数据;
数据存储模块305,用于将所述数据清洗转换模块304得到的所述处理后的数据存储到数据仓库中。
在本发明实施例中,通过组件嵌入模块在组价设置模块部署的NiFi组件中,嵌入组件设置模块设置的用于进行数据清洗的清洗组件和用于数据转换的转换组件,可以在数据处理过程中,通过数据采集模块由NiFi组件负责从数据源中抽取数据,然后通过数据清洗转换模块利用清洗组件和转换组件来对抽取的数据进行相应数据清洗、转换操作,最后再由数据存储模块利用NiFi将处理后的数据入库,实现获取去除杂乱后的数据的目的。并且,由于NiFi组件为开源的程序,因此,通过在其内部设置相应的数据清洗、转换程序,即可满足数据的处理需求,无需开发人员编写大量数据处理相关的代码,从而降低获取去除杂乱后的数据的难度。
如图4所示,在本发明实施例中,所述数据清洗转换模块303,包括:判断模块3031、清洗模块3032和转换模块3033;
所述判断模块3031,用于确定所述清洗组件的处理优先级是否高于所述转换组件的处理优先级,如果是,触发所述清洗模块3032调用所述清洗组件对所述待处理数据进行数据清洗,将清洗后的数据作为待处理数据,并触发所述转换模块3033调用所述转换组件对所述清洗模块清洗后的该待处理数据进行数据转换;否则,触发所述转换模块3033调用所述转换组件对所述待处理数据进行数据转换,将转换后的数据作为待处理数据,并触发所述清洗模块3032调用所述清洗组件对所述转化模块转换的该待处理数据进行数据清洗。
在本发明实施例中,所述判断模块,进一步用于确定至少一个字段名筛选条件;
所述清洗模块,用于调用所述清洗组件执行:
D1:确定待清洗集合,其中,所述待清洗集合中包括所述待处理数据中的至少一个第一字段名;
D2:从所述待清洗集合中确定当前第一字段名;
D3:确定所述当前第一字段名是否与所述至少一个字段名筛选条件相匹配,如果是,执行D4,否则,执行D5;
D4:从所述待处理数据中抽取所述第一字段名指示的字段,执行D5;
D5:确定所述当前第一字段名是否为所述待清洗集合中最后一个第一字段名,如果是,结束当前流程,否则,执行D6;
D6:从所述待清洗集合中删除所述当前第一字段名,返回D2。
在本发明实施例中,所述判断模块,进一步用于确定至少一个转换条件;
所述转换模块,用于调用所述转换组件执行:
F1:确定待转换集合,其中,所述待转换集合包括所述待处理数据中的至少一个第二字段名;
F2:从所述待转换集合中确定当前第二字段名;
F3:按照所述至少一个转换条件对所述当前第二字段名指示的字段进行转换;
F4:确定所述当前第二字段名是否为所述待转换集合中的最后一个第二字段名,如果是,结束当前流程,否则,执行F5;
F5:从所述待转换集合中删除所述当前第二字段名,返回F2。
在本发明实施例中,所述组件嵌入模块,用于确定所述NiFi组件的配置格式;按照所述配置格式分别对所述清洗组件和所述转换组件进行打包,得到打包后的数据包;将所述数据包添加到所述NiFi组件中;运行添加所述数据包后的所述NiFi组件。
可以理解的是,本发明实施例示意的结构并不构成对基于NiFi的数据处理装置的具体限定。在本发明的另一些实施例中,基于NiFi的数据处理装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了存储介质,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行上述任一实施例中所述的基于NiFi的数据处理方法。
本发明实施例还提供了计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行上述任一实施例中所述的基于NiFi的数据处理方法。
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
本发明各个实施例至少具有如下有益效果:
本方案从数据采集、清洗、转换,该方法易于实现,且开发成本低、灵活多样,高可扩展,具有广泛的适用场景。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
Claims (4)
1.基于NiFi的数据处理方法,其特征在于,预先部署NiFi组件,并设置用于数据清洗的清洗组件和用于数据转换的转换组件,还包括:
将所述清洗组件和所述转换组件嵌入在所述NiFi组件中;
利用嵌入后的所述NiFi组件执行:
采集数据源中的待处理数据;
调用所述清洗组件和所述转换组件对所述待处理数据进行处理,得到处理后的数据;
将所述处理后的数据存储到数据仓库中;
所述调用所述清洗组件和所述转换组件对所述待处理数据进行处理,得到处理后的数据,包括:
S1:确定所述清洗组件的处理优先级是否高于所述转换组件的处理优先级,如果是,执行S2,否则,执行S3;
S2:调用所述清洗组件对所述待处理数据进行数据清洗,将清洗后的数据作为待处理数据,并调用所述转换组件对该待处理数据进行数据转换;
S3:调用所述转换组件对所述待处理数据进行数据转换,将转换后的数据作为待处理数据,并调用所述清洗组件对该待处理数据进行数据清洗;
在所述S1之前,进一步包括:
确定至少一个字段名筛选条件;
所述S2中的调用所述清洗组件对所述待处理数据进行数据清洗,包括:
调用所述清洗组件执行:
D1:确定待清洗集合,其中,所述待清洗集合中包括所述待处理数据中的至少一个第一字段名;
D2:从所述待清洗集合中确定当前第一字段名;
D3:确定所述当前第一字段名是否与所述至少一个字段名筛选条件相匹配,如果是,执行D4,否则,执行D5;
D4:从所述待处理数据中抽取所述第一字段名指示的字段,执行D5;
D5:确定所述当前第一字段名是否为所述待清洗集合中最后一个第一字段名,如果是,结束当前流程,否则,执行D6;
D6:从所述待清洗集合中删除所述当前第一字段名,返回D2;
和/或,
在所述S1之前,进一步包括:
确定至少一个转换条件;
所述S3中的调用所述转换组件对所述待处理数据进行数据转换,包括:
调用所述转换组件执行:
F1:确定待转换集合,其中,所述待转换集合包括所述待处理数据中的至少一个第二字段名;
F2:从所述待转换集合中确定当前第二字段名;
F3:按照所述至少一个转换条件对所述当前第二字段名指示的字段进行转换;
F4:确定所述当前第二字段名是否为所述待转换集合中的最后一个第二字段名,如果是,结束当前流程,否则,执行F5;
F5:从所述待转换集合中删除所述当前第二字段名,返回F2;
所述将所述清洗组件和所述转换组件嵌入在所述NiFi组件中,包括:
确定所述NiFi组件的配置格式;
按照所述配置格式分别对所述清洗组件和所述转换组件进行打包,得到打包后的数据包;
将所述数据包添加到所述NiFi组件中;
运行添加所述数据包后的所述NiFi组件。
2.基于NiFi的数据处理装置,其特征在于,包括:
组件设置模块,用于预先部署NiFi组件,并设置用于数据清洗的清洗组件和用于数据转换的转换组件;
组件嵌入模块,用于将所述组件设置模块设置的所述清洗组件和所述转换组件嵌入在所述NiFi组件中;
数据采集模块,用于利用所述组件嵌入模块嵌入后的所述NiFi组件,采集数据源中的待处理数据;
数据清洗转换模块,用于利用所述组件嵌入模块嵌入后的所述NiFi组件,调用所述清洗组件和所述转换组件对所述数据采集模块采集的所述待处理数据进行处理,得到处理后的数据;
数据存储模块,用于将所述数据清洗转换模块得到的所述处理后的数据存储到数据仓库中;
所述数据清洗转换模块,包括:判断模块、清洗模块和转换模块;
所述判断模块,用于确定所述清洗组件的处理优先级是否高于所述转换组件的处理优先级,如果是,触发所述清洗模块调用所述清洗组件对所述待处理数据进行数据清洗,将清洗后的数据作为待处理数据,并触发所述转换模块调用所述转换组件对所述清洗模块清洗后的该待处理数据进行数据转换;否则,触发所述转换模块调用所述转换组件对所述待处理数据进行数据转换,将转换后的数据作为待处理数据,并触发所述清洗模块调用所述清洗组件对所述转换模块转换的该待处理数据进行数据清洗;
所述判断模块,进一步用于确定至少一个字段名筛选条件;
所述清洗模块,用于调用所述清洗组件执行:
D1:确定待清洗集合,其中,所述待清洗集合中包括所述待处理数据中的至少一个第一字段名;
D2:从所述待清洗集合中确定当前第一字段名;
D3:确定所述当前第一字段名是否与所述至少一个字段名筛选条件相匹配,如果是,执行D4,否则,执行D5;
D4:从所述待处理数据中抽取所述第一字段名指示的字段,执行D5;
D5:确定所述当前第一字段名是否为所述待清洗集合中最后一个第一字段名,如果是,结束当前流程,否则,执行D6;
D6:从所述待清洗集合中删除所述当前第一字段名,返回D2;
和/或,
所述判断模块,进一步用于确定至少一个转换条件;
所述转换模块,用于调用所述转换组件执行:
F1:确定待转换集合,其中,所述待转换集合包括所述待处理数据中的至少一个第二字段名;
F2:从所述待转换集合中确定当前第二字段名;
F3:按照所述至少一个转换条件对所述当前第二字段名指示的字段进行转换;
F4:确定所述当前第二字段名是否为所述待转换集合中的最后一个第二字段名,如果是,结束当前流程,否则,执行F5;
F5:从所述待转换集合中删除所述当前第二字段名,返回F2;
所述组件嵌入模块,用于确定所述NiFi组件的配置格式;按照所述配置格式分别对所述清洗组件和所述转换组件进行打包,得到打包后的数据包;将所述数据包添加到所述NiFi组件中;运行添加所述数据包后的所述NiFi组件。
3.存储介质,其特征在于,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1所述的基于NiFi的数据处理方法。
4.计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1所述的基于NiFi的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010047169.8A CN111258997B (zh) | 2020-01-16 | 2020-01-16 | 基于NiFi的数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010047169.8A CN111258997B (zh) | 2020-01-16 | 2020-01-16 | 基于NiFi的数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258997A CN111258997A (zh) | 2020-06-09 |
CN111258997B true CN111258997B (zh) | 2023-11-03 |
Family
ID=70950593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010047169.8A Active CN111258997B (zh) | 2020-01-16 | 2020-01-16 | 基于NiFi的数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111258997B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07239792A (ja) * | 1994-02-28 | 1995-09-12 | Fuji Xerox Co Ltd | 簡易プログラム言語処理装置 |
CN107330028A (zh) * | 2017-06-23 | 2017-11-07 | 北京北信源软件股份有限公司 | 一种Apache NiFi在源数据录入数据库方面的扩展应用方法和系统 |
CN109299183A (zh) * | 2018-11-20 | 2019-02-01 | 北京锐安科技有限公司 | 一种数据处理方法、装置、终端设备和存储介质 |
CN109376196A (zh) * | 2018-09-25 | 2019-02-22 | 浪潮软件集团有限公司 | 一种redo日志批量同步方法及装置 |
CN109558400A (zh) * | 2018-11-28 | 2019-04-02 | 北京锐安科技有限公司 | 数据处理方法、装置、设备和存储介质 |
CN109753502A (zh) * | 2018-12-29 | 2019-05-14 | 山东浪潮商用系统有限公司 | 一种基于NiFi的数据采集方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2920689A1 (en) * | 2013-08-14 | 2015-02-19 | Zag Holdings Inc. | Data sanitization and normalization and geocoding methods |
US11321337B2 (en) * | 2018-06-04 | 2022-05-03 | Cisco Technology, Inc. | Crowdsourcing data into a data lake |
US20190392002A1 (en) * | 2018-06-25 | 2019-12-26 | BigStream Solutions, Inc. | Systems and methods for accelerating data operations by utilizing dataflow subgraph templates |
-
2020
- 2020-01-16 CN CN202010047169.8A patent/CN111258997B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07239792A (ja) * | 1994-02-28 | 1995-09-12 | Fuji Xerox Co Ltd | 簡易プログラム言語処理装置 |
CN107330028A (zh) * | 2017-06-23 | 2017-11-07 | 北京北信源软件股份有限公司 | 一种Apache NiFi在源数据录入数据库方面的扩展应用方法和系统 |
CN109376196A (zh) * | 2018-09-25 | 2019-02-22 | 浪潮软件集团有限公司 | 一种redo日志批量同步方法及装置 |
CN109299183A (zh) * | 2018-11-20 | 2019-02-01 | 北京锐安科技有限公司 | 一种数据处理方法、装置、终端设备和存储介质 |
CN109558400A (zh) * | 2018-11-28 | 2019-04-02 | 北京锐安科技有限公司 | 数据处理方法、装置、设备和存储介质 |
CN109753502A (zh) * | 2018-12-29 | 2019-05-14 | 山东浪潮商用系统有限公司 | 一种基于NiFi的数据采集方法 |
Non-Patent Citations (2)
Title |
---|
孟坚,董逸生,王永利.一种基于规则的交互式数据清洗技术.微机发展.2005,(04),全文. * |
梁美红 ; 张男楠 ; 李建 ; 伍东 ; 胡永泉 ; 杨静 ; .一种钻井数据仓库ETL系统的设计.计算机技术与发展.2010,(03),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111258997A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109656934B (zh) | 基于日志解析的源端Oracle数据库DDL同步方法及设备 | |
CN111061643B (zh) | Sdk集群的兼容性检测方法、装置、电子设备及存储介质 | |
CN112685433B (zh) | 元数据更新方法、装置、电子设备及计算机可读存储介质 | |
CN113448935B (zh) | 用于提供日志信息的方法、电子设备和计算机程序产品 | |
CN111209344A (zh) | 数据同步方法及装置 | |
CN106406913B (zh) | 一种从项目中提取代码的方法及系统 | |
CN112199935A (zh) | 数据的比对方法、装置、电子设备及计算机可读存储介质 | |
CN114936269A (zh) | 文档搜索平台、搜索方法、装置、电子设备及存储介质 | |
CN111737203A (zh) | 数据库历史日志回溯方法、装置、系统、设备及存储介质 | |
CN110245059B (zh) | 一种数据处理方法、设备及存储介质 | |
CN111258997B (zh) | 基于NiFi的数据处理方法和装置 | |
CN111698330B (zh) | 存储集群的数据恢复方法、装置及服务器 | |
CN114547383A (zh) | 一种案件串并图谱的生成方法、装置、设备及介质 | |
CN107220146B (zh) | 一种文件扫描恢复方法及装置 | |
CN103093213A (zh) | 视频文件分类方法及终端 | |
CN115080114B (zh) | 应用程序的移植处理方法、装置和介质 | |
CN111177506A (zh) | 一种基于大数据的分类存储方法及系统 | |
CN106469086B (zh) | 事件处理方法和装置 | |
CN107656868B (zh) | 一种利用线程私有数据获取线程名字的调试方法及系统 | |
CN116318990A (zh) | 一种攻击链实时检测方法、装置、电子设备及存储介质 | |
CN111563123B (zh) | 一种hive仓库元数据实时同步方法 | |
CN112686029A (zh) | 用于数据库审计系统的sql新语句识别方法及装置 | |
CN113360558A (zh) | 数据处理方法、数据处理装置、电子设备及存储介质 | |
US8249083B2 (en) | Method, apparatus and computer program for processing a message using a message processing node | |
CN112925754B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 271000 Langchao science and Technology Park, 527 Dongyue street, Tai'an City, Shandong Province Applicant after: INSPUR SOFTWARE Co.,Ltd. Address before: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong Applicant before: INSPUR SOFTWARE Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |