把之前寫的數據倉庫系列博客,匯總和整理成了一本更系統的小書《Data Warehouse in Action》。
0x01 大數據和數據倉庫
16 年開始接觸數據倉庫,至今有一年半的時間,中間換了次工作,也算是在兩家公司實踐了數據倉庫。在此隨便寫一點關于大數據和數據倉庫的東西。
其實,很多時候大數據和數據倉庫這些都是一些概念使然,個人不太認為某一個概念比另一個概念厲害多少,大家是你中有我我中有你的關系。
就拿大數據來講,13年的時候我們會講,大數據包括了數據清洗、數據存儲、數據倉庫、數據挖掘、數據分析、數據可視化等一系列的概念。再看數據倉庫的概念,隨便找本十多年前的經典書籍就會發現,數據倉庫包含了 ETL、元數據、數據血緣管理、調度系統、數據可視化等概念。
那么誰更大?誰更厲害?這個其實不是我們的重點,這些東西最終還是要落在具體的工作和技術上。
比如說我是搞大數據開發中的數據收集、數據清洗工作,換一個名字我就可以說自己是搞 ETL 開發的;然后我再了解一些數據倉庫建模的內容,將自己的數據清洗的工作套上數據倉庫中的模型設計和數據分層,我就可以說自己是搞數據倉庫的。
再比如說我之前是搞數據倉庫的元數據系統、血統分析、調度系統的,然后同樣的理論模型,使用場景從 Oracle、Mysql這些關系型數據庫轉移到 HDFS、Hive、Spark 中,我就變成了大數據開發中的系統開發了。
其實很多工作內容和工作性質都很相近,自己靈活一點就好。
0x02 數據倉庫
數據倉庫的內容很多,這里主要對數據倉庫的體系做一個小的說明,算是這系列博客的總覽。
我們粗略地從數據倉庫中抽取幾個主題來聊:ETL、數據模型、元數據管理。
其中 ETL 的內容和現在大數據的體系綁定最深。MapReduce、Spark 這些計算引擎都可以算是 ETL 的重要組成部分。
數據模型的話,我們把維度建模、數據分層、各種表結構設計放在其中。這一塊算是數據倉庫中最重要的一塊。
元數據,我們可以理解為數據的管理。
針對上面三個主題,本系列文章有下面內容:
· 數據倉庫中的模型設計
· 詳解唯獨建模
· 拉鏈表是什么
· 緩慢變化維度
· 如何優雅地設計數據分層
· 別人家的元數據系統是怎么設計的
· 數據質量監控
· 聊一聊ETL的設計
· 重要的代理鍵
· 時間維表的實踐
0xFF 總結
從工作內容上來講,我們會把數據分為數據開發、數據分析、數據倉庫、數據挖掘的話。 很多人覺得高大上的是數據挖掘,覺得工程最強的是數據開發。
換一個角度,我們從數據的角度來講的,我們會把數據分為:數據計算、數據價值和數據管理。我們很多是以數據價值為導向地來做數據計算,但是往往會忽略數據管理,而數據倉庫的理念恰恰是數據管理。因此可以在適當的業務階段來重視數據管理。