ETL工具-nifi干货系列 第五讲 处理器GenerateFlowFile
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的更多相关文章
- 开源ETL工具kettle系列之常见问题
开源ETL工具kettle系列之常见问题 摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. J ...
- 数据仓库系列之ETL过程和ETL工具
上周因为在处理很多数据源集成的事情一直没有更新系列文章,在这周后开始规律更新.在维度建模中我们已经了解数据仓库中的维度建模方法以及基本要素,在这篇文章中我们将学习了解数据仓库的ETL过程以及实用的ET ...
- etl学习系列1——etl工具安装
ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可 ...
- ETL工具的功能和kettle如何来提供这些功能
不多说,直接上干货! 大家会有一个疑惑,本系列博客是Kettle,那怎么扯上ETL呢? Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行. 说白了 ...
- Spring Boot干货系列:(十二)Spring Boot使用单元测试(转)
前言这次来介绍下Spring Boot中对单元测试的整合使用,本篇会通过以下4点来介绍,基本满足日常需求 Service层单元测试 Controller层单元测试 新断言assertThat使用 单元 ...
- 开源作业调度工具实现开源的Datax、Sqoop、Kettle等ETL工具的作业批量自动化调度
1.阿里开源软件:DataX DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL.Oracle等).HDFS.Hive.ODPS.HBase.FTP等各种异构数据源之间稳 ...
- 【转】ETL介绍与ETL工具比较
本文转载自:http://blog.csdn.net/u013412535/article/details/43462537 ETL,是英文 Extract-Transform-Load 的缩写,用来 ...
- 【转】Spring Boot干货系列:(一)优雅的入门篇
转自Spring Boot干货系列:(一)优雅的入门篇 前言 Spring一直是很火的一个开源框架,在过去的一段时间里,Spring Boot在社区中热度一直很高,所以决定花时间来了解和学习,为自己做 ...
- 【转】Spring Boot干货系列:(二)配置文件解析
转自:Spring Boot干货系列:(二)配置文件解析 前言 上一篇介绍了Spring Boot的入门,知道了Spring Boot使用"习惯优于配置"(项目中存在大量的配置,此 ...
- 【转】Spring Boot干货系列:(三)启动原理解析
前言 前面几章我们见识了SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会吃亏.所以这次博主就跟你们一起一步步揭开Sprin ...
随机推荐
- 【Oracle】year must be between -4713 and +9999,and not be 0
[Oracle]year must be between -4713 and +9999,and not be 0 year must be between -4713 and +9999,and n ...
- 【笔记】go语言--函数式编程
[笔记]go语言--函数式编程 简单来说,go语言的函数式编程体现的是一个闭包的情况 函数式编程 VS 函数指针 函数是一等公民:参数,变量,返回值都可以是函数 高阶函数 函数->闭包 &quo ...
- 力扣374(java&python)-猜数字大小(简单)
题目: 猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字.如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了.你可以通过调用一个预先定 ...
- OpenKruise v0.8.0 核心能力解读:管理 Sidecar 容器的利器
简介: OpenKruise 是阿里云开源的云原生应用自动化管理套件,也是当前托管在 Cloud Native Computing Foundation (CNCF) 下的 Sandbox 项目.它来 ...
- 新型DDoS来袭 | 基于STUN协议的DDoS反射攻击分析
简介: 作为新型反射类型,目前仍存绕过防御可能性. 阿里云安全近期发现利用STUN(Session Traversal Utilities for NAT,NAT会话穿越应用程序)服务发起的DDoS反 ...
- [ML] 数据预处理 - 特性归一化的目的
简而言之,归一化的目的就是使得预处理的数据被限定在一定的范围内(比如[0,1]或者[-1,1]), 从而消除奇异样本数据导致的不良影响. 是否归一化主要在于是否关心变量取值. Tool:ChatAI ...
- WinUI 3 修复非打包应用运行提示缺少 Windows App Runtime 环境
本文将告诉大家如何修复 WinUI 3 非打包的应用,在分发给到客户时,在客户的机器上运行提示缺少 Windows App Runtime 环境 在用户的机器上提示的 Windows App Runt ...
- WPF 自定义控件入门 Focusable 与焦点
自定义控件时,如果自定义的控件需要用来接收键盘消息或者是输入法的输入内容,那就需要关注到控件的焦点 默认情况下的自定义控件是没有带可获取焦点的功能的,例如编写一个继承 FrameworkElement ...
- docker-compose安装EFK
一.环境 IP 系统 配置 版本 192.168.10.100 Centos7.9 2核4G Docker Compose version v2.19.1.EFK-7.17.11 EFK版本是试用版本 ...
- vue-单独引入css文件,设置公共的css样式或者修改默认的vant,mint样式
1.css文件夹下新建global.css文件并粘贴复制: ======================= :root{ --bgColor : #d3252a; --pinkColo ...