一、數據倉庫基本概念
數據倉庫它是數據庫技術發展到一定階段的產物。數據倉庫是面向主題的、集成的、穩定的和隨時間變化的數據集合,是一個數據分析處理過程,而不僅僅是一個數據存儲軟件或產品。
二、數據倉庫分層
數據倉庫主要分為 STG、ODS、DWD、DWS、ADS 和 DIM 共 6 個層次,數據從底層開始,向上層進行傳遞、轉換、重組等操作。
STG原始數據層:用來表示原始數據在數據倉庫的落地,數據結構和原始系統發送上來的保持一致。
ODS數據操作層:用于原始數據在數據平臺的落地。
DWD數據明細層:用于源系統數據在數據平臺中的永久存儲。
DWS數據服務層:數據匯總層,該層會在 DWD 層的數據基礎上,對數據做輕度的聚合操作,生成一系列的中間表,提升公共指標的復用性,減少重復加工。
ADS應用數據層:該層存放數據產品個性化的統計指標數據,一般以某個業務應用為出發點進行建設, ADS 層只關心自己需要的數據,不會全盤考慮企業整體的數據架構和應用。
DIM維度層:主要存儲公共的屬性數據,比如產品類別、地理位置、時間詳情等信息。
在數據倉庫系統內部,對數據進行分層,主要有如下好處:
1)將復雜問題簡單化,將復雜任務的多個步驟分解到各個層次中,每一層只處理較少的步驟,使單個任務更容易理解;
2)防止煙囪式開發,減少重復開發,開發通用中間層數據,減少重復計算;
3)整個數據層次清晰,每個層次的數據都有職責定位,便于使用和理解;
4)可進行數據血緣追蹤,便于快速定位問題。
三、工作流概述
工作流是指一類能夠完全自動執行的經營過程,根據一系列過程規則,將文檔、信息或任務在不同的執行者之間進行傳遞與執行。簡單來說,工作流是通過計算機軟件進行定義、執行并監控的經營過程,而這種計 算機軟件就是工作流管理系統。
四、工作流當前應用狀況
目前應用于數據倉庫建設場景的工作流管理系統,主要存在以下幾個問題:
1、針對一些復雜的任務依賴,比如兩個任務都是小時調度,小時調度之間存在某種對應關系,現有工作流管理系統都是按任務進行依賴配置,不能做到每個任務不同調度時間之間的依賴配置,或者要寫大量的輔助代碼實現,給用戶帶來極大的使用不便。
2、對于新增或修改 ( 如發現某個統計指標計算有錯 ) 的任務節點,經常需要針對這樣的任務節點及其子任務節點進行歷史數據修補,以工作流為單位進行調度的系統,不太適合這種場景的處理。
3、都是以工作流為單位進行編輯、管理和發布部署,但是在實際的數據倉庫建設過程中,經常是多個數據開發工程師協同完成整個工作流的開發部署工作,每個人只負責部分工作流任務節點,不同開發者的任務相互依賴,現有的工作流管理系統不能很好滿足多人的開發協同工作。
五、工作流在數據倉庫建設中應用優化
將數據倉庫建設中的工作流節點,抽象成任務和實例兩個層次,可達到以下的優化效果:
1)通過任務的周期和依賴屬性,可以生成復雜的實例依賴關系,降低工作流節點依賴配置的復雜度;
2)能夠以某個任務節點為根節點,構造子工作流 ( 包含此任務節點,及其子任務節點、孫子任務節點等 ),覆蓋歷史數據修復等場景。
3)配置工作流任務節點時,無需變更整個工作流配置信息,只需配置當前任務節點的周期和依賴屬性等內容,提升工作流配置靈活性;