–
來,我們直接對照這張流程圖用大白話講解:
-
OLTP層
用來存放原始數據的數據庫,不同的數據可能來自於不同的數據庫。比如CRM系統的數據來自於oracle數據庫,ERP系統的數據來自於mysql數據庫。這一層的數據可能是包含不同格式,各種各樣的“髒數據”。比如說CRM系統的數據中,性別是用0,1來區分男女,而ERP系統的性別是用M,F來區分。
爲了數據質量過關,數據好用,我們就需要對這些數據進行清洗,清洗就要進入到下一層ETL層。
-
ETL層
這一層主要的工作是對數據庫中的數據進行提取、轉換,然後裝載到我們的ODS層。 -
ODS層
這一層是對數據進行存儲的地方,也可以稱爲數據緩衝層。因爲這一層的數據不會做過多的分析操作,其數據結構基本上是和OLTP層的數據結構保持一致,可以理解爲是從OLTP層copy了一份數據過來。區別在於,比如說OLTP層來自不同數據庫的數據中可能性別的表達形式不一致,經過ETL層之後,就會把性別的數據統一起來,統一用0,1表示或者M,F表示。
-
EDW層
當我們把髒數據問題全部清洗完畢後,數據就會錄入到EDW層。我們常說數據倉庫是面向主題、集成、相對穩定、反映歷史變化的數據集合。這句話怎麼理解呢?
我們一個一個詞拆開來看:
面向主題的:打個比方,我們現在有一個糖果廠,生產不同水果口味的糖果。生產完的糖果就要經過包裝才能進入到倉庫,然後按照不同水果口味分門別類(面向主題)的放在倉庫不同的位置上。
對於數據倉庫也是一樣的理解,按照不同主題數據分別存儲。集成的:集成的意思就是OLTP的數據都是來自於不同的數據庫,把不同數據庫裏面的數據經過一系列的加工、整理、彙總後統一拿過來。
相對穩定的:數據倉庫就用來做查詢操作,做統計分析,不要用來做增刪操作(穩定的)。比方說我們糖果廠的糖果都已經打包好了,你不可能時不時去倉庫拆開包裝來看吧?
反映歷史變化的:意思是數據倉庫裏面的歷史數據都會存放一段時間,出報表的時候方便做同比環比。
-
DM層
數據集市其實可以說是數據倉庫的一部分,大部分的數據其實都是來自於EDW層。也可以看做是小型的部門級別的數據倉庫,根據部門業務的需求,對數據進行定製化。即按照不同的維度和指標進行統計分析(group by、sum等操作)。
比如說按照地區(維度)去統計員工的收入(指標)情況。 -
OLAP層
是數據倉庫的應用層,用來支持決策分析,提供直觀的查詢結果等操作。 -
展示
就是數據可視化的過程,可以是tableau形式展示等。
其實這一整個流程就是一個從後端數據處理到前端展示的過程。