[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",設定上比較簡單。
2會員
5內容數
留言0
查看全部
發表第一個留言支持創作者!
Hedwig Hsu的沙龍 的其他內容
解決完Inert的問題之後,下一個想在測試的流程就是SQL中的Join,是因為這方式在原本的ETL工具中使用最多功能。
解決完Inert的問題之後,下一個想在測試的流程就是SQL中的Join,是因為這方式在原本的ETL工具中使用最多功能。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
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
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
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
「初體驗瑜伽:深刻而痛苦的啟發」 (瑜伽課沒有拍照,附上拳擊以及跳床的相片) 初次瑜伽的痛苦體驗確實令人難忘。 在全新的瑜伽教室裡,我興奮地回應女教練,成為六位同學中唯一的新生。 教練友善地提醒我,新同學可以慢慢來,不用勉強。我回應說沒問題,但內心卻想著既然來了,就應該全力以