1、今天我们一起来学习处理器GenerateFlowFile。这个处理器创建带有随机数据或自定义内容的 FlowFiles。GenerateFlowFile 对于负载测试、配置和模拟非常有用。从工具栏拖动处理器到画布,然后选择GenerateFlowFile即可。

2、点击add按钮或者双击 GenerateFlowFile可将此处理器添加到画布。

3、此时GenerateFlowFile 有个感叹号的图标,标记处理器存在无效的配置。上图的提示意思是当此处理器处理成功之后没有设置流向组件(其他处理器)同时页面设置自动终止。

双击处理器,然后弹出处理器配置页面,选择relationships选项卡,勾选terminate或者同时勾选terminate和retry选项即可消除感叹号。若同时选择terminate和retry两个选项,处理器会先执行重试逻辑(若有)然后终止。

4、打开处理器配置页面,第一个选项卡settings为所有处理器的共有配置。

Name:自定义处理器名字

Enabled:标记处理器是否可用

Id:处理器的唯一标识符

Type:处理器类型+版本号

Bundle:处理器的类名和NAR包(它是一种 NiFi 插件或扩展的打包格式。NiFi 的功能可以通过安装和加载 NAR 包来进行扩展。)

Penalty Duration:在正常处理数据(一个FlowFile)的过程中,可能会发生一个事件,表明此时无法处理数据,但数据可能在以后的某个时候可以处理。当发生这种情况时,处理器可以选择对FlowFile进行处罚。这将阻止FlowFile在一段时间内被处理。例如,如果处理器要将数据推送到远程服务,但远程服务已经有一个与处理器指定的文件名相同的文件,则处理器可能会对FlowFile进行处罚。'Penalty Duration’允许DFM指定FlowFile应被处罚的时间长度。默认值为30秒。

Yield Duration:处理器可能会确定存在某种情况,使得处理器无论处理哪些数据都无法取得任何进展。例如,如果处理器要将数据推送到远程服务而该服务未响应,处理器将无法取得任何进展。因此,处理器应该“yield”,这将阻止处理器在一段时间内被调度运行。该时间段由设置“Yield Duration”来指定。默认值为1秒。

Bulletin level:公告级别。每当处理器写入其日志时,处理器也会生成一个公告。此设置指示在用户界面中应显示的最低级别的公告。默认情况下,公告级别设置为WARN,这意味着它将显示所有警告和错误级别的公告。设置此选项后可以很方便的看到错误日志信息而不是通过查找日志文件。

5、scheduling(调度设置)

Scheduling Strategy (调度策略)

调度策略有三种可能的选项:

Timer driven:这是默认模式。处理器将定期运行。运行处理器的时间间隔由Run Schedule选项定义。

Event driven:选择此模式时,将由一个事件触发处理器运行,当FlowFiles进入连接此处理器的Connections时,将产生这个事件。此模式目前被认为是实验性的,并非所有处理器都支持。选择此模式时,Run Schedule选项不可配置。此外,只有此模式下Concurrent Tasks选项可以设置为0。这种情况,线程数仅受管理员配置的事件驱动线程池的大小限制。

CRON驱动:当使用CRON驱动的调度模式时,处理器将定期运行,类似于定时器驱动的调度模式。CRON驱动模式提供了更大的灵活性。类似于quartz中的cron。

(Concurrent Tasks)并发任务

这可以控制处理器将使用的线程数。换句话说,它控制此处理器应同时处理多少个FlowFiles。增加此值通常会使处理器在相同的时间内处理更多数据。但是,它是通过使用其他处理器无法使用的系统资源来实现此目的。这基本上提供了处理器的相对权重 - 应该将多少系统资源分配给此处理器而不是其他处理器。该字段适用于大多数处理器。但是,某些类型的处理器只能使用单个任务进行调度。

(Run Schedule)运行计划

"Run Schedule"指示处理器运行的频率。此字段的有效值取决于所选的调度策略。如果使用事件驱动的调度策略,则此字段不可用。使用定时器驱动的调度策略时,该值是由数字后跟时间单位指定的持续时间。例如,1 second或5 mins。默认值0 sec表示处理器应尽可能频繁地运行,只要它有要处理的数据即可。使用CRON驱动的调度策略时,此值设置为cron表达式。

(Execution)执行

执行设置用于确定处理器将被调度执行的节点。选择"All Nodes"将导致在集群中的每个节点上调度此处理器。选择"Primary Node"将导致此处理器仅在主节点上进行调度。已配置"Primary Node"执行的处理器由处理器图标旁边的"P"标识,如下图所示

6、(Properties)属性

在下面的属性列表中,必填属性的名称以粗体显示。任何其他属性(不是粗体)都被认为是可选的。

File Size: 将使用的文件流的大小
Batch Size :每次调用时要传输出去的流文件的数量
Data Format :指定数据应该是文本还是二进制
Unique FlowFiles: 如果选择true,则生成的每个流文件都是惟一的。
如果选择false,此处理器将生成一个随机值,所有的流文件都是相同的内容,模仿更高的吞吐量时可以这样使用
Custom Text:   如果Data Format选择Text,且Unique FlowFiles选择为false,那么这个自定义文本将用作生成的流文件的内容,文件大小将被忽略。
如果Custom Text中使用了表达式语言,则每批生成的流文件只执行一次表达式语言的计算
支持表达式语言:true(只使用变量注册表进行计算)
Character Set: UTF-8 指定将自定义文本的字节写入流文件时要使用的编码

Mime Type:设置mime type,如text/plain

问号标记指出属性默认值(如果有默认值),以及属性是否支持表达式语言,如下图所示:

7、(comments)备注,填写自定义备注,如业务逻辑等。

8、右键Start 或者Run Once 运行处理器。

9、右键 View data provenance 可以查看数据的溯源信息。

点击i图标,查看文件的详情、属性、内容信息,如下图所示。

注:该处理器生成流文件固只能作为所设计流程的第一个处理器,不允许作为其他处理器传入连接关系。

ETL工具-nifi干货系列 第五讲 处理器GenerateFlowFile的更多相关文章

  1. 开源ETL工具kettle系列之常见问题

    开源ETL工具kettle系列之常见问题 摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. J ...

  2. 数据仓库系列之ETL过程和ETL工具

    上周因为在处理很多数据源集成的事情一直没有更新系列文章,在这周后开始规律更新.在维度建模中我们已经了解数据仓库中的维度建模方法以及基本要素,在这篇文章中我们将学习了解数据仓库的ETL过程以及实用的ET ...

  3. etl学习系列1——etl工具安装

    ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可 ...

  4. ETL工具的功能和kettle如何来提供这些功能

    不多说,直接上干货! 大家会有一个疑惑,本系列博客是Kettle,那怎么扯上ETL呢? Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行. 说白了 ...

  5. Spring Boot干货系列:(十二)Spring Boot使用单元测试(转)

    前言这次来介绍下Spring Boot中对单元测试的整合使用,本篇会通过以下4点来介绍,基本满足日常需求 Service层单元测试 Controller层单元测试 新断言assertThat使用 单元 ...

  6. 开源作业调度工具实现开源的Datax、Sqoop、Kettle等ETL工具的作业批量自动化调度

    1.阿里开源软件:DataX DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL.Oracle等).HDFS.Hive.ODPS.HBase.FTP等各种异构数据源之间稳 ...

  7. 【转】ETL介绍与ETL工具比较

    本文转载自:http://blog.csdn.net/u013412535/article/details/43462537 ETL,是英文 Extract-Transform-Load 的缩写,用来 ...

  8. 【转】Spring Boot干货系列:(一)优雅的入门篇

    转自Spring Boot干货系列:(一)优雅的入门篇 前言 Spring一直是很火的一个开源框架,在过去的一段时间里,Spring Boot在社区中热度一直很高,所以决定花时间来了解和学习,为自己做 ...

  9. 【转】Spring Boot干货系列:(二)配置文件解析

    转自:Spring Boot干货系列:(二)配置文件解析 前言 上一篇介绍了Spring Boot的入门,知道了Spring Boot使用"习惯优于配置"(项目中存在大量的配置,此 ...

  10. 【转】Spring Boot干货系列:(三)启动原理解析

    前言 前面几章我们见识了SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会吃亏.所以这次博主就跟你们一起一步步揭开Sprin ...

随机推荐

  1. js获取时间差,返回格式为01天02小时03秒

    // 获取时间差 返回值格式:01天02小时30秒 export function caclulateDiffTime(start, end): string { start = new Date(s ...

  2. 如何把jQuery对象转成DOM对象?OR DOM对象转化成jQuery对象

    如何把jQuery对象转成DOM对象? 参考:https://www.imooc.com/code/8110 利用数组下标的方式读取到jQuery中的DOM对象 <div>元素一</ ...

  3. 疫情带火了这款APP:2600个学生一天点赞70万次

      这几天,全国中小学生经历了"过山车"一样的心情. 因为疫情的不断蔓延,1月27日,教育部下发通知,2020年春季学期延期开学. 随后,教育部又提出"利用网络平台,停课 ...

  4. 龙蜥社区成立系统运维SIG,重磅开源sysAK系统运维工具集

    简介:系统运维SIG致力于打造一个集主机管理.配置部署.监控报警.异常诊断.安全审计等一系列功能的自动化运维平台. ​ OpenAnolis 龙蜥社区(以下简称"龙蜥社区")正式成 ...

  5. JavaScript 如何实现一个响应式系统

    JavaScript 如何实现一个响应式系统 第一阶段目标 数据变化重新运行依赖数据的过程 第一阶段问题 如何知道数据发生了变化 如何知道哪些过程依赖了哪些数据 第一阶段问题的解决方案 我们可用参考现 ...

  6. IIncrementalGenerator 增量 Source Generator 生成代码入门 从语法到语义 获取类型完全限定名

    本文告诉大家如何在使用 IIncrementalGenerator 进行增量的 Source Generator 生成代码时,如何从语法分析过程,将获取的语法 Token 转换到语义分析上,比如获取类 ...

  7. WPF 双向绑定到非公开 set 方法属性在 NET 45 和 NET Core 行为的不同

    本文记录 WPF 在 .NET Framework 4.5 和 .NET Core 3.0 或更高版本对使用 Binding 下的 TwoWay 双向绑定模式绑定到非公开的 set 属性上的行为变更 ...

  8. shell 调试方法

    shell 在 linux 系统中比较常见,简单的脚本可以看着确实没难度,但是当脚本功能复杂后,看起来就不那么流畅了,所以掌握一些调试方式还是很有必要的,这里我收集了一次常用的调试方式. shell调 ...

  9. VUE知识体系、VUE面试题

    1. computed(计算属性)和方法有什么区别? 计算属性本质上是包含 getter 和 setter 的方法 当获取计算属性时,实际上是在调用计算属性的 getter 方法.vue 会收集计算属 ...

  10. 老外为了在MacBook上玩原神,让M1支持了所有iOS应用 | Github每周精彩分享第一期

    大家好,这里是每周更新的Github有趣项目分享,我是每周都在吃瓜的蛮三刀酱. 我会从Github热门榜里选出 高质量.有趣,牛B 的开源项目进行分享. 废话不多说,看看最近有什么有意思的Github ...