資料工程師,你都在做些什麼?

在這篇文章中將會介紹資料工程師是什麼,日常的工作內容

Duncan Kuo
KKday Tech Blog
7 min readSep 8, 2022

--

Photo by Adam Nowakowski on Unsplash

你是否正打算踏入資料工程的領域而正猶豫不決呢? 恭喜你,你已經做出個不錯的選擇。

資料工程師就像是資料的保母一樣,而資料就是我們的孩子,目標是對資料的一生照顧得無微不致,資料的一生包含了資料格式擬定、萃取、映射、轉換、品質、載入、分析等。

總而言之,我們的任務是建構和維護能夠為公司蒐集、儲存和分析大資料的系統。

Photo on lakefs.io

在對資料工程師基本的認識後,讓我們來看看資料工程師都在做些什麼吧,各章節也容我分享一下在 KKday 做 Data 是怎樣一番體驗

了解資料需求方

踏入資料工程總會有接不完的資料需求,然而資料的起源總來自於人性,身為資料工程師可以根據黃金圈法則一步步了解需求方的想法以及對公司了好處,進而言之做出最佳的判斷。

在 KKday 來說資料需求從四面八方而來,部門涵括行銷、業務、客服、資訊等,因需求方所涵蓋範圍非常之廣,因此我們成立了資料需求小組,團隊組成由各個資料團隊包含 BI 、AI、Data 等團隊,共同依照黃金圈法則了解需求方並制定嚴謹規範,不讓我們辛苦產出的黃金白白流失掉。

  • 為什麼 (WHY) — — 了解需求方為什麼需要這個資料。
  • 如何 (HOW) — — 該如何獲取這個資料以及如何將此資料運送至指定的目的地。
  • 什麼 (WHAT) — — 這個資料能帶給需求方甚至公司什麼影響與價值。

身為資料工程師除了會蒐集符合需求的資料,也需要有判斷獲取資料所帶來的價值與工時的衡量,做出最符合效益的決定。

建立資料流

資料工程有將近 80 % 的工作量都在搭建資料流,確保對的源頭以及正確的出口是我們後續資料建模與分析最重要的基底,而整個資料流動的過程不外乎圍繞在萃取(extract)、轉換(transform) 和載入(load)。

根據所需的資料類型大致可分為兩種管道:

  • 流式管道 (streaming) — — 蒐集連續不間斷的資料,這類型的資料大多以時間序列為主。
  • 批量處理管道 (batch-focused) — — 定期批量蒐集資料,常見的有透過 API 獲取客戶公司提供的相關資料,以及使用爬蟲抓取網頁資訊。

為了提供更即時且更有影響力的推薦商品,在 KKday 有將近 70 % 的推薦引擎都是仰賴 streaming,經由流式運算每分每秒算出用戶的千人千面,每當用戶想法改變導致行為不一樣了,我們皆能及時觸發提供最具影響力的推薦結果。

最後,這些資料管道從各種源頭蒐集相關資料,並將資料導入各個目的地,例如:data lake、data warehouse、data lakehouse。

提供可使用資料的平台

當蒐集完資料後我們完成了第一步,我們還必須重塑與清理這些資料,完成此重塑過程是為了清理資料以使其更具影響力。它還有助於為無資料經驗的夥伴提供較一目了然的資料呈現,然而資料是需要被看見被使用才能發揮它的價值。

KKday 中除了資料分析師或資料科學家外,行銷、營運甚至是業務部門都是我們的資料探險家,所以我們根據不同背景的使用者提供符合他們的資料平台。

在無程式背景的夥伴,Tableau、Excel、Data Studio 或許是他們的首選;而 Pandas 則資料科學家或分析師的一個好選擇。這些工具都是為了將資料以更易於閱讀和操作呈現給使用者。所以資料工程師需要擁有多種資料平台的經驗與對資料維度以及呈現方式的理解,提供最適合的資料平台。

維運與效能優化

資料工程師需要負責優化各種效能,例如,資料的查詢效能、導入速度、管線的重工性與復用性。

優化是一項需定期實施且長時間不斷執行工作。也許資料的查詢的速度已經跟不上使用者所能等待的時間,或者資料的導入時間超過了資料的週期時間,抑或是資料管線因長時間不斷迭代導致管線重工缺乏一致性。

我們的工作是解決問題並確定需要採取哪些步驟來修復問題。以優化查詢來說,資料工程師可能需要修改或創建新索引以滿足資料不斷增長造成大資料查詢速度的下降,建立分區或重組資料集以提高效率。

成為一位優秀的資料工程師

資料工程師是創造性的問題解決者;經常開闢新的途徑來鋪設基礎建設和支撐架構,以保持永遠跑在資料需求方的前面。優秀的資料工程師還能夠預見未來,並規劃可擴展的系統以滿足不斷變化的業務需求。而他們需要擁有哪些特質呢?

對資料敏感

最重要的,喜歡資料並且享受資料。資料工程師喜歡資料,並且知道資料源頭、流動路徑且流向何處以及資料發生異常時能及時判斷問題所在。以 KKday 資料來說,資料包含 — — 人、旅遊、住宿、交通等。你喜歡思考資料以及資料如何組合和融合,以便資料科學家與分析師可以建立邏輯分析與模型構建準備。如果你符合這點,資料工程會是你完美的選擇。

喜歡搭建屬於自己的系統

Photo by Kelly Sikkema on Unsplash

資料工程師經常打造資料流,需先與資料需求方了解資料源、清理過程、資料如何落地。我會將這個過程好比建構樂高一樣,有了建構藍圖我們需要一步步照著說明書打造屬於自己的資料流架構。接著使工作流程自動化。我們會自動化監控、資料資料,協助資料科學家將資料偏移與品質的檢查自動化,接著將 ML 模型或統計模型導入 API 中成為站上的模型服務。

享受建構資料流的同時,需要解決日常發生的各種問題。每天都有機會處理涉及將資料從一個點轉移到另一個點的難題。而如何解決難題並找出最佳解法正是資料工程有趣之處。

樂於接受新技術

資料的類型千變萬化。資料架構永遠沒有統一解法只有符合各種資料的最佳解法,當資料量較小且較單純時,傳統資料庫的集中式系統或許是個好選擇。而當資料變得龐大且難以負荷時,如何解決一個工作量太大而無法處理的資料集,以及如何將處理分佈到多個節點上,這也是需要考量的地方。

我們將不斷嘗試新技術,找出最適合各個問題的工具,建構出最符合公司需求的資料架構。

還有什麼等著你去挖掘?

透過此篇的介紹先讓讀者對一日資料工程師的工作內容有所了解。KKday 的夥伴們接下來會有更多資料工程相關的分享,慢慢地介紹目前在 KKday 搭建的資料技術堆疊與資料架構,讓不管是正想了解資料工程或是已經在這條路上的朋友都能與我們交流。

--

--