[ETL] Nifi 初體驗 — Inert

閱讀時間約 2 分鐘
這次有機會可以測試Nifi,是因為公司想要將用了多年的ETL工具替換掉,因此找了Nifi來做測試。測試的案例,先選擇最簡單的方式:

Backup Case
這看起來簡單的流程,其實對第一次玩Nifi的我,已經是很大的挑戰了。這過程中,遇到最大的問題就在於,Oracle的SQL並不會區分大小寫,但Nifi在判別SQL時,是會有大小寫之分的,因此無論我如何檢查DB或SQL,最後都還是會出現”Table not found, ensure the Catalog…..”的錯誤,最後請專業DBA的幫忙,才查出這個小細節。
Nifi 的設計如下:
Nifi for Insert Flow

1. QueryDatabaseTable
主要就是用SQL將資料從DB拉出來,可以利用原始的欄位填寫,Nifi會自動組成SQL,抑或自己寫SQL去抓。
QueryDatabaseTable Setting

2. ConvertAvroToJSON
將資料型態從Apache專屬的Avro轉變成JSON。什麼原因需要這個Process呢,主要是因為下面"ConvertJSONToSQL",因此才需要將資料留做轉換。其中的JSON container options設定上選擇"array"和"none"在我的測試案例中,會產生不一樣的結果:
  • array:會將資料拆分為多筆。
  • none:僅會留存一筆。(哪一筆還需要進一步測試。)
ConverAvroToJSON Setting

3. ConvertJSONToSQL
將JSON的資料轉換成SQL,SQL可以選擇Insert、Update、Delete。這邊的Table Name以Oracle為例,需填寫大寫,如填寫小寫會出現找不到Table的錯誤訊息。處理SQL的模式是依照?的概念處理的,例如Insert into (Column1,Column2) value (?,?),將?的值放在Attribute裡。
ConvertJSONToSQL Setting

4. 就來到最後的PutSQL,來執行從前一關組成的SQL。設定上沒有特別研究。
PutSQL Setting

做完第一個流程後,心中還有幾個想要加入流程中:
  • 在Insert前多加Delete。
  • 能控制執行的次數,列如多加GenerateFlowFile的Process。
結論: 這個流程上,都沒有用到"Record Reader"和"Record Writer",設定上比較簡單。
avatar-img
2會員
5內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Hedwig Hsu的沙龍 的其他內容
解決完Inert的問題之後,下一個想在測試的流程就是SQL中的Join,是因為這方式在原本的ETL工具中使用最多功能。
解決完Inert的問題之後,下一個想在測試的流程就是SQL中的Join,是因為這方式在原本的ETL工具中使用最多功能。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
在ETL架構中,許多使用者會將S3 Data Lake與Crawlers及Athena結合使用,然而是否可以用Glue Job取代Crawlers呢?本文探討了S3 Data Lake的運作流程,解釋了Crawler、Data Catalog和Glue Job在數據處理中的角色與功能差異。
Thumbnail
船槳用力插入水中激濺起嘩啦、嘩啦、嘩啦的破水聲!一聲聲地劃破清晨的寧靜,夏季五點多,天早已透亮,連著我十位槳手正在推動龍舟在碧潭的水面高速前進!船首傳來教練聲:手打直、身體要彎、腳要蹬讓船身飛起來,大家加油! 腦中的思敘回到出發前……
Thumbnail
玩具租借服務介紹及心得分享,由公司根據不同階段寄送玩具,讓孩子盡情嘗試後再決定是否續租。透過觀察孩子興趣可減少買錯玩具的機會,也讓孩子擁有的玩具更多樣性,提供瞭解玩具種類的參考。服務便利又貼心,可以有效減少玩具被閒置的情況。期待未來更多人一起加入。
Thumbnail
去了旭山動物園看企鵝、科學教育館,也第一次吃了懷石料理~跟我們一起去旭川逛逛吧~
Thumbnail
我們去北海道玩耍,第一次體驗商務艙與機場貴賓室,再訪我們的愛店~
Thumbnail
ETL是資料倉儲領域中一個重要的概念,全稱為Extract-Transform-Load,中文可譯為"抽取-轉換-載入"。ETL的作用是將來自不同來源的資料抽取出來,經過清理、轉換、整合等處理後,最終將處理好的資料載入到資料倉儲或其他單一的資料存放區
Thumbnail
歌名為玫瑰與盔甲。大家應該都馬上想到小王子的隱喻。但愛玫瑰一定是小王子那樣嗎? Antoine Elie這首歌編曲旋律聽起來滑順偏甜,乍聽只聽出唱的是給玫瑰的絮語。玫瑰原來是有刺的,而愛包容了玫瑰的刺。再仔細唱吧,愛足以包容刺,拯救了玫瑰。真的是這樣嗎?
Thumbnail
「初體驗瑜伽:深刻而痛苦的啟發」 (瑜伽課沒有拍照,附上拳擊以及跳床的相片) 初次瑜伽的痛苦體驗確實令人難忘。 在全新的瑜伽教室裡,我興奮地回應女教練,成為六位同學中唯一的新生。 教練友善地提醒我,新同學可以慢慢來,不用勉強。我回應說沒問題,但內心卻想著既然來了,就應該全力以
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
在ETL架構中,許多使用者會將S3 Data Lake與Crawlers及Athena結合使用,然而是否可以用Glue Job取代Crawlers呢?本文探討了S3 Data Lake的運作流程,解釋了Crawler、Data Catalog和Glue Job在數據處理中的角色與功能差異。
Thumbnail
船槳用力插入水中激濺起嘩啦、嘩啦、嘩啦的破水聲!一聲聲地劃破清晨的寧靜,夏季五點多,天早已透亮,連著我十位槳手正在推動龍舟在碧潭的水面高速前進!船首傳來教練聲:手打直、身體要彎、腳要蹬讓船身飛起來,大家加油! 腦中的思敘回到出發前……
Thumbnail
玩具租借服務介紹及心得分享,由公司根據不同階段寄送玩具,讓孩子盡情嘗試後再決定是否續租。透過觀察孩子興趣可減少買錯玩具的機會,也讓孩子擁有的玩具更多樣性,提供瞭解玩具種類的參考。服務便利又貼心,可以有效減少玩具被閒置的情況。期待未來更多人一起加入。
Thumbnail
去了旭山動物園看企鵝、科學教育館,也第一次吃了懷石料理~跟我們一起去旭川逛逛吧~
Thumbnail
我們去北海道玩耍,第一次體驗商務艙與機場貴賓室,再訪我們的愛店~
Thumbnail
ETL是資料倉儲領域中一個重要的概念,全稱為Extract-Transform-Load,中文可譯為"抽取-轉換-載入"。ETL的作用是將來自不同來源的資料抽取出來,經過清理、轉換、整合等處理後,最終將處理好的資料載入到資料倉儲或其他單一的資料存放區
Thumbnail
歌名為玫瑰與盔甲。大家應該都馬上想到小王子的隱喻。但愛玫瑰一定是小王子那樣嗎? Antoine Elie這首歌編曲旋律聽起來滑順偏甜,乍聽只聽出唱的是給玫瑰的絮語。玫瑰原來是有刺的,而愛包容了玫瑰的刺。再仔細唱吧,愛足以包容刺,拯救了玫瑰。真的是這樣嗎?
Thumbnail
「初體驗瑜伽:深刻而痛苦的啟發」 (瑜伽課沒有拍照,附上拳擊以及跳床的相片) 初次瑜伽的痛苦體驗確實令人難忘。 在全新的瑜伽教室裡,我興奮地回應女教練,成為六位同學中唯一的新生。 教練友善地提醒我,新同學可以慢慢來,不用勉強。我回應說沒問題,但內心卻想著既然來了,就應該全力以