iT邦幫忙

2021 iThome 鐵人賽

DAY 11
0
AI & Data

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

Day11 NiFi & NiFi Registry

Day3 Pipeline 如何做版本控制 - NiFi Registry就有提到 NiFi Registry 的概念,而今天我們來進一步地講一下如何在 NiFi Registry 操作,來讓 NiFi 的 Data Pipeline 做到版本控制。

對接 NiFi Registry

在開始要使用 NiFi Registry 之前,首先要先來設定好 NiFi Registry 的位置,這樣 NiFi 才知道該將版控放到哪一個地方去,首先一樣先來看一下主畫面,在 Global Menu 點選 Controller Setting

接著點選 REGISTRY CLIENT:

然而因為我們是採用 Docker 來建置環境,並且將這 NiFi 和 NiFi Registry 的服務設定在同一個網路下,所以採用 172.17.0.1 來指定 NiFi Registry 的位置,參考如下:

設定好按下 UPDATE 就沒有問題了!

Create Bucket in NiFi Registry

如果各位讀者們還記得我在Day3 Pipeline 如何做版本控制 - NiFi Registry所畫的架構圖,在 NiFi Registry 操作時,如果要開始做版本控制,首先必須要先 Create Bucket,再讓 NiFi 將版控存到對應的 Bucket 底下

所以我們先來建立 Bucket,讀者們若啟動玩服務之後可以點選 http://localhost:18080/nifi-registry/#/administration/workflow 就可以看到如下畫面:

然而當我們點選紅框的 New Bucket 時,會跳出以下畫面,接著輸入 Bucket Name,這邊我輸入 titanic 為例:

接著剛剛原本的畫面,就可以看到我們剛剛所建立的新 Bucket:

如此一來,在 NiFi Registry 的建立 Bucket 步驟就完成了。

開始做版控

一旦我們在 NiFi Registry 的建立完 Bucket,接著帶大家再回來到 NiFi 教如何開始做版控,還記得最小單位是 Processor Group(PG) 這件事嗎?所以我們仍以 PG 作為單位來做範例。

一樣我們在要做版控的 PG 點擊右鍵,可以看到 Version -> Start Version Control:

按下 Start Version Control 之後,我們會看到如下畫面:

此時,NiFi 已經幫我們剛剛在 NiFi Registry 建立的 Bucket synch 過來了,然而底下有一些要再額外設定的config,這裡說明一下:

  • Flow Name
    這個 Flow 名稱,通常會取和 PG 一樣的 Name
  • Flow Description
    對於這個 PG (Flow) 的 Description
  • Version Comments
    這次 commit 的 comment,類似於我們在 git commit -m "" 後面所帶上的描述

所以以我的例子,這邊填完之後長得下圖呈現:

再來當我們按下 Save,會看到 PG 會多一個 綠色打勾的符號,就代表 Commit 成功且開始進入到版控模式:

我們再回過頭來到 NiFi Registry,就可以看到我們剛剛 commit 的結果:

透過上面的操作,我們就可以知道對 Data Pipeline 做版本控制,簡單步驟整理如下:

  1. 設定好 NiFi Registry 位置
  2. 於 NiFi Registry 建立 Bucket
  3. 對你想要做版控的 PG 進行 Start Version Controll
  4. 寫下 Naming 和 Comment
  5. 最後 commit 到 NiFi Registry 即可完成

Modify and Change Version

接下來再繼續介紹一個場景,如果我們後續又在對這個 PG 做了一些修正,像是參數、Processor 或是 Controller Service 的調整等,NiFi 會自動偵測到目前『已不是』最新的版本了,此時會發現到 PG 的符號變成了 黑色米字號:

此時就代表我們若修改完成時,要再提交一個版本上去,這時候再點擊右鍵時會看到 Version 底下的狀態不一樣了:

多出了 3 個功能,介紹說明如下:

  • Commit local changes
    這就是 commit 你剛剛修正完的東西到 NiFi Registry,接著你會發現這次就只要輸入 comment 即可:

  • Show local changes
    會呈現出這次的修正包含哪一些,大概會像如下的畫面:

  • Revert local changes
    直接取消這次的修正,回到最新版的狀況

再來呢,我們還可以讓 PG 回到更早之前的版本,一樣正常的情況下我們點選 Version 時會看到一個 Change version:

接著點選我們想要退到的版本,按下 Change,PG 就會回到當時版本的狀態了:

小總結

以上,就是對於 NiFi 如何透過 NiFi Registrt 來做版本控制的操作,是不是沒有想像中的那麼難呢?希望透過今天的學習,讀者們可以對於這個服務有更熟悉地認識,簡單來說掌握好流程,然後都是以 PG 為單位做版控,那這樣的操作就會很容易上手了。

最後,感謝螢幕前讀者們的瀏覽與閱讀,明天要來講一下 NiFi 如何做到 Monitoring 吧,再讓我們繼續充實自己!

Reference


上一篇
Day10 NiFi - Templates, Labels & Funnel
下一篇
Day12 NiFi - Reporting Task & Bulletin Board
系列文
Apache NiFi - 讓你輕鬆設計 Data Pipeline30

尚未有邦友留言

立即登入留言