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图标,查看文件的详情、属性、内容信息,如下图所示。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/775954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【蓝桥杯省赛真题34】python积木搭建 中小学青少年组蓝桥杯比赛 算法思维python编程省赛真题解析

python积木搭建 第十三届蓝桥杯青少年组python比赛省赛真题 一、题目要求 (注:input()输入函数的括号中不允许添加任何信息) 1、编程实现 小蓝和小青在玩积木搭建游戏,具体玩法如下: 小蓝报一个数字N&…

vue多语言包i18n

1.安装 如果是vue2直接安装8.2.1版本,否则会出现版本不匹配的错误 npm install vue-i18n8.2.1 --save2.文件编辑 在src目录下创建文件 en.js export const h {system: "Background management system",loginOut:"LoginOut",LayoutSet:Layout …

用搜索引擎收集信息-常用方式

1,site csdn.net (下图表示只在csdn网站里搜索java) 2,filetype:pdf (表示只检索某pdf文件类型) 表示在浏览器里面查找有关java的pdf文件 3,intitle:花花 (表示搜索网页标题里面有花…

qtxlsx 学习

简介: QXlsx是一个可以读写Excel文件的库。不依赖office以及wps组件,可以在Qt5支持的任何平台上使用。 QXlsx和QAxObject 比较 QAxObject使用需要系统中安装了offie或wps,这种方法不推荐使用; 因为如果安装了wps,可…

4.Python数据分析—数据分析入门知识图谱索引(知识体系下篇)

4.Python数据分析—数据分析入门知识图谱&索引-知识体系下篇 一个人简介二机器学习基础2.1 监督学习与无监督学习2.1.1 监督学习:2.1.2 无监督学习: 2.2 特征工程2.3 常用机器学习算法概述2.3.1 监督学习算法:2.3.2 无监督学习算法&#…

Phoenix伪分布安装

引言 Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫…

【保姆级讲解如何构建Python虚拟环境】

🔥博主:程序员不想YY啊🔥 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家💫 🤗点赞🎈收藏⭐再看💫养成习惯 🌈希望本文对您有所裨益,如有…

SAP 前台处理:CO主数据之成本要素组创建-<KAH1>

一、背景 本章是成本要素主数据创建的续章,后续会用到成本费用的分摊分配,费用的统计中。 也是成本控制篇的内容之一 成本控制分主数据篇和业务篇: 主数据篇主要内容: 成本要素、成本中心、订单、作业类型、统计指标、工作中…

微服务(基础篇-006-Docker)

Docker是一个开源的应用容器引擎,它让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间没有任何接口(类似 iPhone 的 app&…

【一】TensorFlow神经网络模型构建之神经元函数及优化方法

TensorFlow神经网络模型构建主要涉及如下几块:神经元函数、卷积函数、池化函数、分类函数、优化方法。下面分别对这几块进行展开说明: 神经元函数及优化方法 神经网络之所以能解决非线性问题(如语音、图像识别等),本…

互联网公司裁员现象调查:探寻背后原因与应对策略

近年来,随着互联网行业的快速发展,裁员现象日益引起广泛关注。本文通过对互联网公司裁员现象的调查,分析背后原因,探讨应对策略,以期为互联网企业和求职者提供参考。 近年来,我国互联网行业历经高速发展&am…

Uibot6.0 (RPA财务机器人师资培训第4天 )批量开票机器人案例实战

类似于小北之前发布的一篇博客(不能说很像,只能说是一模一样) Uibot (RPA设计软件)财务会计Web应用自动化(批量开票机器人)-CSDN博客https://blog.csdn.net/Zhiyilang/article/details/136782171?spm1001.2014.3001.…

软考中级——软件设计师真题中的一些知识总结

2023年5月考过了软考中级——软件设计师,一次通过,两科成绩分别是入下。 做上午真题的时候积累了一些易错题,分享一下~~ 2014年5月 1、木马程序:是一种寻找计算机后门,伺机窃取被控计算机中的密码和重要文件等&#…

Apache Hive的基本使用语法

一、数据库操作 创建数据库 create database if not exists myhive;查看数据库 use myhive; desc database myhive;创建数据库并指定hdfs存储 create database myhive2 location /myhive2;删除空数据库(如果有表会报错) drop database myhive;…

[STM32] Keil 创建 HAL 库的工程模板

Keil 创建 HAL 库的工程模板 跟着100ASK_STM32F103_MINI用户手册V1.1.pdf的第7章步骤进行Keil工程的创建。 文章目录 1 创建相关文件夹2 创建“main.c/h”和“stm32f1xx_clk.c/h”3 复制CMSIS和HAL库4 创建新的Keil工程5 添加组文件夹和工程文件6 配置Keil设置 1 创建相关文件…

Python处理文件系统路径库之pathlib使用详解

概要 Python的pathlib库提供了一种面向对象的方法来处理文件系统路径。它使得路径操作更加直观和易于管理,相比于传统的os.path模块,pathlib提供了更为丰富和灵活的API。 pathlib库 pathlib模块在Python中用于处理文件系统路径。通过使用面向对象的方法,它允许路径表示为P…

MySQL高级SQL2

一、表连接 二、视图 三、null值和空值区别 四、存储过程 五、函数 六、字符串函数 七、日期时间函数

Elastic 8.13:Elastic AI 助手中 Amazon Bedrock 的正式发布 (GA) 用于可观测性

作者:来自 Elastic Brian Bergholm 今天,我们很高兴地宣布 Elastic 8.13 的正式发布。 有什么新特性? 8.13 版本的三个最重要的组件包括 Elastic AI 助手中 Amazon Bedrock 支持的正式发布 (general availability - GA),新的向量…

东方博宜 1553. 数列求和

东方博宜 1553. 数列求和 #include<iostream> using namespace std; int main() {int n ; cin >> n ;int sum ;sum 0 ;for(int i 1 ; i < n ; i){sum i*i ;}cout << sum ; }

Spring-ThreadLocal内存泄漏原因及解决办法

ThreadLocal原理回顾 ThreadLocal的原理&#xff1a;每个Thread内部维护着一个ThreadLocalMap&#xff0c;它是一个Map。这个映射表的Key是一个弱引用&#xff0c;其实就是ThreadLocal本身&#xff0c;Value是真正存的线程变量Object。 也就是说ThreadLocal本身并不真正存储线…