隨著數據的重要性不斷增長且變得更加複雜,對於熟練的數據工程師的需求從未如此迫切。但什麼是數據工程,為什麼它如此重要呢?在這篇文章中,我們將討論運作良好的數據工程實踐的基本組成部分,以及為什麼數據工程對於當今企業變得越來越關鍵,還有如何建立自己的數據工程卓越中心!
我有幸建立、管理、領導並培養一支高效能的數據倉庫與 ELT 工程師團隊多年。在我的團隊幫助下,我每年花費大量時間有意識地計劃和準備,以管理我們每月數據的增長,並滿足我們超過 20000 名全球數據使用者不斷變化的報告和分析需求。我們建立了許多數據倉庫,以儲存和集中來自多個 OLTP 源的大量數據。我們通過在本地數據倉庫和雲端數據倉庫中創建星型模式,實施了金寶(Kimball)方法論。
我們的目標是讓使用者能夠快速進行數據分析和報告,這樣我們的分析師社群和業務使用者就能做出準確的數據驅動決策。
我花了大約三年的時間,將數據倉庫和 ETL 程式設計師的團隊轉變為一個凝聚的數據工程團隊。
在這篇文章中,我整理了一些建立全球數據工程團隊的經驗,希望數據專業人士和各級技術能力的領導者都能受益。
數據工程師的演變
現在是成為數據工程師的最佳時機。在過去十年中,我們看到企業大規模覺醒,開始認識到數據是公司運作的心臟,這使得數據工程成為確保準確、即時和高品質數據流向依賴於它的解決方案的職能。
歷史上,數據工程師的角色從數據倉庫開發者和 ETL/ELT 開發者(提取、轉換和加載)演變而來。
數據倉庫開發者負責設計、建設、開發、管理和維護數據倉庫,以滿足企業的報告需求。這主要是通過從操作和交易系統中提取數據,並使用提取轉換加載(ETL/ELT)方法將其傳送到數據倉庫或數據湖等儲存層來完成。數據倉庫或數據湖是數據分析師、數據科學家和業務使用者消耗數據的地方。開發者還會對進口數據進行轉換,以使其符合數據模型,並聚合數據以便於分析。
數據工程師的主要責任是生成並安全地提供數據給多個使用者。
數據工程師負責監督數據的攝取、轉換、建模、交付和在組織內部的移動。數據提取來自許多不同的數據源和應用程式。數據工程師將數據加載到數據倉庫和數據湖中,這些數據不僅是為了數據科學和預測分析的計畫(大家都喜歡談論的),而主要是為了數據分析師。數據分析師和數據科學家在這些數據上執行操作報告、探索性分析、服務水平協議(SLA)基礎的商業智慧報告和儀表板。在這本書中,我們將討論所有這些職能。
數據工程師的角色是從雲端和本地、新舊系統中獲取、儲存和聚合數據,並進行數據建模和可行的數據架構。沒有數據工程師,分析師和數據科學家將無法擁有有價值的數據可供使用,因此,數據工程師是每個新數據團隊成立時首先被聘用的人。根據企業內可用的數據和分析工具,數據工程團隊的角色配置、結構和方法有多種選擇,我們將在本章中討論。
數據工程團隊
軟體越來越多地自動化數據工程師歷史上手動且繁瑣的任務。數據處理工具和技術在幾年內大幅演變,並將繼續增長。例如,基於雲的數據倉庫(例如 Snowflake)使數據儲存和處理變得經濟實惠且快速。數據管道服務(如 Informatica IICS、Apache Airflow、Matillion、Fivetran)已將數據提取轉變為可以快速高效完成的工作。數據工程團隊應利用這些技術作為增強力量,採取一致且協調的方法來整合和管理企業數據,而不僅僅依賴於傳統的孤立方法來構建自定義數據管道,這些管道的代碼脆弱、性能不佳且難以維護。繼續採用後者的方法將抑制該企業的創新速度,並迫使未來的重點集中在管理數據基礎設施問題上,而不是如何為業務創造價值。
企業數據工程團隊的主要角色應該是將原始數據轉換為可供分析的形狀——為現實世界的分析和數據科學應用奠定基礎。
數據工程團隊應該作為企業級數據的圖書管理員,負責策劃組織的數據,並作為希望利用這些數據的資源,例如報告和分析團隊、數據科學團隊以及其他進行更多自助或業務驅動分析的團體,利用企業數據平台。這支團隊應該作為組織知識的管理者,管理和完善目錄,以便能更有效地進行分析。讓我們來看看一個運作良好的數據工程團隊的基本責任。
數據工程團隊的責任
數據工程團隊應該在企業內提供一個共享能力,支持報告/分析和數據科學能力,提供乾淨、轉換、格式化、可擴展和安全的數據,以便進行分析。數據工程團隊的核心責任應包括:
· 建立、管理和優化核心數據平台基礎設施
· 建立和維護來自各種結構化和非結構化來源的自定義和現成數據整合和攝取管道
· 管理整體數據管道的協調
· 管理數據的轉換,無論是在原始數據加載之前還是之後,通過技術過程和業務邏輯
· 支持分析團隊設計和優化數據倉庫的性能
數據是企業資產。
作為資產的數據應該被共享和保護。
數據應被視為企業資產,並在所有業務單位中加以利用,以提高公司對其客戶群的價值,通過加速決策過程,並利用數據改善競爭優勢。良好的數據管理、法律和監管要求規定我們必須保護擁有的數據,防止未經授權的訪問和披露。
換句話說,管理安全性是一項重要責任。
為什麼要建立集中式數據工程團隊?
將數據工程視為一項標準和核心能力,支撐分析和數據科學能力,將幫助企業改變對數據和分析的處理方式。企業需要停止根據涉及的技術堆棧垂直處理數據,這種情況我們經常看到,轉而採取更橫向的方式來管理數據結構或網格層,這樣可以跨越組織並根據需要連接各種技術以推動分析計畫。這是一種新的思維和工作方式,但它可以提高效率,因為各個數據組織希望擴展。此外,為數據工程資源創建專門的結構和職業道路是有價值的。市場上對數據工程技能的需求很高,因此,從外部招聘可能會很昂貴。公司必須使程式設計師、數據庫管理員和軟體開發人員能夠通過跨技術工作獲得所需的經驗,從而獲得上述定義的技能。通常,建立數據工程卓越中心或能力中心將是實現這種進展的第一步。
建立集中式數據工程團隊的挑戰
將數據工程團隊作為服務的集中化方法與報告和分析及數據科學團隊的運作方式不同。這在原則上意味著放棄某種程度的資源控制,並建立新流程,讓這些團隊能夠協作並共同交付計畫。
數據工程團隊需要證明它能有效支持報告和分析及數據科學團隊的需求,無論這些團隊有多大。數據工程團隊必須有效地優先處理工作負載,同時確保他們能為分配的項目帶來合適的技能和經驗。
數據工程至關重要,因為它是數據驅動公司的支柱。它使分析師能夠使用乾淨且組織良好的數據,這對於獲得洞察和做出明智決策是必要的。要建立一個運作良好的數據工程實踐,你需要以下關鍵組件:
數據工程團隊應該是企業內的核心能力,但它應有效地作為一個支持功能,參與幾乎所有與數據相關的事務。它應該與報告和分析及數據科學團隊進行合作支持,以使整個團隊成功。
數據工程團隊並不直接創造商業價值——而是應該通過提高報告和分析及數據科學團隊的生產力和效率,確保為商業利益相關者通過數據和分析計畫交付最大價值。為了使這一切成為可能,數據工程能力中心內的六項關鍵責任如下:
讓我們回顧一下六大責任支柱:
1. 確定中央數據位置以進行整理和處理
理解並擁有數據湖的策略(集中數據庫或數據倉庫,用於大規模數據分析)。定義所需的數據表以及在數據工程上下文中它們將如何連接,並隨後將原始數據轉換為可消化和有價值的格式。
2. 數據攝取和轉換
將數據從一個或多個來源移動到新的目的地(你的數據湖或雲數據倉庫),在那裡可以儲存和進一步分析,然後將數據從來源系統的格式轉換為目的地的格式。
3. ETL/ELT 操作
從一個或多個來源提取、轉換和加載數據到目的地系統,以在新的上下文或風格中表示數據。
4. 數據建模
數據建模是數據工程團隊的一項重要功能,雖然並非所有數據工程師都擅長這項能力。通過理解信息系統工作流程,將數據對象和業務規則之間的關係正式化,形成概念表示,建模所需的查詢,設計表格,確定主鍵,並有效利用數據來創建有意義的輸出。
我在面試中看到工程師在這方面的表現不如在技術討論中的編碼。理解維度、事實和聚合表之間的區別是至關重要的。
5. 安全性和訪問權限
確保敏感數據受到保護,並實施適當的身份驗證和授權,以降低數據洩露的風險。
6. 架構和管理
定義管理所收集數據的模型、政策和標準,包括數據的存儲位置和方式,以及如何將這些數據整合到各種分析系統中。
數據工程能力的六大責任支柱集中在確定中央數據位置以進行整理和處理、攝取和轉換數據、執行 ETL/ELT 操作、建模數據、確保訪問安全和管理架構的能力上。雖然所有公司在這些功能上都有自己的特定需求,但確保你的團隊擁有必要的技能以建立大數據成功的基礎是重要的。
除了數據工程外,還需要考慮企業內的其他能力中心:
分析能力中心
分析能力中心使公司能夠在整個公司內提供一致、有效和高效的商業智慧、分析和高級分析能力。協助業務功能進行優先排序,並通過報告、分析和儀表板解決方案實現其目標,同時提供操作報告和可視化、自助分析和自動生成這些洞察所需的工具。
數據科學能力中心
數據科學能力中心用於探索尖端技術和概念,以解鎖新的洞察和機會,更好地告知員工,並創造使用自動化 AI 和自動化 ML 解決方案(如 H2O.ai、Dataiku、Aible、DataRobot、C3.ai)的處方信息使用文化。
數據治理
數據治理辦公室使使用者能夠獲得可信、易懂和及時的數據,以推動有效性,同時保持數據的完整性和神聖性,確保數據在正確的手中供大眾使用。
隨著你的公司成長,你會希望確保數據工程能力到位,以支持六大責任支柱。這樣,你將能確保數據管理和分析的各個方面都得到覆蓋,並且你的數據對需要它的人安全且可訪問。你開始考慮你的公司將如何成長了嗎?你採取了什麼步驟來建立一個集中式數據工程團隊?
感謝你的閱讀!
本文由 AI 台灣 運用 AI 技術編撰,內容僅供參考,請自行核實相關資訊。
歡迎加入我們的 AI TAIWAN 台灣人工智慧中心 FB 社團,
隨時掌握最新 AI 動態與實用資訊!