構建數據中台的三要素:方法論、組織和技術

来源:https://www.cnblogs.com/JavaEdge/archive/2023/07/18/17562679.html
-Advertisement-
Play Games

知道要轉型,要建設數據中台,卻不知咋做,咋辦? 現在有很多講“如何建設數據中台”文章,觀點各不相同: - 數據中台是數據建設方法論,按照數據中台設計方法和規範實施就可建成數據中台 - 數據中台背後是數據部門組織架構變更,把原先分散的組織架構形成一個統一中台部門,就建成數據中台 - 一些大數據公司說, ...


知道要轉型,要建設數據中台,卻不知咋做,咋辦?

現在有很多講“如何建設數據中台”文章,觀點各不相同:

  • 數據中台是數據建設方法論,按照數據中台設計方法和規範實施就可建成數據中台
  • 數據中台背後是數據部門組織架構變更,把原先分散的組織架構形成一個統一中台部門,就建成數據中台
  • 一些大數據公司說,他們可賣支撐數據中台建設的產品技術

蓋房前,先得設計圖紙,知道如何蓋這房?然後還要有好用工具(如水泥攪拌機、鋼筋切割機)幫你蓋好這房。蓋房子離不開一個靠譜施工隊伍,這裡面涉及很多角色(泥瓦工、木工、水電工等等),人須高效協作,才能蓋出好房。

如把建數據中台比作蓋房:

  • 設計圖紙就是數據中台建設方法論
  • 工具是數據中台的支撐技術
  • 施工隊伍就是數據中台的組織架構

本文以全局視角從巨集觀瞭解如何建設企業級數據中台。

1 數據中台建設方法論

2016年阿裡提出數據中台建設核心方法論:OneData、OneService。很多公司都進行實踐,但你很難找定義去描述這些方法論。

1.1 OneData

所有數據只加工一次。

電商業務建設數據中台前,每個部門內部都有一些小數倉完成本部門數據分析需求。

有天,供應鏈團隊接到一個數據需求,即計算“商品庫存”指標,供應鏈的運營需根據每個商品的庫存制訂商品採購計劃,部門的數據開發從業務系統同步數據,進行數據清洗、聚合、深度加工,最終,產出這個指標花1周時間。

恰逢大促,市場部門也需根據每個商品的庫存,制訂商品促銷計劃。該數據開發接到緊急需求(與供應鏈團隊類似)從需求開發到上線,花費1周。同部門運營抱怨說,為啥數據需求開發這麼慢,根本無法滿足大促高頻市場運營決策。對公司而言,等1周意味巨大損失,該促銷商品沒有促銷,不該促銷的卻低價賣了。

如你是公司老闆, 肯定問,既然供應鏈團隊已計算出來商品庫存數據,為什麼市場部門不直接用,還要從頭再計算一遍?這看似傻行為,卻處處出現在日常數據建設。

數據中台就是要在整個電商業務形成一個公共數據層,消滅這些跨部門小數倉,實現數據復用,所以強調數據只加工一次,不會因為不同的應用場景,不同的部門數據重覆加工。

如何才能實現數據只加工一次?

如你構建了數據中台,但存在幾萬張表,又有幾十個數據開發維護這些表,如何確保這些表管理效率? 建議你選擇劃

主題域

可將這幾萬張表划到不同主題域,如電商業務中,商品、交易、流量、用戶、售後、配送、供應鏈都可作為主題域。好的主題域劃分,相對穩定,儘可能覆蓋絕大多數表。

還要對錶的

命名規範化統一

表的名稱中最好能夠攜帶表的主題域、業務過程、分層及分區信息。如倉儲域的一張入庫明細表的規則命名:

接著,構建全局的指標字典,確保所有表中相同指標的口徑須一致(06文)。

為實現模型的復用,數據中台適合分層設計,常見分層:ODS 原始數據層,DWD 明細數據層,DWS 輕度彙總數據層,ADS/DM 應用數據層/數據集市層。

最後,數據中台的數據須儘可能覆蓋所有業務過程,數據中台每層的數據要儘可能完善,讓數據使用者儘可能使用彙總後的數據。

OneData 體系的目標是構建統一的數據規範標準,讓數據成為一種資產,而非成本。資產和成本差別在於:

  • 資產可沉澱,可被覆用
  • 成本是消耗性質、臨時、無法被覆用

1.2 OneService

數據即服務,強調數據中臺中的數據應通過API介面被訪問。

為何數據要通過API被訪問,而不通過API介面,直接提供數據表給用戶?

如你是數據應用開發,當你要開發一個數據產品,先要把數據導到不同查詢引擎:

  • 數據量小的,MySQL
  • 大的,可能HBase
  • 多維分析的,可能Greenplum
  • 實時性要求高的,要用Redis

總的來說,不同的查詢引擎,應用開發需要定製不同的訪問介面。

如你是數據開發:

  • 當某任務無法按時產出,發生異常時,想瞭解這個表可能影響下游哪些應用或報表,但卻發現單純依賴表與表的血緣無法觸及應用,根本無法知道最後這些表被哪些應用訪問
  • 當你想下線一張表,因不知道誰訪問這張表,無法實施,最終造成“上線易,下線難”

而API介面:

  • 對應用開發屏蔽了底層數據存儲,使用統一標準的API介面查詢數據,提高數據接入速度
  • 對數據開發,提高數據應用的管理效率,建立表到應用的鏈路關係

2 如何實現數據服務化

2.1 屏蔽異構數據源

數據服務要能支撐類型豐富的查詢引擎,滿足不同場景下數據的查詢需求,常見如MySQL、HBase、Greenplum、Redis、ES等。

2.2 數據網關

要實現包括許可權、監控、流控、日誌在內的一系列管控能力,哪個應用的哪個頁面訪問了哪個模型,要做到實時跟蹤,如有一些模型長時間沒被訪問,應下線。使用數據的每個應用都應通過accesskey、secretkey實現身份認證和介面許可權管理。

訪問日誌可方便在訪問出現問題時,加快排查速度。

2.3 邏輯模型

從用戶視角出發,屏蔽底層的模型設計的實現,面向用戶提供邏輯模型。什麼是邏輯模型呢?熟悉資料庫的同學應該知道,資料庫中有一個視圖的概念,視圖本身並沒有真實的數據,一個視圖可以關聯一張或者多張表,每次在查詢的時候,動態地將不同表的查詢結果聚合成視圖的查詢結果。邏輯模型可以類比視圖,它可以幫助應用開發者屏蔽底層的數據物理實現,實現相同粒度的數據構造一個邏輯模型,簡化了數據接入的複雜度。

性能和穩定性:由於數據服務侵入到用戶的訪問鏈路,所以對服務的可用性和性能都有很高的要求,數據服務必須是無狀態的,可以做到橫向擴展。

OneService 體系目標是提高數據共用能力,讓數據被用得好、爽。

3 數據中台支撐技術

這個圖完整地描述了數據中台支撐技術體系,底層以Hadoop為代表的大數據計算、存儲基礎設施,提供大數據運行所須的計算、存儲資源。都屬基礎設施範疇:

  • HDFS為代表的分散式文件系統
  • Yarn/Kubernates為代表的資源調度系統
  • Hive、Spark、Fink為代表的分散式計算引擎

若把數據中台比作數據工廠,它們就是工廠的水、電。

在Hadoop之上:

  • 淺綠色,原有大數據平臺範疇內的工具產品,覆蓋從數據集成、數據開發、數據測試到任務運維的整套工具鏈產品。同時包括基礎的監控運維繫統、許可權訪問控制系統和項目用戶的管理系統。由於多人協作,所以還有流程協作與通知中心
  • 灰色,數據中台核心組成:數據治理模塊。它對應的方法論就是OneData 體系。以元數據中心為基礎,在統一了企業所有數據源的元數據基礎上,提供了包括數據地圖、數倉設計、數據質量、成本優化以及指標管理在內的5個產品,分別對應的就是數據發現、模型、質量、成本和指標的治理
  • 深綠色,數據服務,它是數據中台的門戶,對外提供了統一的數據服務,對應的方法論就是OneService。數據服務向下提供了應用和表的訪問關係,使數據血緣可以延申到數據應用,向上支撐了各種數據應用和服務,所有的系統通過統一的API介面獲取數據。

在數據服務之上,是面向不同場景的數據產品和應用,包括面向非技術人員的自助取數系統;面向數據開發、分析師的自助分析系統;面向敏捷數據分析場景的BI產品;活動直播場景下的大屏系統;以及用戶畫像相關的標簽工廠。

這套產品技術支撐體系,覆蓋了數據中台建設的整個過程,配合規範化實施,你就可以搭建出一個數據中台,關於具體的細節我會在實現篇中逐一分析講解,這裡你只需要知道這個框架就可以了。

4 組織架構

在網易電商數據中台建設之前,各個部門都會存在一些小的數倉,那麼你有沒有想過,為什麼會存在這些分散的小數倉? 歸根結底是因為建設這些數倉的人分散在各個業務部門。所以,如果你要建設數據中台,單純有方法論和支撐技術還不夠,還必須要有一個獨立於業務部門的中台團隊。

數據中台提供的是一個跨業務部門共用的公共數據能力,所以,承擔數據中台建設職責的部門一定是一個獨立於業務線的部門。這個部門的負責人應該直接向公司的CTO彙報工作,當然這個也要取決於數據中台建設的層次,例如在網易內,有雲音樂、嚴選等多個產品線,數據中台的建設層次是在產品級別的,也就是說,雲音樂有一個數據中台,嚴選有一個數據中台,所以嚴選的數據中台應該向嚴選的CTO彙報。

而獨立部門的最大風險是與業務脫節,所以我們對數據中台的組織定位是:懂業務,能夠深入業務,扎根業務。數據中台要管理所有的指標,而每個業務線之間的指標既有差異,也有交叉,要理解指標的口徑定義,就必須要瞭解業務的過程。同時,當我們要制定一些新的指標時,必須要瞭解各個業務線新的業務目標,指標的本質還是為業務目標服務的。

啥樣的組織架構適合數據中台建設?

  • 數據產品部門:負責數據中台、數據產品的體系規劃、產品設計、規範制定、應用效果跟進,指標口徑的定義和維護(有的部門是由分析師管理)。
  • 數據平臺部門:負責研發支撐數據中台構建的產品,例如指標系統、元數據中心、數據地圖等。
  • 數據開發團隊:負責維護數據中台的公共數據層,滿足數據產品制定的數據需求。
  • 應用開發團隊:負責開發數據應用產品,比如報表系統、電商中的供應鏈系統、高層看板、經營分析。

而且,中台組織的績效目標一定是要與業務落地價值綁定的,比如在電商中,我們提供了供應鏈決策系統,有智能補貨的功能,會根據商品的庫存,各個地區的歷史銷售情況,生產加工周期,自動生成補貨決策,由人工審核以後,直接推送給採購系統。那我們評估價值時,我們會拿由系統自動生成的採購計劃占整體採購計劃的比例來衡量數據的應用價值。

最後,數據中台的組織架構改革涉及原有各部門利益,所以這個是數據中台構建最難又不得不做的地方,必須要取得高層領導的支持和重視。

5 總結

數據中台建設的三板斧:方法論、支撐技術和組織架構。

  • 適合數據中台的組織架構是建設數據中台的第一步,數據中台組織一定是獨立的部門,同時要避免與業務脫節,深入業務,要與業務目標綁定。
  • 數據中台支撐技術大規模落地,需要有成熟的系統工具作為支撐,同時要註意這些系統工具之間的聯動和打通。
  • 數據中台的方法論可以借鑒,但是不能完全照搬,每個公司的數據應用水平和當前遇到的問題都不相同,可以針對這些問題,分階段制定數據中台的建設計劃,選擇性的應用一些技術,例如當前最主要的問題是數據質量問題,那就應該優先落地數據質量中心,提升質量。

6 如何建設數據中台?

數據中台的建設絕對不是為了建中台而建中台,數據中台的建設一定要結合落地場景,可以先從從一些小的場景開始,但是規劃一定是要有頂層設計。

FAQ

哪些數據中台建設的方法論和支撐技術是適合你當前的公司的,如果你們要做數據中台,你所在的組織架構要做哪些變動。

本文由博客一文多發平臺 OpenWrite 發佈!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.概述 JavaScript,縮寫為JS,是一種高級的、多範式、解釋型的編程語言,是一門基於原型、函數先行的語言,它支持面向對象編程、命令式編程以及函數式編程,是目前web開發中不可缺少的腳本語言,不需要編譯即可運行 JavaScript主要用來向HTML頁面添加交互行為,可以直接嵌入HTML頁面 ...
  • 本文翻譯自國外論壇 medium,原文地址: # 什麼是數據複製? 數據複製是指將數據複製到一個或多個數據容器以確保可用性的過程。複製的數據通常存儲在不同的資料庫實例中,即使一個實例發生故障,我們也可以從其他實例獲取數據。 一種流行數據複製的實現架構是主從架構。 > 推薦博主開源的 H5 商城項目* ...
  • ## springboot下使用rabbitMQ之傳參及序列化(二) 消息參數傳遞在開發中也是個坑,不論使用內置的`SimpleMessageConverter`還是`Jackson2JsonMessageConverter`均無法讓Consumer接收動態參數 ### 一.序列化的問題 首先貼出具 ...
  • 容器鏡像是可執行的軟體包,包括運行應用程式所需的所有內容:代碼、運行時、系統工具、庫和設置。通過構建自定義鏡像,您可以在任何支持Docker的平臺上無縫地部署應用程式及其所有依賴項。 ### Dockerfile 構建容器鏡像的關鍵組件是 **`Dockerfile`**。它本質上是一個包含有關如何 ...
  • # 預處理 ## 動態庫和靜態庫 > 庫: 將源文件生成的二進位文件 只需要鏈接即可生成可執行文件 ## 製作靜態庫 ``` linux gcc -c fun.c -o fun.o ar rc libtestlib.a fun.o ``` ### 使用靜態庫 #### 庫和工程在同一目錄下 ``` ...
  • ## 概念 定義:給定數集 $S$,以異或運算張成的數集與 $S$ 相同的極大線性無關集,稱為原數集的一個線性基。 簡單地說,線性基是一個數的集合。每個序列都擁有至少一個線性基。取線性基中若幹個數異或起來可以得到原序列中的任何一個數。 ## 性質 - 性質一 > - 取線性基中若幹個數異或起來可以得 ...
  • # 面向對象編程 根據類來創建對象稱為實例化。這裡只過一下大概的面向對象的內容,不做細講。可以直接查閱資料。https://www.runoob.com/python3/python3-class.html ## 創建和使用類及實例 給出一個類的使用例子: ```python class Dog: ...
  • # if 語句 給出一個簡單的示例 ```python cars = ["audi", "bmw", "subaru", "toyota"] for car in cars: if car == "bmw": print(car.upper()) else: print(car.title()) ` ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...