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. 文件上传之Webshell连接方法

    "感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友.您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!" Websh ...

  2. 力扣1097(MySQL)-游戏玩法分析Ⅴ(困难)

    题目: 我们将玩家的安装日期定义为该玩家的第一个登录日. 我们还将某个日期 X 的第 1 天留存时间定义为安装日期为 X 的玩家的数量,他们在 X 之后的一天重新登录,除以安装日期为 X 的玩家的数量 ...

  3. 1.css的初认识

    1.什么是CSS? Cascading Style Sheet 层叠级联样式表 CSS:表现层(美化网页) 字体.颜色.边距.高度.宽度.背景图片.网页定位.网页浮动.... 2.CSS发展史 CSS ...

  4. 动态尺寸模型优化实践之Shape Constraint IR Part II

    简介: 在本系列分享中我们将介绍BladeDISC在动态shape语义下做性能优化的一些实践和思考.本次分享的是我们最近开展的有关shape constraint IR的工作,Part II 中我们将 ...

  5. Spring Boot Admin 集成诊断利器 Arthas 实践

    简介: Arthas 是 Alibaba 开源的 Java 诊断工具,具有实时查看系统的运行状况:查看函数调用参数.返回值和异常:在线热更新代码:秒解决类冲突问题:定位类加载路径:生成热点:通过网页诊 ...

  6. 拒绝双写:巧用Lindorm数据订阅

    ​简介: 本文介绍了双写场景的一致性问题,详细介绍了三种解决方案,并针对DB->Binlog->Kafka方案给出了Lindorm数据订阅的最佳实践 双写问题介绍 双写问题(Dual Wr ...

  7. element-ui表单重置函数 resetFields 无效解决

    由element-ui文档中能看到重置表单使用的是如下函数 this.$refs[formName].resetFields(); 但是有时使用它却可能会失效 解决: form-item中要加上pro ...

  8. Jenkins 简述及其搭建

    什么是持续集成? 持续集成(CI)是在软件开发过程中自动化和集成许多团队成员的代码更改和更新的过程.在 CI 中,自动化工具在集成之前确认软件代码是有效且无错误的,这有助于检测错误并加快新版本的发布. ...

  9. GitLab 升级迁移待办清单

    GitLab 大版本升级测试用例 项目 从模板项目 URL 导入,来创建新的项目 议题 通过 Quick Actions.关联新建.直接新建 模板 关联项 标签 工时 评论 看板 里程碑 分支 通过 ...

  10. LabView中使用VISA设备清零时,会发送00

    最近有为小伙伴跟我说他使用串口的时候通信遇到了问题,我看到他的在程序循环中使用了VISA设备清零控件,出于好奇我就复现了一下,发现每次调用VISA设备清零控件的时候,会主动向串口中发送00数据 一.测 ...