數據倉庫很難寫清楚的,試試看能不能以亂彈的方式將它寫的通俗易懂,老少咸宜。
數據倉庫就是把不同數據庫的數據收集到一起,加以整理,主要用于做長期趨勢分析 。也就是說我們需要 從數據庫中把數據取過來,加工下(規整下),存儲起來,分析展現。下面就按這個過程亂彈下數據倉庫。
首先要考慮我們需要什么數據,換句話說那些數據是值得集成的,那些數據是值得保留的。當然這些需要客戶說了算,看他們關心那些數據,關心那些指標,關心數據的時間,希望以怎樣的方式展現。比如需要按月統計各類型手機用戶話費類型比率。可以知道客戶需要有話費類型、用戶類型、話費金額、時間這些數據及數據的關系。這樣就有了簡單的數據模型,知道我們需要什么數據,數據之間的簡單關系了。當然也有人叫它企業數據模型,這個模型是有數據倉庫特點的模型即面向主題的、與時間相關的。為了不落下不嚴密的口舌暫叫“簡單企業模型”。
有了簡單企業模型,我們就按圖索驥從業務系統中獲取數據了,可是你在A系統中叫張三、B系統中叫zhangsan、C系統中叫7。把這些數據整進數據倉庫也沒有辦法利用,沒有統一的標準,怎么查詢分析呀。這下應該看出來了需要轉換數據,按照統一的標準轉換。說的通俗些需要統一的數據字典或編碼標準,將各個業務系統的數據轉換成為標準的數據。當然實際情況復雜的多,需要將生數據進行轉碼,轉類型甚至合并,補缺等等最終整成能用的數據或者叫熟數據,加載入目的數據庫。源數據可能是xml、平面文件,oracle,foxbase等,沒有遇不到只有想不到。這個數據轉換、清洗、加載、抽取的過程就叫ETL。
可是問題又出現了,在業務系統關心的是細節數據,如某人當月每次通話記錄,在數據倉庫關心的匯總數據,如某類人當月通話次數。不能按照正常的數據庫設計進行數據倉庫的設計,因為很多數據是決策層面的人不需要,而且數據量一大存儲就大,存儲大查詢就慢,查詢速度一慢數據倉庫縱然有白好也一無是處了。于是就演變出來雪花模型和星型模型。星型模型是目前采用較多的模型。可以這樣理解星型模型的角就是group by的條件,中心的數據就是聚合的結果。將數據按照星型模型存儲起來,作為數據倉庫的數據。
現在就差數據展現分析部分了,只要數據對客戶來說沒有什么用。數據倉庫有多種應用如靜態報表、多維查詢、即席查詢、數據挖掘等等。可以簡單的認為我把多個維度一拼就是一個分析,比如我把聯通、北京、用戶數一組合就認為聯通北京的用戶數是多少?當然也可以一拆開聯通、用戶數認為聯通的用戶數是多少?當然你也許已經知道了這就是數據立方,我只是從不同的角度看這個世界,看到的層面不一樣。
為了文章通俗,減少了數據倉庫一些核心方面,比如數據質量、元數據管理、數據安全、ODS、數據集市等介紹。 希望對大家有用。