如何使用Scrum敏捷方法,快速搭建數據集市?

3 評論 7571 瀏覽 15 收藏 10 分鐘

編輯導語:數據集市應該如何建設才能提升可用性,有更強的市場適應性?也許,你可以結合產品敏捷方法論進行數據集市的搭建。本篇文章里,作者結合案例,就如何使用Scrum敏捷方法搭建數據集市一事做了分析,一起來看一下。

數據倉庫自最早1988年被提出來,發展至今也有幾十年了。從數倉1.0到數倉4.0,從關系型數據庫到大數據倉庫?,F如今,數據集市和數據湖以及湖倉一體化是業界研發和發展的重要方向。

數倉的建設有一套業界成熟的方法論,但數據集市如何建設各家企業眾說紛紜。作為數據產品經理,對數據倉庫和數據集市等技術領域也并不會陌生,企業在搭建數據集市過程中,往往會因為流程和項目管理的問題導致數據集市可用度不高以及業務價值較低。

那如何更高效搭建一套面向業務應用場景的數據集市? 是否可以將產品敏捷方法論快速高效地應用在數據集市的搭建上?

一、基本概念

1. 數據倉庫和數據集市

數據倉庫是一個面向主題的、集成的、相對穩定的、反映歷史變化的數據集合,用于支持管理層和業務層的經營分析和業務決策制定。數據倉庫用于支持決策,面向分析型數據處理,為了進行OLAP,把分布在各個散落獨立的數據庫孤島整合在了一個數據結構里面,稱之為數據倉庫。

有了數據倉庫,為什么還需要數據集市呢?我們看看數據集市是為了解決什么問題。

數據集市可以理解為是一種“小型數據倉庫”,它只包含單個主題,且關注范圍也非全局。數據集市可以分為兩種:

  • 一種是獨立數據集市,這類數據集市有自己的源數據庫和ETL架構;
  • 另一種是非獨立數據集市,這種數據集市沒有自己的源系統,它的數據來自數據倉庫。

數據集市是一個結構概念,它是企業級數據倉庫的一個子集,主要面向部門級業務,并且只面向某個特定的主題。

數據集市是數倉之上更聚焦的業務主題合集,更偏向于應對業務數據快速高效應用的需求,一般用于商業智能系統中探索式和交互式數據分析應用。

2. 產品敏捷方法論

現在絕大部分互聯網公司都在使用敏捷開發,最流行也最成熟的敏捷開發框架當屬Scrum。這里簡單介紹下Scrum的三個重要角色和三個重要概念。

Scrum中的人員分為3個重要角色:產品所有者(Product Owner), Scrum Master(敏捷教練),開發團隊(Dev Team)。

三個重要概念:Sprint,Product Backlog,Sprint Backlog。

  1. Sprint:一個沖刺或迭代周期,一般2~4周,是一個可以交付驗收的產品需求功能集合;
  2. Product Backlog:產品需求集合,是產品規劃中所有的需求點;
  3. Sprint Backlog:每個Sprint的功能需求點,來自于Product Backlog。

一般的Scrum開發流程如下:

如何使用Scrum敏捷方法快速搭建數據集市

為什么說數據集市項目特別適合使用Scrum方法來迭代:

  1. 數據集市需求劃分明確。集市的業務域和主題域正好對應Scrum的Story和Sprint。
  2. 做出來的集市寬表是否有用,可以在某個業務域內先做一張,快速驗證效果。
  3. 每個寬表的產出時間周期相對好評估,整體項目風險可控。

針對面向主題域的數據集市,來看看我們的計劃和安排:

  • PO(Product Owner):數據產品經理。
  • SM(Scrum Master):數據研發主管。
  • Team(Dev Team):數據架構師,數據研發工程師,數據測試工程師。
  • Story:每個Story可以根據業務域來劃分,比如我們劃分了資金域,用戶域,模型域,市場域,營銷域,信審域,風控域,財務域,征信域。
  • Sprint:每個Sprint可以規劃一到兩張寬表,比如資金域我們規劃了借款寬表,還款寬表,其他類似。

二、Scrum敏捷方法解決了哪些問題

1. 效率問題

以前開發一個主題域的數據集市,需要自頂向下進行建模設計、維度表設計、事實表設計、架構設計、數據表開發、表驗證、表測試,完整的瀑布流走下來,幾個月過去了,出來了一個大而全的數據集市,交付給分析師和業務。

分析師大呼看不懂,查起來還是很慢,很多表還是需要我來JOIN,業務也大呼為什么取個數據這么久,為什么做個分析要一周?

基于敏捷方法的數據集市建設,提高了整個生產流程的效率,針對具體的業務場景和分析師的需求,小步快跑地先建設一張或幾張寬表,先產出給分析師,再不斷調整數據字段,大大縮短了生產建設周期。

2. MVP驗證問題

通過小步快跑模式,每個Sprint花費兩周,建設1~2張寬表,解決一些核心的分析取數場景,然后再交付驗證有價值后進行迭代,增加新的字段,不斷進行MVP閉環驗證。

3. 業務價值問題

直接基于業務分析場景和分析師使用場景來建設,基于怎么用來怎么設計寬表,可以快速驗證并產生直接的分析價值和業務價值。相比于傳統的自頂向下的瀑布建設流程,不追求大而全的數據集市和數據字段,緊密結合業務場景來進行設計。

三、案例分享

1. 項目介紹

數據集市項目啟動前,已有一套數據倉庫,初期只做了兩層分層,一層ODS,一層DWD。

DWS層表很少幾乎可以忽略不計。在業務分析過程中,我們發現很多的分析竟然還是依賴ODS層的表,部分能用到DWD層的表,說明數據倉庫分層不明確,違反了數倉和數據集市建設的跨層訪問的原則(一般來說分析師不用訪問ODS層表)。

為了進一步打破數據孤島,提升數據使用鏈上人員的工作效率,進一步快速支持分析和決策,我們打算建立一套基于現有的基礎數倉上的數據集市層系列主題寬表。

2. 項目規劃

我們采用Scrum敏捷方法來規劃每個Sprint的迭代節奏,主題寬表和應用場景規劃如下圖:

如何使用Scrum敏捷方法快速搭建數據集市

3. 項目實施

項目團隊搭建,除了常規的SCRUM核心團隊以外,我們還加入了 需求來源團隊以及用戶團隊。

需求來源團隊數據產品經理收集需求和痛點的主要受訪用戶,用戶團隊是所有數據使用人員。其他的PO,SM和Dev,Test團隊是敏捷開發的角色。具體項目團隊配置分工如下:

如何使用Scrum敏捷方法快速搭建數據集市

4. 效果評估

Sprint1上線了借款主題域的兩張寬表(借款還款和還款寬表),我們并沒有迅速進入下一輪迭代,而是基于已上線的表收集使用價值以及評估降本提效的指標,整理如下表:

如何使用Scrum敏捷方法快速搭建數據集市

四、總結

  1. 數倉和數據集市建設,市面上有成熟的方法論;
  2. 傳統的建設流程存在過程冗長,人員龐雜,脫離業務場景,價值評估存在偏差等問題;
  3. 敏捷Scrum方法框架可以優化數據集市建設流程,做到降本提效,緊密貼合業務;
  4. Scrum本質上是一套項目管理流程和敏捷迭代流程,要集合具體項目具體分析,吸取Scrum精華為我所用。

 

本文由 @乘風隨行 原創發布于人人都是產品經理,未經許可,禁止轉載。

題圖來自Unsplash,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 感謝博主分享,請教一下,DM需求的收集,DM的創建、維護或下線等工作是由數據產品來牽頭,由各應用開發與數據模型組支持嗎?

    來自上海 回復
  2. 哈哈博主你分享的很棒,方便加下微信交流下嗎 感謝

    來自廣東 回復
    1. 歡迎交流:ericpeng1024

      來自上海 回復