【資料工程】關於 Airbyte 的介紹、優缺點以及個人使用心得

  1. 什麼是 Airbyte?
  2. 為什麼要選擇 Airbyte?
  3. 關於 Airbyte 的優點
    1. 介面友善
    2. No-Code & 可重複使用的 connectors
    3. 內建 Connector 一鍵更新版本的功能
    4. 不讓 Schema Change 搞壞 Pipeline
  4. Airbyte 目前還是有些小缺點
    1. 無法管理 Secrets 和版本
    2. 開源版的 Airbyte 免費,但需要自架伺服器成本
    3. Metadata 增加儲存成本
    4. Connections 介面資訊不足
    5. 中文欄位名不支援
  5. 總結

什麼是 Airbyte?

在資料工程領域,最常見的工作內容就是處理 ETL/ELT Pipeline(Extract, Load & Transform),現在 ELT 架構比 ETL 更加普及,因為 ETL 會先將資料進行處理後才儲存,就犧牲了資料的彈性(如果後續想要的資料長不一樣會很麻煩),ELT 則是從資料來源先儲存 Raw data,之後有需要做任何處理和變更都會更方便。

Airbyte 是一個開源的資料整合工具,主要是用來建立 ELT Pipeline 中的 EL,也就是把數據從一個來源同步到另一個目的地做儲存,Airbyte 提供很多預先定義好的 Connectors,使用者只要輸入一些資訊就可以建立好一條完整的 EL Pipeline,近期我也花了不少時間研究並嘗試使用 Airbyte,這篇文章就記錄一些心得感想。

為什麼要選擇 Airbyte?

做 EL 的工具很多,就我所知市面上比較熱門的應該是 Fivetran,但 Fivetran 算是需要付費的工具,而且並沒有做開源,因此我覺得 Airbyte 在開源+免費的這部分很有優勢,截至撰文的此時(2024 年 6 月)GitHub 星數已經穩定上升到快 15K。

閱讀更多»

【資料工程】關於 Data Lakehouse 的崛起與目前主流框架

  1. 前言
  2. Data Lakehouse 的崛起
  3. 目前 Data Lakehouse 主流框架
  4. 個人感想
  5. 2024.10.13 補充
  6. 參考資料

前言

這幾年數據量增加速度越來越快,過去很多工具都標榜 Petabyte 等級,但今年開始有些公司的數據量已經達到 Exabyte (EB) 等級,例如 Uber 在近期的技術文章中就有提到他們 Hadoop 數據量已經超過 1 EB。

按照過去已經成熟普及的 Data Lake + Data Warehouse 體系,這麼大量的數據進到 Data Lake 後,再做處理儲存到 Data Warehouse 的流程,除了會造成非常大量的資料移動、資料處理、重複的數據產生之外,還需要維護複雜的大型 ETL Pipeline(Data Engineer 的惡夢…)

Data Lakehouse 的崛起

而這一兩年崛起的 Data Lakehouse 就是在解決這樣的問題,Data Lakehouse 通常會採用 Zero-copy + Open Table Format 的方式,讓 Data Lake 數據也兼具 Warehouse 的功能。

例如 Dashborad 使用的資料其實是直接取用自 Data Lake 的 Raw Data,等於直接省去了 Data Warehouse 這一層,這樣節省下來的成本會非常驚人!

目前 Data Lakehouse 主流框架

閱讀更多»

資料傳輸效能提升 70%!實測 GCP 的 gcloud storage 與 gsutil 指令的差異

  1. 前言
  2. 什麼是 gsutil 指令?
  3. 什麼是 gcloud 指令?
  4. 官方建議使用 gcloud storage 取代 gsutil
  5. 自行實測結果
    1. 實測環境
    2. 實測結果表
    3. 實測 1:複製一個 249.1 MiB 小型檔案
      1. gsutil cp: 5.4 sec
      2. gcloud storage cp: 3.2 sec ( Speed Up 40% )
    4. 實測 2:複製一個 1.0 GiB 大型檔案
      1. gsutil cp: 24 sec
      2. gcloud storage cp: 6.3 sec ( Speed Up 74% )
  6. 總結
  7. 補充資料

前言

在資料工程師的工作中,常會使用雲端 Google Cloud Platform (GCP) 的 Google Cloud Storage (GCS) 作為 Data Lake 儲存一些非結構化資料,而操作 GCS 的指令我都是用 gsutil 來進行,但近期發現有另一個指令是 gcloud storage ,所以這篇文章記錄我針對這兩種指令實測後發現的差異,以及官方文件的建議。

什麼是 gsutil 指令?

  • gsutil 是一個 Python application,主要用來讓使用者可以透過 Command Line 操作 Cloud Storage,操作包含:
    • Creating and deleting buckets.
    • Uploading, downloading, and deleting objects.
    • Listing buckets and objects.
    • Moving, copying, and renaming objects.
    • Editing object and bucket ACLs.

什麼是 gcloud 指令?

  • gcloud 是 GCP 主要的 CLI 工具,用途更廣不限於 GCS,操作包含:
    • Manages authentication, local configuration and developer workflow.
    • Interactions with the Google Cloud APIs.
閱讀更多»

只要 5 分鐘!讓你的 Mac 擁有美觀的 Terminal!2025 最新最簡單快速的 Zsh + iTerm2 + Powerlevel10k 設定教學

  1. 前言
  2. 環境需求
  3. 安裝順序
    1. 1. 安裝 zsh
    2. 2. 安裝 oh-my-zsh
    3. 3. 安裝 iTerm2
    4. 4. 安裝主題 Powerlevel10k
    5. 5. 設定主題
    6. 完成!
  4. 進階推薦:安裝 zsh 的 Plugins
    1. 1. 安裝
    2. 2. 設定 Plugins 並啟用
  5. 如果 VS Code 的 Terminal 無法正常顯示圖示的話
  6. 參考資料

前言

最近在重新設定 Mac 的 Terminal 時,發現現在關於 Zsh 和 iTerm2 的網路文章都太舊、很多指令已經不適用、安裝順序也很混亂,對於新手來說我覺得會很挫折,所以決定用最簡潔的方式把自己最近設定的流程記錄下來,目的是希望新手們也能輕鬆快速擁有一個美觀好用的 Terminal (幾年前我還是新手的時候,真的是設定到很崩潰…)

環境需求

  1. MacOS
  2. 已安裝 Homebrew
  3. 已安裝 Git

安裝順序

請按照 1~5 步驟的順序,在 Terminal 中執行指令

1. 安裝 zsh

2. 安裝 oh-my-zsh

3. 安裝 iTerm2

4. 安裝主題 Powerlevel10k

5. 設定主題

開啟 iTerm 並執行:

  1. 按下 i 切換成 insert 模式,往下拉會看到 ZSH_THEME,將它設定為 ZSH_THEME="powerlevel10k/powerlevel10k",輸入 :wq 儲存並離開
  2. 執行指令:exec $SHELL
  3. 照著互動式的選擇題,依自己需求和喜好去輸入對應字母數字,最後就會自動套用到設定檔(若沒有跳出互動式設定或是想要再次調整,隨時可執行指令 p10k configure 去做設定)

完成!

恭喜!你的 Terminal 已成功美化!

(內建的 Tango Dark 主題就已經很好看)

如果想要讓使用體驗更升級的話, 請往下繼續閱讀~

閱讀更多»

【轉職】非本科從零開始轉職工程師的心路歷程(包含給轉職者的建議)

先自我介紹一下,作者 Jumping 我本人 2019 年以前從來沒碰過程式,透過自學資料科學相關課程,目前是有三年資料領域工作經驗的資料工程師 Data engineer,這篇文章記錄了我從自學到轉職過程的心路歷程,以及給同樣想要轉職的朋友的建議。

先聊聊我的背景

或許我跟大多數人一樣,在上大學前也完全不知道自己要念什麼科系,當時只想說「總之就是三類組,然後分數到哪就去哪」, 後來大學念了食品科學系,雖然後來也是有找到一點熱情,但畢業後仍然不知道自己要什麼,看到身邊不少朋友選擇繼續念碩士,我也憑著那一點熱情考了食品科學相關的研究所,所以在我的六年學生時期是完全沒有碰過程式,大部分都是生物和化學相關的課程和實驗。

當完兵出了社會,第一份工作理所當然的選擇進了食品業做研發,當時還常常被面試官問「為什麼你要做食品研發?」,老實講,我還真的回答不出來。

這種茫然困惑、不知道自己想要做什麼的狀態,一直持續到我出社會幾個月後,接觸程式語言時才開始產生變化。

接觸程式的過程

拿到工作的薪水後,我開始想該如何做投資上的運用,這時候我開始研究公司的財報、技術分析線圖等散戶會做的一些事,在查資料時發現很多人會使用 Python 自己寫爬蟲和畫線圖,於是我開始一點一點地學習怎麼樣寫 Python 語法,後來遇到有些股票網站資訊和圖表是需要付費訂閱才能觀看時,也試著自己按照那些付費圖表的邏輯去編寫程式,並嘗試視覺化出我心中所想的圖表。

(至於我自學的方式和課程,後續的文章會再做說明)

為何轉職?以及轉職時遇到的困難?

在這樣反覆學習和實作的過程中,漸漸發現自己對於寫程式收集及處理資料很感興趣,也很享受把想法和創意透過程式作品實踐出來的過程和成就感,於是就開始思考自己是否有機會轉職做一位工程師,而當時會想轉職很大的原因是:

  • 覺得大數據是未來趨勢,所有公司將來都會需要數據來輔助決策,因此打算往數據方面的工程師發展
  • 當然薪資待遇也很重要,我待的食品業算是傳產,薪資天花板比較低,如果轉職的話比較有發展空間

但同時也要思考許多實際上的困難

  • 因為領域跨很多,所以要補的技術和知識實在太多
  • 自己當時因為研究所 + 當兵 + 工作兩年已經滿 28 歲,要怎麼跟更年輕的肝競爭,還來得及轉嗎?
  • 要離職專心自學嗎?我自己經濟狀況是否允許?

調適心態、面對挑戰

面對這些困難,我自己仍然做了轉職的決定,是因為有了心態上的調適,像是技術不足的部分我可以靠上課學習來補足,也選擇了在繼續工作的狀態下持續自學,讓我不用擔心經濟上的問題。

另外一個我覺得很重要的心態突破,就是評估了利弊之後,好好想一下「對自己來說,最糟的狀況是什麼?」,我自己的答案是「大不了我就是轉職失敗,然後回食品業工作」,所以其實現在轉職並不會有多糟的後果,也是因為這樣想,我才毅然決然繼續往轉職資料工作者的路前進。

你也想要轉職嗎?

當我過了兩三年,回顧我的轉職過程時,我覺得有幾點人生體悟,可以給想要轉職的朋友一些參考:

– 確立目標

凡事都需要一個清楚明確的目標,才能讓我們走在正確的路上!

– 動手實作

不論是在什麼領域,學習都不能只有輸入,最重要的還是輸出,學了之後一定要自己動手做,像是當時我自己的 Side Project 就幫助我找到工作。

– 放下「沉沒成本」

其實不會有所謂「真正準備好」的時候,何時開始都不嫌晚,最適合開始進行的時機就是「現在」,不要因為「沉沒成本」而委屈求全。我到現在還是很感謝當時的我所做的選擇,因為沒有當初的「捨」,就沒有現在的「得」

– 列出恐懼與困難

把自己目前想得到的恐懼和困難都寫下來,如果自己還在為了轉職而卻步,想想這些困難是「知識技術」上的挑戰?還是其實是「勇氣」的挑戰呢?列出了所有的恐懼並面對它們,說不定會發現其實自己離目標沒有想像中的遠喔!

如果你正在為了要不要轉職而猶豫不決,希望我的這些經驗能幫助到你! 也歡迎把文章分享給正在轉職的朋友們!