[ETL] Nifi 初體驗 — Inert

更新 發佈閱讀 3 分鐘

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

vocus|新世代的創作平台

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

Nifi 的設計如下:

vocus|新世代的創作平台

1. QueryDatabaseTable

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

vocus|新世代的創作平台

2. ConvertAvroToJSON

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

  • array:會將資料拆分為多筆。
  • none:僅會留存一筆。(哪一筆還需要進一步測試。)
vocus|新世代的創作平台

3. ConvertJSONToSQL

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

vocus|新世代的創作平台

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

vocus|新世代的創作平台

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

  • 在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
當時間變少之後,看戲反而變得更加重要——這是在成為母親之後,我第一次誠實地面對這一件事:我沒有那麼多的晚上,可以任性地留給自己了。看戲不再只是「今天有沒有空」,而是牽動整個週末的結構,誰應該照顧孩子,我該在什麼時間回到家,隔天還有沒有精神帶小孩⋯⋯於是,我不得不學會一件以前並不擅長的事:挑選。
Thumbnail
當時間變少之後,看戲反而變得更加重要——這是在成為母親之後,我第一次誠實地面對這一件事:我沒有那麼多的晚上,可以任性地留給自己了。看戲不再只是「今天有沒有空」,而是牽動整個週末的結構,誰應該照顧孩子,我該在什麼時間回到家,隔天還有沒有精神帶小孩⋯⋯於是,我不得不學會一件以前並不擅長的事:挑選。
Thumbnail
SQL 基本篇 - CRUD、運算子、內建函式
Thumbnail
SQL 基本篇 - CRUD、運算子、內建函式
Thumbnail
ETL是資料倉儲領域中一個重要的概念,全稱為Extract-Transform-Load,中文可譯為"抽取-轉換-載入"。ETL的作用是將來自不同來源的資料抽取出來,經過清理、轉換、整合等處理後,最終將處理好的資料載入到資料倉儲或其他單一的資料存放區
Thumbnail
ETL是資料倉儲領域中一個重要的概念,全稱為Extract-Transform-Load,中文可譯為"抽取-轉換-載入"。ETL的作用是將來自不同來源的資料抽取出來,經過清理、轉換、整合等處理後,最終將處理好的資料載入到資料倉儲或其他單一的資料存放區
Thumbnail
種類 SQL指令分三大部分: 資料定義語言(Data Definition Language,DDL):建立資料表、索引和檢視表等,和定義資料表的欄位。 資料操作語言(Data Manipulation Language,DML):資料表紀錄查詢、插入、刪除和更新指令。 資料控制語言(Dat
Thumbnail
種類 SQL指令分三大部分: 資料定義語言(Data Definition Language,DDL):建立資料表、索引和檢視表等,和定義資料表的欄位。 資料操作語言(Data Manipulation Language,DML):資料表紀錄查詢、插入、刪除和更新指令。 資料控制語言(Dat
Thumbnail
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
Thumbnail
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
Thumbnail
5 月,方格創作島正式開島。這是一趟 28 天的創作旅程。活動期間,每週都會有新的任務地圖與陪跑計畫,從最簡單的帳號使用、沙龍建立,到帶著你從一句話、一張照片開始,一步一步找到屬於自己的創作節奏。不需要長篇大論,不需要完美的文筆,只需要帶上你今天的日常,就可以出發。征服創作島,抱回靈感與大獎!
Thumbnail
5 月,方格創作島正式開島。這是一趟 28 天的創作旅程。活動期間,每週都會有新的任務地圖與陪跑計畫,從最簡單的帳號使用、沙龍建立,到帶著你從一句話、一張照片開始,一步一步找到屬於自己的創作節奏。不需要長篇大論,不需要完美的文筆,只需要帶上你今天的日常,就可以出發。征服創作島,抱回靈感與大獎!
Thumbnail
在supabase裡可以直接從客戶端讀取資料庫中的資料,在設定好RLS的前提之下,更可以對資料庫直接進行新增、修改、刪除等操作。 先進到後台選擇SQL Editor,可以來到SQL編輯器的頁面,如果是本身會寫資料庫相關的SQL內容可以直接點擊上方的New query按鈕,可以開啟一個空白頁面開始編輯
Thumbnail
在supabase裡可以直接從客戶端讀取資料庫中的資料,在設定好RLS的前提之下,更可以對資料庫直接進行新增、修改、刪除等操作。 先進到後台選擇SQL Editor,可以來到SQL編輯器的頁面,如果是本身會寫資料庫相關的SQL內容可以直接點擊上方的New query按鈕,可以開啟一個空白頁面開始編輯
Thumbnail
見諸參與鄧伯宸口述,鄧湘庭於〈那個大霧的時代〉記述父親回憶,鄧伯宸因故遭受牽連,而案件核心的三人,在鄧伯宸記憶裡:「成立了成大共產黨,他們製作了五星徽章,印刷共產黨宣言——刻鋼板的——他們收集中共空飄的傳單,以及中國共產黨中央委員會有關文化大革命決議文的英文打字稿,另外還有手槍子彈十發。」
Thumbnail
見諸參與鄧伯宸口述,鄧湘庭於〈那個大霧的時代〉記述父親回憶,鄧伯宸因故遭受牽連,而案件核心的三人,在鄧伯宸記憶裡:「成立了成大共產黨,他們製作了五星徽章,印刷共產黨宣言——刻鋼板的——他們收集中共空飄的傳單,以及中國共產黨中央委員會有關文化大革命決議文的英文打字稿,另外還有手槍子彈十發。」
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
當代名導基里爾.賽勒布倫尼科夫身兼電影、劇場與歌劇導演,其作品流動著強烈的反叛與詩意。在俄烏戰爭爆發後,他持續以創作回應專制體制的壓迫。《傳奇:帕拉贊諾夫的十段殘篇》致敬蘇聯電影大師帕拉贊諾夫。本文作者透過媒介本質的分析,解構賽勒布倫尼科夫如何利用影劇雙棲的特質,在荒謬世道中尋找藝術的「生存之道」。
Thumbnail
當代名導基里爾.賽勒布倫尼科夫身兼電影、劇場與歌劇導演,其作品流動著強烈的反叛與詩意。在俄烏戰爭爆發後,他持續以創作回應專制體制的壓迫。《傳奇:帕拉贊諾夫的十段殘篇》致敬蘇聯電影大師帕拉贊諾夫。本文作者透過媒介本質的分析,解構賽勒布倫尼科夫如何利用影劇雙棲的特質,在荒謬世道中尋找藝術的「生存之道」。
Thumbnail
有了MySQL後,當然就要下指令來玩玩 能玩爆代表你有天賦,每一次爆炸你又能修復就是成長大躍進的時刻 但是看看你的資料庫空空如也,只有系統DB怎麼辦咧 還好網路上有很多善心人士願意分享範例資料庫供人使用 話不多說就來試試看吧  1. 先找到你要的範例資料庫 範例資料庫下載
Thumbnail
有了MySQL後,當然就要下指令來玩玩 能玩爆代表你有天賦,每一次爆炸你又能修復就是成長大躍進的時刻 但是看看你的資料庫空空如也,只有系統DB怎麼辦咧 還好網路上有很多善心人士願意分享範例資料庫供人使用 話不多說就來試試看吧  1. 先找到你要的範例資料庫 範例資料庫下載
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News