NiFi 學習 — kafka入庫mysql

好記憶不如爛筆頭,能記下點東西,就記下點,有時間拿出來看看,也會發覺不一樣的感受.

介紹下從kafka中獲取數據,然後放入到 mysql 的操作!

目錄

目標

一、準備工作

1.kafka集羣

2.zookeeper集羣

3.數據表

4. 造數程序

5.發送程序

二、NIFI UI配置

1.kafka的處理器

2. EvaluateJsonPath 處理器配置

3.SplitJson處理器

4.EvaluateJsonPath 處理器

5.PutSQL處理器

6.Setting 的配置信息

7.Scheduling的設置

8.完整的配置圖如下

9.執行結果


目標

     模擬一個考試系統(學生,老師,成績),將考試系統的所有數據都放入到kafka的流中,用 nifi 的組件去去拿取出來,並放入到mysql的數據庫中去的這樣一個業務操作。

一、準備工作

1.kafka集羣

 必須要有個kafka集羣或者有一個單機的kafka,用來存放數據。具體怎麼安裝kafka或者kafka集羣,網絡中有很多,這裏不再複述。注意:在 kafka 的 server.properties 中要配置如下項目,否則容易出錯,連接不上的問題。

host.name=192.168.10.216

listeners=PLAINTEXT://192.168.10.216:9092
 

2.zookeeper集羣

nifi是基於zookeeper集羣來實現協調操作的,那麼一個必備的zookeeper集羣是少不了的,kafka流式處理同樣也是要zookeeper的,所以zookeeper是一定要安裝好的,如果是單機,那就統一使用單機處理。

安裝 zookeeper 的時候,一定要注意 zookeeper 的dataDir 目錄一定要跟kafka的config目錄下的目錄是一致的。

 

3.數據表

數據表在一個sql文件裏面,具體信息如下:

4. 造數程序

5.發送程序

二、NIFI UI配置

      需要在nifi的UI界面上配置上kafka的處理器,分隔的處理器,轉化校驗處理器,放入數據庫處理器等,那麼現在我們一步一步來操作:

1.kafka的處理器

拉取一個kafka的處理器,並做如下配置:,主要是這個配置,配置出錯,那麼可能導致沒有辦法進行下一步操作。

紅線部分的都是需要注意的地方,如果配置出錯,那麼可能結果也會出錯!

 

2. EvaluateJsonPath 處理器配置

拉取一個EvaluateJsonPath 處理器,用來將kakfa內的jsong數據做簡單的處理,主要是得到數據標識和返回的消息,具體配置如下:

紅線部分也是要特別注意的地方,如果配置出錯,那麼結果也會出錯.

 

3.SplitJson處理器

配置SplitJson處理器,用來獲取json串中的json數據對象,這樣方便後邊用來入庫.

Json path 這塊的配置很重要,如果配置出錯,那麼得到的數據json串也會出錯,自然結果也會出錯。

4.EvaluateJsonPath 處理器

拉取一個EvaluateJsonPath 處理器,用來將kakfa內的json數據做簡單的處理,主要是得到數據具體項目,具體配置如下:

此操作的意義是 : 將json串中的數據條目,使用 $ 表達式的方式獲取數據值,在數據走到這個處理器的時候,就可以拿到對應的數值。

5.PutSQL處理器

拉取一個PutSQL,設置連接池對象,和insert 語句操作,具體如下:

在此,DBCPConnectionPool的連接池配置,這裏在使用的時候,就可以看看連接池的配置:

主要配置這些操作,就可以讓連接池生效管用,前提是 : 一定要配置正確相關信息。

6.Setting 的配置信息

每一個處理器,都有自己的配置信息需要處理,所以要格外注意配置信息的配置:

我們再使用任何處理器的時候,都會要讓設置automatically terminate relationships的

這裏設置表示你要丟棄哪些關聯,這裏主要是丟棄failure 和 unmatched的項目。

7.Scheduling的設置

用紅框標註的,是需要注意的地方,表示每一個處理器在處理的時候,可以配置的項目.

8.完整的配置圖如下

這個表示把數據放入到kakfa的處理器中,然後從處理器中把josn數據取出來,格式化,然後組合成insert into 的插入sql語句,插入完成之後,就可以去數據庫中查找最終的結果。

9.執行結果

可以通過數據庫來查看數據錄入的正確性.通過以上的操作,開啓處理器後,可以看見數據庫的結果爲 :

如此操作之後,就可以將我們放入kafka的json格式的老師數據,同學數據和分數數據拉取下來,放入到我們的mysql數據庫中。

如果需要源碼或者需要這個的設計文檔,請微信搜索:codingba ,留意我會發相關資料。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章