剛接觸數據倉庫是在我的第一份實習工作——數據中心數據管理系統開發,它是一個B/S架構的應用,與一般的項目不同的是,系統是以數據倉庫來進行數據存取的,這是我第一次聽說數倉這個詞,感覺它龐大而且神秘,不知道從何入手,對數據倉庫有一種敬畏之心,後來經過慢慢的學習和使用,發現其實它在應用開發中的使用方法跟傳... ...
剛接觸數據倉庫是在我的第一份實習工作——數據中心數據管理系統開發,它是一個B/S架構的應用,與一般的項目不同的是,系統是以數據倉庫來進行數據存取的,這是我第一次聽說數倉這個詞,感覺它龐大而且神秘,不知道從何入手,對數據倉庫有一種敬畏之心,後來經過慢慢的學習和使用,發現其實它在應用開發中的使用方法跟傳統關係資料庫沒什麼區別,無非就是普通的SQL查詢以及JDBC連接。所以數倉的使用不是本文的重點,我們主要來認識一下數據倉庫到底是什麼。
文章要點
- 什麼是數據倉庫
- 數據中心架構
- 數據倉庫內部架構
什麼是數據倉庫
數據倉庫(Data Warehouse)是面向主題的、集成的、穩定的、隨時間變化的數據集合,用來支持運營管理中的決策制定,為用戶提供各種手段從數據中獲取有用的信息。它的根本任務是對大量的業務數據進行歸納整理以及重組,然後提供給決策管理人員。
數據倉庫是依賴於資料庫進行數據存儲和管理的,所以資料庫是整個數據倉庫的核心。相對於傳統資料庫來說數倉的資料庫最突出的特點是對海量數據的支持和快速的檢索技術,最具代表性的是Teradata公司的Teradata資料庫。數據倉庫平臺即資料庫和其它各種軟體工具整合的一套數據倉庫軟體。
數據中心架構
數據中心的簡化架構如下圖:
名稱 | 說明 |
---|---|
業務系統 | 數據倉庫的數據來源系統,提供各種所需的業務系統數據,如清算系統、票務系統等業務數據 |
數據載入 | 通過FTP文件傳輸或者資料庫連接等方式,從業務系統中抽取數據統一存放,並提供給下游應用進行訪問 |
數據倉庫 | 數據載入到數據倉庫後,通過預先定義的數據模型處理數據,併進行存放彙總,包含臨時數據、核心模型數據、集市數據和元數據等,提供給下游應用使用 |
訪問代理 | 為下游應用對數據倉庫的訪問提供負載均衡、災備系統切換等服務 |
數據訪問 | 各下游應用如統計分析、運營評估、信息管理等應用平臺,對數據倉庫的數據進行查詢獲取,可通過導出數據文件或資料庫連接等方式進行訪問 |
ETL管理 | 對數據抽取轉換載入(ETL)的管理,它是構建數據倉庫的重要一環,包括總體控制、作業管理、上下游依賴管理、錯誤管理、調度監控等所有ETL相關內容的管理 |
數據倉庫內部架構
數據倉庫的真正關鍵是數據的存儲和管理。數據倉庫的組織管理方式決定了它有別於傳統資料庫,其中一個重要的特點是對數據的分區管理,ETL會根據預先定義的數據模型以及各種數據的用途,來對數倉中的數據進行劃分,它的內部架構一般是這樣的:
數據區 | 數據區名稱 | 說明 |
---|---|---|
STG | 臨時區 | 存放從源系統抽取的原始數據 |
ODS | 操作鏡像區 | 完成原始數據的增量累全量工作,保留較短歷史數據 |
PDM | 物理數據模型區 | 基於數據模型設計,存放規範化數據,保留較長歷史數據 |
SUM | 基礎數據衍生區 | 存放預統計、預彙總數據,提煉出對數據倉庫具有共性的數據訪問、統計需求,從而構建出的一個面向支持應用系統、數據分析與數據挖掘提供共用的數據訪問服務的公共數據區 |
APP | 應用集市區 | 按照應用系統分別建立,存放為某類特定的業務系統服務的數據集合,根據業務需要的重度彙總數據 |
本文為作者kMacro原創,轉載請註明來源:https://zkhdev.github.io/2018/09/22/dw-begin/。