基於阿里雲的數據倉庫架構設計
產品對比
阿里雲產品 | 同類產品 | 簡介 |
---|---|---|
RDS | MySQL、PostgreSQL | 關係型數據庫服務,是阿里提供的雲數據庫,有各種版本,例如MySQL版、PostgreSQL版、SQLServer版等 |
DTS | Canal、DataX、Sqoop、Flume | 數據傳輸服務,功能豐富,包括集數據遷移、數據訂閱、數據實時同步的功能,適用於RDMS、NoSQL、大數據等產品 |
DataHub | Kafka | 數據總線,主要功能和Kafka類似,但是有更多的接口、功能 |
MaxCompute | Hadoop | 通用的離線計算平臺(原名ODPS),支持SQL、MapReduce、UDF、Graph、Spark on MaxCompute等計算模型。調度系統是伏羲,存儲系統是盤古 |
RealtimeCompute | Spark、Flink | 實時計算框架(以前版本是StreamCompute),底層基於Blink |
DataWorks | - | 可視化的一站式大數據工場,包括數據集成、開發、治理、服務、質量、安全等功能,具體地說就是方便你使用MaxCompute、RealtimeCompute |
AnalyticDB | GreenPlum、LibrA | 分析型數據庫,基於MPP架構,主要包括MySQL版、PostgreSQL版 |
DataV | Tableau、PowerBI | 可視化數據展示工具,主要做大屏展示 |
QuickBI | Tableau、PowerBI | 相較於DataV更爲靈活,主要做數據分析,運營、分析師使用較多 |
離線數倉
- 架構設計圖
- 說明
- 原始數據主要來源於兩部分
- 日誌服務器產生的用戶行爲數據
- 業務數據庫產生的數據
- 當然你還可以導入各種數據,例如網絡爬蟲的數據、數據市場購買的數據等等
- 數據導入部分
- 日誌數據採用Flume進行導入DataHub既可(TailDirSource + MemoryChannel + DataHubSink)
- 業務數據直接利用MaxCompute同步進入平臺即可
- 數據倉庫建設部分,需要進行多層劃分
- ODS(原始數據層)- 最原始的數據,只做最簡單的格式檢查,以及數據壓縮
- DWD(數據明細層)- 數據明細層,需要進行各種ETL清洗、抽取、拆分、降維,得到實體表、維度表、事實表
- DWS(數據彙總層)- 針對明細層的數據做一個輕度聚合,進行各種統計指標的初步彙總,方便後面應用層直接使用
- ADS(數據應用層)- 應用層是最終的數據結果,包括最終需要的各類指標,還需要導入到關係型數據庫中,方便Web端查詢
- 分析用數據庫
- 此部分可選用AnalyticDB、RDS或自建關係型庫,都可以,主要是爲了方便後續系統查詢
- 如果數據量不大,分析量小,直接採用RDS或自建關係型庫即可
- 如果因業務需求需要進行大量變化的數據分析,那麼建議使用AnalyticDB
- 數據展示部分
- 根據需求選擇阿里的QuickBI或自行定製化設計Web數據展示界面均可
- 原始數據主要來源於兩部分
實時數倉
- 架構設計圖
- 說明
- 原始數據主要來源於兩部分
- 日誌服務器產生的用戶行爲數據
- 業務數據庫產生的數據
- 數據導入部分
- 日誌數據採用Flume進行導入DataHub既可(TailDirSource + MemoryChannel + DataHubSink)
- 業務數據需要利用DTS實時導入到DataHub
- 數據倉庫建設部分(使用Kappa架構,傳統Lambda架構的兩條鏈路縮減爲一條,降低了維護成本,但出問題難以處理)
- 原始數據先進入到DataHub,接着由RealtimeCompute進行清洗、關聯,得到實時明細數據
- 實時明細數據進入到DataHub,接着由RealtimeCompute進行輕度、高度聚合,得到實時彙總數據
- 實時彙總數據進入到DataHub(也可以直接進入到分析庫中),再導入到AnalyticDB
- 注意:如果需要非常高的實時度,那麼建議不分層,直接處理得到輕度、高度聚合結果,進入AnalyticDB(推薦Lambda架構)
- 分析用數據庫(建議同離線部分,更推薦AnalyticDB)
- 此部分庫從前面DataHub得到了彙總數據
- 接着可以在內部進行指標統計生成應用層數據,直接展示即可
- 或是交由後續服務應用自行調用分析(適用於各種經常變化的分析情況)
- 此部分庫從前面DataHub得到了彙總數據
- 數據展示部分
- 此部分同離線數倉,不過通常實時部分都是做的大屏展示,包含各類統計指標,可以直接使用阿里的DataV
- 原始數據主要來源於兩部分
數倉規範
-
數倉分層規範
分層 概念 說明 ODS(Operational Data Store) 原始數據層 原始數據,格式基本不變,只做少量的校驗 DWD(Data Warehouse Detail) 數據明細層 數據標準化、補齊、清洗、拆分等 DWS(Data Warehouse Summary) 數據彙總層 數據輕度聚合,提高複用性 ADS(Application Data Store) 數據應用層 最終應用展示指標 -
表命名規範(按下劃線拼接)
數倉分層 業務 描述 時間週期/存儲方式 dwd tmall user_base_info day dwd tmall user_login_info day dws tmall active_user week ads tmall user_retention_rate week ads tmall user_convert month ads tmall page_view day