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


<<:  【Day 06】领域驱动设计的战略设计(Strategic Design)

>>:  用一半的时间做两倍的事

Day7. 活用Ruby的Time,人人都可以成为时间魔术师

时间永远是人生的一大问题,但在`Ruby的世界中,却不是什麽问题。只要我们熟悉一些时间上的技巧,基本...

Day1 Redis环境准备

前言 Redis 是由义大利人Salvatore Sanfilippo所开发的Key-value资料...

撰写API端的第一个Flask API-以tick为例

上上篇已经写了一个Flask API的Hello World, 现在我们的Flask API要开始串...

Day 26 一直线的前进_____ 不能断啊!

我们不能总在弹性限度里活动,要爆发,要超越,才会有质的提高。 《iT邦帮忙铁人赛的观点》(以下简称铁...

Day23 - 中断...

开头,先跟追踪此系列的读者道歉, 我失败了。 是的,我决定在这天为我的系列划下一个不是很好的句点,却...