Day10 NiFi - Templates, Labels & Funnel

今天我们要讲的东西有点多,要一次讲三个,分别是 Templates, Labels & Funnel,虽然看起来一次讲这麽多感觉有点复杂,但其实概念跟操作都相较於前面十分简单,所以不用太担心。

什麽是 Templates?

Template 在该系列文一开始就有提到,是可以让我们将 Data Pipeline 汇出且汇入(XML)到其他的机器与环境上。而操作的单位也是Processor Group(PG)。接下来,来快速看一下如何操作吧:

Export Templates

首先,我们可以在我们要汇出的 PG 点选右键,选择 Create Templates

接着就输入 Template 的 Name 和 Description,输入完按下 Create,如此一来 NiFi 就会有一份关於这个 PG 的 Templates:

我们回到 Global Menu,点选Templates:

接着我们就能看到刚刚 Create 好的 Template,此时就可以点选右手边的红框做 Download 的动作,NiFi 就会汇出 XML 档案:

Import Templates

接下来我来继续说明一下如何做汇入的动作,一样我们可以看到主画面左手边红框有一个类似上传的 icon:

接着点选刚刚下载下来的 XML 档案做 upload 的动作:

然而跳出 Template successfully imported.的讯息时则代表汇入成功,我们就可以在主画面用拖拉的方式来使用刚刚汇入好的 Templates:

选择你要汇入的 Template 名称:

最後就可以看到刚刚汇出的 PG 了:

这样的操作是不是非常简单,这里我也提醒几个小地方给各位读者们:

  1. 当有很多 Processor Group 需要做转移时,可以透过 NiFi 原生的 API,或是Toolkit 来做自动化汇出,就不需要用手点击了
  2. Templates 会把所有相关的 property 设定一同汇出,但要注意 Controller Service 再汇入到新环境时,会是 Disabled的状态,所以当要在使用时记得在 Enabled 起来,详细操作在前一篇有教给各位。

什麽是 Labels?

简单来说就是个『便利贴』的意思,可以去让使用者提供更多描述这个 PG 或是 Data Pipeline 的说明:

拖拉下来之後,会看到一个『黄布』,点击他就可以输入你要的描述说明:

最後输入完之後,就会呈现类似这样的画面:

使用者再依自己的需求来做排版与字型大小选择,是不是很简单呢。

什麽是 Funnel?

最後来介绍一下何谓 Funnel,在许多的应用场景,我们可能会建立许多 Connection,而且指向同一个 Processor。

举例来说, 我们可能会做一些监控机制,希望在 Pipeline 当中有问题时,就透过 PutSlack 这个 Processor 来通知到 Slack 的 Channel,他的方式可能长得像下图红框这样:

你会发现当 Pipeline 当中 Processor 越多时,对於PutSlack 这个 Processor 来说,Connection 就会很多,进而造成可读性很差,此时我们就可以透过 Funnel 来美化解决一下:

我们就会看到在 PutSlack 之前有一个 Funnel 来接收全部的 Connection,後续再统一一条对接到 PutSlack 即可。

小总结

以上是关於 Templates, Labels & Funnel,是不是很简单?其实操作上真的没有难度,只是都是一个帮助我们增加可读性、或是环境转移的小功能,当後续若有更复杂的 Data Pipeline 时,就可以透过这些小功能来增加排版与优化。

明天来讲 NiFi Registry 的操作,来教大家如何对 PG 做版本控制!

Reference


<<:  Day10 PHP数据类型--基本类型之数字与布尔型

>>:  Day10-JDK查看虚拟机配置讯息工具:jinfo

[30天 Vue学好学满 DAY18] Vuex-1

Vuex 状态管理 前面提到了Event Bus可以做到全域的事件监听管理,但当系统逐渐扩张,这些状...

[Day - 19] - Spring 例外处理之优雅化客制化错误讯息原理与设计

Abstract 相信许多人都有遇过例外处理的事件,但又不想要让内部核心的错误资讯呈现在前端上,仅记...

30天打造品牌特色电商网站 Day.11 CSS框架-Bootstrap5

昨天已经初步介绍几个简单常用的bootstrap语法, 今天来看看几个也是好用、比较详细或特殊的情况...

[Day16] trunk 以及 Counter 范例解说 (Yew wasm)

这是我写第二次了,重新整理让我的文章没了 (中指 然後我这两天在写 Yew 时遇到了 HtmlAud...

Day22 类别与物件--魔术方法2 及 封装private

物件导向的封装特性 封装特性:在一个物件产生之後,物件的部分成员属性和成员方法在逻辑上是不允许在物件...