1. 什么是數據倉庫?
在wiki中對數據倉庫的解釋是:
在計算中,數據倉庫(DW或DWH),也稱為企業數據倉庫(EDW),是用於報告和數據分析的系統,被認為是商業智能的核心組成部分 DW是來自一個或多個不同來源的集成數據的中央存儲庫。 他們將當前和歷史數據存儲在一個地方,用於為整個企業的工人創建分析報告。
倉庫中存儲的數據是從操作系統(例如營銷或銷售)上載的。 數據可能會通過可操作的數據存儲,並且可能需要進行數據清理才能進行其他操作,以確保在DW中使用該數據進行報告之前。
提取,轉換,加載(ETL)和提取,加載,轉換(E-LT)是用於構建數據倉庫系統的兩種主要方法。
在這里我們先解釋兩個概念:
數據庫:數據庫是通常從計算機系統以電子方式存儲和訪問的數據的有組織的集合。 在數據庫更復雜的地方,通常使用正式的設計和建模技術來開發它們。
數據庫軟件:是一種軟件,實現了數據庫功能的軟件,可以實際操作,解決業務問題,如mysql,sqlserver,oracle等數據庫。
我們通常講數據庫,往往首先代入了mysql或者oracle的形象,實際上我們通常講的數據庫是數據庫軟件,而不是數據庫這個概念。數據庫和數據倉庫都是數據的組織形式,可能是使用一個軟件或者多個軟件組合實現,二者從概念上講沒有本質區別,只不過數據庫側重OLTP,是實現業務實現,而數據倉庫則是面向OLAP是面向決策的數據分析,造成二者組織、實現方式不同。
在實際業務中二者扮演了什么角色呢,下面簡單舉個例子。
1. 在現在的商業化服務框架中,數據庫是必須存在的,如果有同學抬杠說我只有幾個簡單的靜態網頁,用戶注冊信息我都存在配置文件中,新增用戶我就修改配置文件... ,那么請注意我說的是商業化的服務。最通俗的將,我們日常使用的微信在注冊的時候就會分配一個id,關聯我們輸入的用戶名,密碼,這些信息會存儲在一個數據表中,當我們進行登錄操作時會讀取這個表,比對用戶名和密碼是否一致,如果一致則完成登錄。
我們日常發送到朋友圈信息也會存儲在數據庫中,當你打開朋友圈時會讀取存放這些信息的數據庫,進行數據展現。
2. 當我們進行登錄的時候查詢用戶登錄信息表可以實現這個功能,當有一天你的產品走過來告訴你,我們領導想知道最近每天有多少新增用戶,這個時候你一陣竊喜,幸好在用戶登錄表設置的create_time,遍歷一次可以拿到這些信息,你在一個從庫上執行了一下這個功能(你有一個從庫),執行時間有點長,稍稍影響了一些用戶的登錄,用戶可能懷疑自己網絡問題,沒人追究這件事,你完成了這個需求;第二天產品告訴你,領導還想知道每天新增用戶的地區分布,你看着用戶登錄表一籌莫展,設計的時候根本沒有所屬地址的信息,即便拿到你也不會存,這個時候就會引入數據倉庫的概念了。
待續