資料工師都在做什麼 What does a Data Engineer do?

資料工師都在做什麼 What does a Data Engineer do?

作者 Enzo 恩佐的數據職涯

轉載自Instagram- enzo.data.career


Data Engineer(DE) 的職缺在近幾年大量出現
相關的職訓課程和影音、書籍也慢慢變多

這是為什麼呢?過去企業不需要這個角色嗎?
​我認為是資料科學普及和數據驅動被重視之後
企業漸漸意識到這個角色有必要被獨立出來

過去沒有這個角色的時候 相關工作
可能是由以下角色負責 cover 的

  • Database Administrator
  • Backend Engineer
  • System Architect
  • Data Analyst

(我聽到不少數據分析師每次自己拉報表,遇到種種挑戰,最後直接轉職當 DE 的)

資料工程師的職責與使命
編輯註:資料工程師 = 數據工程師 = Data Engineer

我們的職責範圍包含但不限於:
1. 數據架構設計
2. 基礎設施構建與維護
3. 數據整合與轉換
4. 數據管理與治理
5. 數據服務化

而我們的使命是為組織提供
可信、正確、完整、穩定、易用的數據和數據服務
支持組織的數據需求
促進業務和決策的順利進行

所以通常 DE 大多是支持”內部營運”的角色
而不是開發直接影響”終端用戶”的產品

數據架構
接著來藉由 上方圖3 來呈現資料工程師的任務範圍

資料來源(Sources)
DE 負責盡可能將公司所有產生的資料接回來”統一”管理
最大宗的是 Operational database 裡的資料
例如:關連式資料庫 MySQL、PostgreSQL
或 非關連式資料庫(NoSQL) MongoDB

其他可能是第三方服務的資料
例如用來 Web/App 事件追蹤的 GA4
和客服系統的 Zendesk

或者是前後端系統的日誌記錄(Log)等

資料儲存(Storage)
在現代數據架構(modern data stack)中
來源資料依照其格式、結構、形態和生命週期
存放在資料湖(data lake)或資料倉儲(data warehouse)

從來源到儲存的過程稱為 Data Ingestion
大致可分為批次(batch)與串流(streaming)兩種形式

資料處理(Process)
泛指各種資料轉換的過程
基本的資料清理可能已經在 ingestion 的階段做完了

通常在資料倉儲會依照資料規模和分析需求
來進行維度建模(dimensional modeling)
以及照商業邏輯設計聚合表(aggregation tables)

資料輸出(Outputs)
DE 努力完成前面的工作就是為了讓數據產生價值
這時候數據已經能提供給 DA/DS 或其他團隊的人使用

常見的產出形式包含但不限於
1. Query platform:提供其他人自行查詢、分析數據
2. KPI reporting:釐清業務指標,定期產出報表/報告給管理階層 review
3. Dashboards:透過視覺化圖表和可選的篩選器,持續追蹤營運表現
4. ML Application:結合 AI/ML 技術打造的服務,例如推薦系統、聊天機器人

修建資料管線(Data Pipeline)

上一張架構圖中,各模組之間的箭頭
其實就是資料管線
掌管資料的上下游關係和排程自動化的是 Orchestrator
也稱為 Workflow manager

資料工程師是專業水管工
負責搭建和維護資料管線
串接各系統的資料流
讓資料(水流)能源源不絕、更迭不休
供應給終端使用

良好的 data pipeline 是可以水平&垂直擴展的
並且要有完善的監控(monitoring)和警示(alerting)

雲端服務供應商

很開心自己活在雲端服務盛行的世代
不用自行架構、維運龐大的分散式系統
就可以享受這些強大的服務帶來的便利

就算每個月的帳單金額都很可觀
也還是企業主優先選擇的原因吧

資料工具人的辛酸血淚

最後也列出身為資料”工具人”的辛酸血淚吧
每一段都是一個故事,這邊就先不展開討論了
編輯註:歡迎讀者們到Enzo的IG交流你們面對這些資料任務的辛酸血淚喔~