數據倉庫概念
數據倉庫,英文名稱為 Data Warehouse ,可簡寫為 DW 或 DWH,是為企業所有級別的決策制定過程,提供所有類型數據支持的戰略集合。它出於分析報告和決策支持目的而創建。
數據倉庫是數據庫概念的升級。 從邏輯上理解, 數據庫和數據倉庫沒有區別, 都是通過數據庫軟件實現的存放數據的地方, 只不過從數據量來說, 數據倉庫要比數據庫更龐大得多。 數據倉庫主要用於數據挖掘和數據分析, 輔助領導做決策。
數據庫與數據倉庫的區別
數據庫主要用於事務處理,數據倉庫主要用於數據分析、挖掘
數據庫與數據倉庫的本質區別是 OLTP 和 OLAP 的區別
OLTP(聯機事務處理 on-line transaction processing)
OLTP 主要是執行基本的、日常的事務處理,比如數據庫記錄的增、刪、改、查。比如在銀行存取一筆款,就是一個事務交易。
OLTP 的特點一般有:
- 實時性要求高
- 數據量不是很大
- 跟業務系統緊密關聯
- 並發性要求高
- 數據一致性要求高
OLAP( 聯機分析處理 OLAP On-Line Analytical Processing )
OLAP 是數據倉庫系統的主要應用,支持復雜的分析操作,側重決策支持,並且提供直觀易懂的查詢結果。典型的應用就是復雜的動態的報表系統。
OLAP 的特點一般有:
- 處理的是歷史數據
- 實時性要求不是很高
- 數據量大
- 與業務系統關聯不大,更多用於提供數據分析和決策支持
數據倉庫比較流行的有:Oracle、Db2、Teradata(商業數據倉庫業界老大)、Hive 等
ETL
ELT 的概念
ETL 這個術語來源於數據倉庫,ETL 指的是將業務系統的數據經過抽取、清洗轉換之后加載到數據倉庫的過程。ETL 的目的是將企業中的分散、零亂、標准不統一的數據整合到一起,為企業的決策提供分析依據。
ETL是 BI 項目重要的一個環節。 通常情況下,在 BI 項目中 ETL 會花掉整個項目至少 1/3 的時間,ETL 設計的好壞直接關接到 BI 項目的成敗
BI 即商務智能,它是一套完整的解決方案,用來將企業中現有的數據進行有效的整合,快速准確地提供報表並提出決策依據,幫助企業做出明智的業務經營決策。
ETL 的設計分三部分:數據抽取(extract)、數據的清洗轉換(transform)、數據的加載(load)
-
數據的抽取是從各個不同的數據源抽取到 ODS(Operational Data Store,操作型數據存儲,即一種常被用作數據倉庫臨時區域的數據庫) 中,這個過程也可以做一些簡單的數據的清洗和轉換。在抽取的過程中需要挑選不同的抽取方法,盡可能的提高 ETL 的運行效率。
-
ETL 三個部分中,花費時間最長的是 “T”(Transform,清洗、轉換) 的部分,一般情況下這部分工作量是整個 ETL 的2/3。
-
數據的加載一般在數據清洗完了之后直接寫入 DW(Data Warehousing,數據倉庫) 中去。
ETL 的實現有多種方法,常用的有三種
- 借助 ETL 工具(如 Oracle的 OWB、SQL Server 2000 的 DTS、SQL Server2005 的 SSIS 服務、Informatic 等) 實現
- 使用 SQL 方式實現
- ETL 工具和 SQL 相結合
前兩種方法各有各的優缺點,借助工具可以快速的建立起 ETL 工程,屏蔽了復雜的編碼任務,提高了速度,降低了難度,但是缺少靈活性。SQL 的方法優點是靈活,提高 ETL 運行效率,但是編碼復雜,對技術要求比較高。第三種是綜合了前面二種的優點,會極大地提高 ETL 的開發速度和效率。