ETL工具-nifi干货系列 第十八讲 nifi Funnel实战教程
1、Funnel (漏斗),Funnel是 NiFi 组件,用于将多个连接中的数据合并到一个连接中。
使用场景:nifi中的Funnel组件用于合并多个数据流并将它们传递到下游处理器。它可以将来自不同来源的数据流合并到一个数据流中,方便后续处理器对数据进行处理。Funnel组件通常用于将不同分支的数据合并成一个流,例如将多个数据源的数据合并后进行聚合、分析或存储等操作。通过Funnel组件,nifi可以实现数据的合并和汇总,进一步实现数据流的处理和分析。

1)处理器GenerateFlowFile1生成2条数据,处理器GenerateFlowFile2生成2条数据,经过组件Funnel汇合之后将数据传递给LogMessae处理器(或者其他处理器),此时LogMessae处理器将收到4条数据。
2)由此可见Funnel处理器还具有解耦的作用:比如再加个类似的GenerateFlowFile3继续生产数据,后续流程不需要任何调整。
3)说到多对1聚会组件,大家肯定会想到1对多分发组件。在Apache NiFi中,可以使用RouteOnAttribute、RouteOnContent等处理器来实现数据的分发。这些处理器可以根据预定义的条件将数据流分发到不同的处理路径。另外,还可以结合使用UpdateAttribute处理器来添加属性,然后通过RouteOnAttribute根据这些属性的值来进行分发。另外,还可以使用Site-to-Site连接来将数据分发到其他的NiFi实例或其他系统中。
2、双击Funnel上游连接对多个连接内的流文件进行统一的背压,优先级设置,如下图所示:

Name:连接名称是可选的。如果未指定,则连接的名称将显示为连接中活动的关系的名称.
FlowFile Expiration:FlowFile过期是一个概念,用于自动删除不能及时处理的数据流。例如,在预期数据量超过可以发送到远程站点的数据量时,这是很有用的。在这种情况下,可以与优先级处理器一起使用过期机制,确保最高优先级的数据首先得到处理,然后任何在一定时间段内无法处理的数据(例如一个小时)可以被丢弃。过期时间是基于数据进入NiFi实例的时间。换句话说,如果在给定连接上设置了文件过期时间为“1小时”,并且一个已在NiFi实例中一个小时的文件到达该连接,它将会过期。默认值为0秒表示数据永远不会过期。当设置了不为“0秒”的文件过期时间时,连接标签上会出现一个小时钟图标,这样DFM在查看画布上的流程时可以一目了然地看到。

Back Pressure Object Threshold 、Size Threshold
NiFi提供了两种用于背压的配置元素。这些阈值指示在不再调度运行连接源组件之前队列中应允许存在多少数据。这样可以避免系统被数据淹没。第一个选项是“背压对象阈值”。这是在应用背压之前可以在队列中存在的FlowFile数量。第二个配置选项是“背压数据大小阈值”。这指定了在应用背压之前应排队的最大数据量(按大小)。这个值是通过输入一个数字后跟一个数据大小(B代表字节,KB代表千字节,MB代表兆字节,GB代表吉字节,TB代表太字节)进行配置的。

Load Balance Strategy:为了在集群中的各个节点之间分发流程中的数据。后续集群讲解时具体介绍。

ETL工具-nifi干货系列 第十八讲 nifi Funnel实战教程的更多相关文章
- Web 前端开发人员和设计师必读文章推荐【系列二十八】
<Web 前端开发精华文章推荐>2014年第7期(总第28期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...
- OSGi 系列(十八)之 基于注解的 Blueprint
OSGi 系列(十八)之 基于注解的 Blueprint 1. 注解实现 blueprint 第一步:bundle 添加 Bundle-Blueprint-Annotation <plugin& ...
- Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用
Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用 原创 2017-04-13 嘟嘟MD 嘟爷java超神学堂 前言 前面几章介绍了一些基础,但都是静 ...
- Java 设计模式系列(十八)备忘录模式(Memento)
Java 设计模式系列(十八)备忘录模式(Memento) 备忘录模式又叫做快照模式(Snapshot Pattern)或Token模式,是对象的行为模式.备忘录对象是一个用来存储另外一个对象内部状态 ...
- 学习ASP.NET Core Blazor编程系列二十八——JWT登录(3)
学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...
- SQL注入之Sqli-labs系列第二十八关(过滤空格、注释符、union select)和第二十八A关
开始挑战第二十八关(Trick with SELECT & UNION) 第二十八A关(Trick with SELECT & UNION) 0x1看看源代码 (1)与27关一样,只是 ...
- SQL注入之Sqli-labs系列第十八关(基于错误的用户代理,头部POST注入)
开始挑战第十八关(Header Injection - Uagent field - Error based) 常见的HTTP注入点产生位置为[Referer].[X-Forwarded-For].[ ...
- Dubbo学习系列之十八(Skywalking服务跟踪)
我们知道,微服务不是独立的存在,否则就不需要微服务这个架构了,那么当发起一次请求,如何知道这次请求的轨迹,或者说遇到响应缓慢. 请求出错的情况,我们该如何定位呢?这就涉及到APM(Applicatio ...
- Spring Boot入门系列(十八)整合mybatis,使用注解的方式实现增删改查
之前介绍了Spring Boot 整合mybatis 使用xml配置的方式实现增删改查,还介绍了自定义mapper 实现复杂多表关联查询.虽然目前 mybatis 使用xml 配置的方式 已经极大减轻 ...
- BizTalk开发系列(三十八)微软BizTalk Server定价和许可[解读]
做BizTalk的项目一段时间了,但是对BizTalk的价格和许可还不是很了解.给客户设计解决方案时大部分产品都是直接按照企业版的功能来设计,很 少考虑到价格和许可方面的因素,以为这个不是我们的事情或 ...
随机推荐
- easyx的使用
本操作集根据B站学习,借鉴: 视频链接:[C/C++/EasyX]学编程,做游戏,小白快速入门图形编程,零基础入门到精通,学习就是这么快乐_哔哩哔哩_bilibili 初始化时要进行的操作: 记得调用 ...
- 一些奇奇怪怪的js知识
0.关于前端为什么typeof null 得到的结果是 object 对于 null 来说,很多人会认为他是个对象类型,其实这是错误的. 虽然 `typeof null` 会输出 `object`,但 ...
- 力扣374(java&python)-猜数字大小(简单)
题目: 猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字.如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了.你可以通过调用一个预先定 ...
- KubeVela + KEDA:为应用带来“与生俱来”的弹性伸缩能力
简介: 在这篇博文中,我们将简要解释需要考虑的领域,KEDA 如何使应用自动伸缩变得简单,以及为什么阿里云企业分布式应用服务(EDAS)在 KEDA 上完全标准化. 联合作者 | Yan Xun,阿里 ...
- WebStorm2023安装prettier并生效
1.首先去File > Settings > Plugins 里下载并install插件 Prettier 2.在settings里搜索prettier,按图片所示设置一下Apply 3. ...
- kali 的 vim 中不能粘贴复制
kali 的 vim 中不能粘贴复制 进入 vim 命令行模式,输入 :set mouse=c 之后可以正常粘贴复制
- Golang 版本 支付宝支付SDK app支付接口2.0
参考技术贴: https://blog.csdn.net/ming2316780/article/details/86505883 对接文档: https://opendocs.alipay.com/ ...
- 08. C语言函数
[函数基础] 函数用于将程序代码分类管理,实现不同功能的代码放在不同函数内,一个函数等于一种功能,其它函数可以调用本函数执行. C语言规定所有的指令数据必须定义在函数内部,比如之前介绍的程序执行流程控 ...
- ctfshow_web_1(困难题)
CTFshow web1(困难题) 根据前面做题经验,看见登录框基本都是跑一下爆破,弱口令等等 这里用 dirmap 目录爆破爆出来有一个 www.zip 把他下载下来 看了 login.php 和 ...
- 【HarmonyOS NEXT】获取卸载APP后不变的设备ID
1. 背景 在HarmonyOS NEXT中,想要获取设备ID,有3种方式 UDID:deviceinfo.udid,仅限系统应用使用 AAID: aaid.getAAID(),然而卸载APP/恢复设 ...