最最最全資料倉儲建設指南,速速收藏!!
開講之前,我們先來回顧一下資料倉儲的定義。
資料倉儲(Data Warehouse)是一個面向主題的、整合的、相對穩定的、反映歷史變化的資料集合,用於支援管理決策。這個概念最早由資料倉儲之父比爾·恩門(Bill Inmon)於1990年在《建立資料倉儲》一書中提出,近年來卻被愈發廣泛的提及和應用,不信看下圖:
到底是什麼,讓一個從上世紀90年代提出的概念,在近幾年確越來越熱?帶著這個問題,我們來了解一下產業真實的變化。
根據統計局的數字顯示,近年來數字經濟總體規模佔GDP的比重越來越高,截止2018年將近35%;數字經濟增速與GDP增速的差距逐漸拉大,遠高於同期GDP增速。
在 2014年,“新常態”一詞被首次提出,指出從當前中國經濟發展的階段性特徵出發,適應新常態,保持戰略上的平常心態。意味著經濟新常態下,要適應GDP從高速增長轉變為中高速增長的態勢,吃資源飯、環境飯、子孫飯的舊發展方式正在讓位於以轉型升級、生產率提高、創新驅動為主要內容的科學、可持續、包容性發展,從要素驅動、投資驅動轉向服務業發展及創新驅動。
在新常態下,資料經濟背後的資訊化正催生資料發揮著巨大價值,未來也會一樣。
在這樣的背景下,“資料”、“資料分析”、“人工智慧”、“IOT”這些行業關鍵詞在百度指數搜尋趨勢一路攀升。而隨著轉型的深入,人工智慧和物聯網技術被越來越廣泛的接受和應用,這背後所產生的資料呈大規模增長態勢,資料被依賴的程度越來越高。
所以,回到文章開頭的問題“資料倉儲,一個從上世紀90年代提出的概念,為啥近幾年確越來越熱了呢?”答案就是 隨著時代的發展,資料的價值正在被無限的索求、挖掘與放大。其價值的背後需要資料採集、儲存、互通、治理、運用的一整套機制。
那麼問題又來了,該怎麼做才能正確構建企業資料倉儲?
別慌!乾貨來了!接下來就是資料倉儲從搭建到應用的一整套方法論詳解,別眨眼別退出,看完全部如果覺得有用記得點贊收藏和分享!
先來看張體系圖:
我們這裡所說的資料倉儲,是基於大資料體系的,裡面包含標籤類目,區別於傳統的資料倉儲。下面我們來將這張圖分解,逐個做簡要分析。
一、前期調研
調研是數倉搭建的基礎,根據建設目標,我們將調研分為三類:業務調研、業務系統調研、業務資料調研。
業務調研內容:
- 專案承載的業務是什麼,業務的特徵和性質
- 當前的業務流程,有真實流程表格和報告最好,用一個例項的方式來展示整個業務流程
- 業務專業術語、產品資料、規則演算法、邏輯條件等資料
- 關注使用者對流程中存在的問題和痛點描述、以及期望
業務系統調研內容:
- 清楚瞭解專案有哪些系統,每個系統對接人,重點系統詳細介紹功能和互動
- 整體系統架構,呼叫規模,子系統互動方式,併發和吞吐量目標
- 系統技術選型和系統當前技術難點
資料調研內容:
- 可提供的資料
- 資料來源型別、環境、資料規模
- 資料介面方式:檔案介面、資料庫介面、web service介面等
- 資料目錄,資料欄位型別、字典、欄位含義、使用場景
- 資料在業務系統中流向等
二、資料建模
資料建模是數倉搭建的靈魂,是資料儲存、組織關係設計的藍圖。
分層架構是對資料進行邏輯上的梳理,按照不同來源、不同使用目的、不同顆粒度等進行區分,使資料使用者在使用資料的時候更方便和容易理解,使資料管理者在管理資料的時候更高效和具有條理。我們推薦的分層架構是:
維度建模是Kimball在《資料倉儲工具箱》中所倡導的資料建模方法,也是目前在大資料場景下我們推薦使用的建模方法。因為維度建模以分析決策的需求出發來構建模型,構建的資料模型為分析需求服務,因此它重點解決使用者如何更快速完成分析需求,同時還有較好的大規模複雜查詢的響應效能。
維度建模的核心步驟如下:
- 選擇業務過程:對業務生命週期中的活動過程進行分析
- 宣告粒度:選擇事實表的資料粒度
- 維度設計:確定維度欄位,確定維度表的資訊
- 事實設計:基於粒度和維度,將業務過程度量
設計原則:
- 易用性:冗餘儲存換效能,公共計算下沉,明細彙總並存
- 高內聚低耦合:核心與擴充套件分離,業務過程合併,考慮產出時間
- 資料隔離:業務與資料系統隔離,建設與使用隔離
- 一致性:業務口徑一致,主要實體一致,命名規範一致
- 中性原則:弱業務屬性,資料驅動
三、標籤類目
標籤,是資料資產的邏輯載體。資料資產,指的是能夠給業務帶來經濟效益的資料。所以,標籤類目的建設在整個資料中心的建設過程中具有核心地位。
標籤的設計需要結合資料情況和業務需求,因為標籤值就是資料欄位值,同時標籤是要服務於業務的,需要具備業務意義。假如,標籤的設計僅基於業務方以往的經驗得出,那麼最終開發出來的標籤值可能會失去標籤的使用意義,比如值檔次分佈不均、有值的覆蓋率低等。
基於標籤開發方式,我們將標籤分為以下三類:
- 基礎標籤:直接對應的業務表欄位,如性別、城市等
- 統計標籤:標籤定義含有常規的統計邏輯,開發時需要通過簡易規則進行加工,如年增長率、月平均收益率等
- 演算法標籤:標籤定義含有複雜的統計邏輯,開發時需要通過演算法模型進行加工,如企業信用分、預測年銷量等
基於標籤應用場景,我們將標籤分為以下二類:
- 後臺標籤:開發場景下,面向開發人員,不涉及業務場景,聚焦標籤設計、開發、管理。
- 前臺標籤:應用場景下,面向業務人員,結合業務場景,聚焦對後臺標籤的直接使用或組合使用。
隨著大量的標籤產生,為了更好的管理和使用,我們需要將標籤進行分類。所有的事物都可以歸類於三類物件:人、物、關係,所以我們可以對標籤按照人、物、關係來劃分一級類目,再按照業務特性對每個一級類目進行二級、三級的拆分,通常我們建議將標籤類目劃分到三級。
四、開發實施
經過前期調研、資料建模、標籤設計之後,接著會進入到開發階段,開發實施的關鍵環節由以下幾部分組成:
- 同步匯聚
- 清洗加工
- 測試校驗
- 排程配置
- 釋出上線
工欲善其事,必先利其器。一個好的開發工具對開發進度、成本、質量等具有舉足輕重的影響。目前市面上很多開源,如Kettle、Azkaban、Hue等多多少少具有部分功能,但是要形成一個從端到端的資料自動化生產,需要將多個開源工具進行組合並通過複雜甚至人工方式進行銜接,整個過程複雜、低效和可靠性低。數棲雲一站式離線開發平臺,就是為了解決上述問題而生的。
- 公共規範
- 層次呼叫約定
- 資料型別規範
- 資料冗餘拆分
- 空值處理原則
- 重新整理週期標識
- 增量全量標識
- 生命週期管理
- ......
- ODS層模型開發規範
- ODS層架構
- 資料同步及處理規範
- 資料同步方式
- 資料清洗規範
- 命名規範
- 表命名規範
- 任務命名規範
- DW層模型開發規範
- ......
通過工具+規範,促使我們的開發實施快速做好。
五、治理維護
隨著排程作業和資料量的增長,管理和維護會成為一項重要任務。
資料管理的範圍很大,貫穿資料採集、應用和價值實現等整個生命週期全過程。所謂的資料管理就是通過對資料的生命週期的管理,提高資料資產質量,促進資料在“內增值,外增效”兩方面的價值表現。資料管理的核心內容為:
- 資料標準管理
- 資料模型管理
- 後設資料管理
- 主資料管理
- 資料質量管理
- 資料安全管理
資料監控是資料質量的保障,會根據資料質量規則制定監控策略,當觸發規則時能夠自動通知到相關人。基礎的資料質量監控維度有以下幾部分:
-
完整性
- 特定完整性:必須有值的欄位中,不允許為空
- 條件完整性:根據條件欄位值必須始終存在
-
唯一性
- 特定唯一性:欄位必須唯一
- 條件唯一性:根據業務條件,欄位值必須唯一
-
有效性
- 範圍有效性:欄位值必須在指定的範圍內取值
- 日期有效性:欄位是日期的時候取值必須是有效的
- 形式有效性:欄位值必須和指定的格式一致
-
一致性
- 參照一致性:資料或業務具有參照關係的時候,必須保持其一致性
- 資料一致性:資料採集、加工或遷移後,前後的資料必須保持一致性
-
準確性
- 邏輯正確性:業務邏輯之間的正確性
- 計算正確性:複合指標計算的結果應符合原始資料和計算邏輯的要求
- 狀態正確性:要維護好資料的產生、收集和更新週期
當出現資料異常後,需要快速的進行恢復。基於異常和修復場景,有以下幾種資料運維方式:
-
平臺環境問題引起的異常
- 重跑:當環境問題解決後,重新排程作業,對當天的資料進行修復
- 重跑下游:當環境問題解決後,重新排程某一個工作流節點的作業及其下游,對當天該作業及其下游的資料進行修復
-
業務邏輯變更或程式碼 bug 引起的異常
- 補資料:對應作業程式碼更新並重新發布到生產後,重新生成異常時間段內的該作業資料
- 補下游:對應作業程式碼更新並重新發布到生產後,重新生成異常時間段內的該作業及其下游的資料
- 其他
- 終止:終止正在被執行的作業
資料安全主要是保障資料不被竊取、破壞和濫用,包括核心資料和隱私資料,以及確保資料系統的安全可靠執行。需要構建系統層面、資料層面和服務層面的資料安全框架,從技術保障、管理保障、過程保障和執行保障多維度保障大資料應用和資料安全。
-
系統層面
- 技術架構
- 網路傳輸
- 租戶隔離
- 許可權管理
-
資料層面
- 資料評估:對資料來源、用途、合法性等進行評估
- 資料脫敏:對隱私資料進行脫敏處理
- 資料許可權:根據資料使用者的不同角色和需求,開放不同許可權
- 血緣追溯:建立資料血緣關係,可追溯資料生產的來龍去脈
- 下載限制:限制資料結果集的下載條數,防止資料外洩
-
服務層面
- 應用監控:監控資料使用端、使用次數、使用流量等
- 介面管理:生產和管理資料輸出介面
- 資料脫敏
六、資料應用
給業務賦能,是資料價值的最終體現,也就是我們講的資料業務化。資料業務化的方向有兩種:業務優化和業務創新。在資料業務化的過程中,為了更方便的服務於上層應用,我們先將資料形成服務介面,然後讓業務應用直接呼叫服務介面,即形成 資料服務化+服務業務化。
如何通過已有的 產品 + 方法論 + 最佳實踐 去完成一個業務優化和業務創新呢?這裡有一張完整的圖,幫助你更快的理解全過程。
以上,就是我們對於資料倉儲建設實踐積累總結出的經驗分享,歡迎與我們共同討論,共同碰撞!不服來稿!同時如果你覺得這篇文章對你有幫助,別忘了把這篇文章分享出去給更多人看到~另外,如果你對數倉工具數棲雲感興趣,歡迎進入 shuqi.dtwave.com 直接註冊使用
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69941024/viewspace-2668535/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 最強最全面的數倉建設規範指南
- 基於OneData的資料倉儲建設
- 中小銀行資料倉儲建設 | 最佳實踐
- 如何構建資料倉儲模型?模型
- [數倉]資料倉儲設計方案
- 雲端資料倉儲的模式選型與建設模式
- 滴滴資料倉儲指標體系建設實踐指標
- Hive:資料倉儲構建步驟Hive
- 資料倉儲(6)數倉分層設計
- 資料倉儲(7)數倉規範設計
- 構建實時資料倉儲首選,雲原生資料倉儲AnalyticDB for MySQL技術解密MySql解密
- 企業為什麼要建資料倉儲?
- 資料湖和中央資料倉儲的設計
- 雲資料建模:為資料倉儲設計資料庫資料庫
- 最新資料倉儲建模指南頂級教程加強版
- 使用Power BI構建資料倉儲與BI方案
- 資料倉儲之拉鍊表設計
- 資料倉儲架構分層設計架構
- 資料倉儲為什麼要進行分層建設?怎麼分?
- 資料庫倉庫系列:(一)什麼是資料倉儲,為什麼要資料倉儲資料庫
- 《Greenplum構建實時資料倉儲實踐》簡介
- 資料倉儲 - ER模型模型
- 為什麼要建資料倉儲,而不是直連資料來源?
- React Native 效能優化指南【全網最全,值得收藏】React Native優化
- 資料倉儲應該用什麼方案——資料倉儲實施方案概述
- 離線數倉建設之資料匯出
- 年度文章集合 | 最全微前端集合【建議收藏】前端
- HashData完成1500萬美元融資 加速構建雲原生資料倉儲
- 什麼是資料倉儲
- 什麼是資料倉儲?
- 資料倉儲經驗概念
- 資料倉儲建模方法論
- 淺談資料倉儲和大資料大資料
- 資料湖會取代資料倉儲嗎?
- 談談資料湖和資料倉儲
- 資料湖 vs 資料倉儲 vs 資料庫資料庫
- 史上最全排序演算法總結!建議收藏排序演算法
- 【資料倉儲】|4 維度建模之事實表設計