iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
AI & Data

Apache NiFi - 讓你輕鬆設計 Data Pipeline系列 第 10

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


上一篇
Day9 NiFi - Controller Service
下一篇
Day11 NiFi & NiFi Registry
系列文
Apache NiFi - 讓你輕鬆設計 Data Pipeline30

尚未有邦友留言

立即登入留言