vocus logo

方格子 vocus

[ETL] Nifi 初體驗 — Inert

更新 發佈閱讀 3 分鐘

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

raw-image

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

Nifi 的設計如下:

raw-image

1. QueryDatabaseTable

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

raw-image

2. ConvertAvroToJSON

將資料型態從Apache專屬的Avro轉變成JSON。什麼原因需要這個Process呢,主要是因為下面"ConvertJSONToSQL",因此才需要將資料留做轉換。其中的JSON container options設定上選擇"array"和"none"在我的測試案例中,會產生不一樣的結果:

  • array:會將資料拆分為多筆。
  • none:僅會留存一筆。(哪一筆還需要進一步測試。)
raw-image

3. ConvertJSONToSQL

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

raw-image

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

raw-image

做完第一個流程後,心中還有幾個想要加入流程中:

  • 在Insert前多加Delete。
  • 能控制執行的次數,列如多加GenerateFlowFile的Process。

結論: 這個流程上,都沒有用到"Record Reader"和"Record Writer",設定上比較簡單。

留言
avatar-img
Hedwig Hsu的沙龍
2會員
5內容數
Hedwig Hsu的沙龍的其他內容
2022/05/20
文字對於壓抑的自己,是人生各式酸甜苦辣的重要出口。
2022/05/20
文字對於壓抑的自己,是人生各式酸甜苦辣的重要出口。
2022/05/15
Date:2022/05/15 今天寫完離別文章後,情感也開竅了,開始在這熟悉的房間裡,尋找摸不到的影子。
2022/05/15
Date:2022/05/15 今天寫完離別文章後,情感也開竅了,開始在這熟悉的房間裡,尋找摸不到的影子。
2022/01/18
回想第一次發作的時候是在高中時,發生的狀況印象不深刻,只有幾個關鍵字「熱」、「非常暈」、「虹瑾與倪君」、「學長」、「老爸」與「胃炎」。 最後醫生並未檢查出有發炎反應,開出的診斷是「暈眩症」,很快的在兩三個小時後就離開醫院了,戴著室友辛苦往返公司,頂著大雨帶回來的安全帽回家了。
2022/01/18
回想第一次發作的時候是在高中時,發生的狀況印象不深刻,只有幾個關鍵字「熱」、「非常暈」、「虹瑾與倪君」、「學長」、「老爸」與「胃炎」。 最後醫生並未檢查出有發炎反應,開出的診斷是「暈眩症」,很快的在兩三個小時後就離開醫院了,戴著室友辛苦往返公司,頂著大雨帶回來的安全帽回家了。
看更多
你可能也想看
Thumbnail
ETL是資料倉儲領域中一個重要的概念,全稱為Extract-Transform-Load,中文可譯為"抽取-轉換-載入"。ETL的作用是將來自不同來源的資料抽取出來,經過清理、轉換、整合等處理後,最終將處理好的資料載入到資料倉儲或其他單一的資料存放區
Thumbnail
ETL是資料倉儲領域中一個重要的概念,全稱為Extract-Transform-Load,中文可譯為"抽取-轉換-載入"。ETL的作用是將來自不同來源的資料抽取出來,經過清理、轉換、整合等處理後,最終將處理好的資料載入到資料倉儲或其他單一的資料存放區
Thumbnail
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
Thumbnail
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
Thumbnail
種類 SQL指令分三大部分: 資料定義語言(Data Definition Language,DDL):建立資料表、索引和檢視表等,和定義資料表的欄位。 資料操作語言(Data Manipulation Language,DML):資料表紀錄查詢、插入、刪除和更新指令。 資料控制語言(Dat
Thumbnail
種類 SQL指令分三大部分: 資料定義語言(Data Definition Language,DDL):建立資料表、索引和檢視表等,和定義資料表的欄位。 資料操作語言(Data Manipulation Language,DML):資料表紀錄查詢、插入、刪除和更新指令。 資料控制語言(Dat
Thumbnail
SQL 基本篇 - CRUD、運算子、內建函式
Thumbnail
SQL 基本篇 - CRUD、運算子、內建函式
Thumbnail
在supabase裡可以直接從客戶端讀取資料庫中的資料,在設定好RLS的前提之下,更可以對資料庫直接進行新增、修改、刪除等操作。 先進到後台選擇SQL Editor,可以來到SQL編輯器的頁面,如果是本身會寫資料庫相關的SQL內容可以直接點擊上方的New query按鈕,可以開啟一個空白頁面開始編輯
Thumbnail
在supabase裡可以直接從客戶端讀取資料庫中的資料,在設定好RLS的前提之下,更可以對資料庫直接進行新增、修改、刪除等操作。 先進到後台選擇SQL Editor,可以來到SQL編輯器的頁面,如果是本身會寫資料庫相關的SQL內容可以直接點擊上方的New query按鈕,可以開啟一個空白頁面開始編輯
Thumbnail
正在尋找 SeaTable / Airtable 以外的選擇?NocoDB 也許是個不錯的自行安裝的選擇,還是一項開源項目。
Thumbnail
正在尋找 SeaTable / Airtable 以外的選擇?NocoDB 也許是個不錯的自行安裝的選擇,還是一項開源項目。
Thumbnail
我自己是使用微軟的SQLIT軟體 這個軟體的操作上 沒有辦法直接用滑鼠點選或是拖拉的方式來看到你想看到的表格 都是要下指令的像是要看data.sqlite中的user這個table我就必須下 才能把table調閱出來看 那做為一個python三年工作經驗的工程師通常我不會直接在SQLIT軟體 裡面下
Thumbnail
我自己是使用微軟的SQLIT軟體 這個軟體的操作上 沒有辦法直接用滑鼠點選或是拖拉的方式來看到你想看到的表格 都是要下指令的像是要看data.sqlite中的user這個table我就必須下 才能把table調閱出來看 那做為一個python三年工作經驗的工程師通常我不會直接在SQLIT軟體 裡面下
Thumbnail
有了MySQL後,當然就要下指令來玩玩 能玩爆代表你有天賦,每一次爆炸你又能修復就是成長大躍進的時刻 但是看看你的資料庫空空如也,只有系統DB怎麼辦咧 還好網路上有很多善心人士願意分享範例資料庫供人使用 話不多說就來試試看吧  1. 先找到你要的範例資料庫 範例資料庫下載
Thumbnail
有了MySQL後,當然就要下指令來玩玩 能玩爆代表你有天賦,每一次爆炸你又能修復就是成長大躍進的時刻 但是看看你的資料庫空空如也,只有系統DB怎麼辦咧 還好網路上有很多善心人士願意分享範例資料庫供人使用 話不多說就來試試看吧  1. 先找到你要的範例資料庫 範例資料庫下載
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News