什麼是資料倉儲
資料倉儲的概念可以追溯到20
世紀80
年代,當時IBM
的研究人員開發出了“商業資料倉儲”。本質上,資料倉儲試圖提供一種從操作型系統到決策支援環境的資料流架構模型。資料倉儲概念的提出,是為了解決與這個資料流相關的各種問題,主要是解決多重資料複製帶來的高成本問題。在沒有資料倉儲的時代,需要大量的冗餘資料來支撐多個決策支援環境。
在大組織裡,多個決策支援環境獨立運作是典型的情況。儘管每個環境服務於不同的使用者,但這些環境經常需要大量相同的資料。處理過程包括收集、清洗、整合來自多個資料來源的資料,併為每個決策支援環境做部分資料複製。資料來源通常是早已存在的操作型系統,很多是遺留系統。此外,當一個新的決策支援環境形成時,操作型系統的資料經常被再次複用。使用者訪問這些處理後的資料。
資料倉儲之父Bill Inmon 在1991 年出版的 Building the Data Warehouse 一書中首+次提出了被廣為認可的資料倉儲定義。Inmon 將資料倉儲描述為一個面向主題的、整合的、隨時間變化的、非易失的資料集合,用於支援管理者的決策過程。這個定義有些複雜並且難以理解,下面我們將它分解開來進行說明。
1. 面向主題
傳統操作型系統是圍繞公司的功能性應用進行組織的,而資料倉儲是面向主題的。主題是一個抽象概念,簡單說就是與業務相關的資料的類別,每一個主題基本對應一個宏觀的分析領域。資料倉儲被設計成輔助人們分析資料。例如,一個公司要分析銷售資料,就可以建立一個專注於銷售的資料倉儲,使用這個資料倉儲,就可以回答類似於“去年誰是我們這款產品的最+佳使用者”這樣的問題。這個場景下的“銷售”就是一個資料主題,而這種透過劃分主題定義資料倉儲的能力,就使得資料倉儲是面向主題的。主題域是對某個主題進行分析後確定的主題的邊界,如客戶、銷售、產品都是主題域的例子。
2. 整合
整合的概念與面向主題密切相關。還用銷售的例子,假設公司有多條產品線和多種產品銷售渠道,而每個產品線都有自己獨立的銷售資料庫。此時,要想從公司層面整體分析銷售資料,必須將多個分散的資料來源統一成一致的、無歧義的資料格式,然後再放置到資料倉儲中。因此資料倉儲必須能夠解決諸如產品命名衝突、計量單位不一致等問題。當完成了這些資料整合工作後,該資料倉儲就可稱為是整合的。
3. 隨時間變化
為了發現業務變化的趨勢、存在的問題,或者新的機會,需要分析大量歷史資料。這與聯機事務處理(OLTP )系統形成鮮明對比。聯機事務處理反應的是當前時間點的資料情況,要求高效能、高併發和極短的響應時間。出於這樣的需求考慮,聯機事務處理系統中一般都將資料依照活躍程度分級,把歷史資料遷移到歸檔資料庫中。而資料倉儲關注的是資料隨時間變化的情況,並且能反映在過去某個時間點的資料是怎樣的。換句話說,資料倉儲中的資料是反映了某一歷史時間點的資料快照,這也就是術語“隨時間變化”的含義。當然,任何一個儲存結構都不可能無限擴充套件,資料也不可能只入不出地永+久駐留在資料倉儲中,它在資料倉儲中也有自己的生命週期。到了一定時候,資料會從資料倉儲中移除,移除的方式可能是將細節資料彙總後刪除、將老的資料轉儲到大容量介質後刪除或直接物理刪除等。
4. 非易失
非易失指的是,一旦進入到資料倉儲中,資料就不應該再有改變。操作型環境中的資料一般都會頻繁更新,而在資料倉儲環境中一般並不進行資料更新。當改變的操作型資料進入資料倉儲時會產生新的記錄,這樣就保留了資料變化的歷史軌跡。也就是說,資料倉儲中的資料基本是靜態的。這是一個不難理解的邏輯概念。資料倉儲的目的就是要根據曾經發生的事件進行分析,如果資料是可修改的,將使歷史分析變得沒有意義。
除了以上四個特性外,資料倉儲還有一個非常重要的概念,就是粒度。粒度問題遍佈於資料倉儲體系結構的各個部分。粒度是指資料的細節或彙總程度,細節程度越高,粒度級別越低。例如,單個事務是低粒度級別,而一個月全部事務的彙總就是高粒度級別。
資料粒度一直是資料倉儲設計需要重點思考的問題。在早期的操作型系統中,當細節資料被更新時,幾乎總是將其存放在最低粒度級別上;而在資料倉儲環境中,通常不這樣做。例如,如果資料被裝載進資料倉儲的頻率是每天一次,那麼一天之內的資料更新將被忽略。
粒度之所以是資料倉儲環境的關鍵設計問題,是因為它極大地影響了資料倉儲的資料量和可以進行的查詢型別。粒度級別越低,資料量越大,查詢的細節程度就越高,查詢範圍就越廣泛,反之亦然。
大多數情況下,資料會以很低的粒度級別進入資料倉儲,如日誌型別的資料或點選流資料,此時應該對資料進行編輯、過濾和彙總,使其適應資料倉儲環境的粒度級別。如果得到的資料粒度級別比資料倉儲的高,那將意味著在資料存入資料倉儲前,開發人員必須花費大量的設計和資源來對資料進行拆分。
本文節選自《 Greenplum 構建實時資料倉儲實踐》,內容釋出獲得作者和出版社授權。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18841117/viewspace-2952665/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 什麼是資料倉儲?
- 資料庫倉庫系列:(一)什麼是資料倉儲,為什麼要資料倉儲資料庫
- 到底什麼是實時資料倉儲?
- 資料湖是誰?那資料倉儲又算什麼?
- 通俗易懂了解什麼是資料倉儲
- 資料倉儲應該用什麼方案——資料倉儲實施方案概述
- 資料倉儲是什麼?它有什麼用?一文帶你全瞭解
- 企業為什麼要建資料倉儲?
- ETL是什麼?淺談ETL對資料倉儲的重要性
- DDD | 05-什麼是倉儲層
- FreeSql.Repository (一)什麼是倉儲SQL
- 什麼是智慧倉儲?如何低成本快速打造智慧倉儲體系?
- BI, 資料倉儲,ETL, 資料開發,有什麼區別
- 資料庫mysql儲存是什麼?可以存什麼?資料庫MySql
- 什麼是YottaChain儲存,為什麼說是未來資料儲存的趨勢?AI
- 為什麼要建資料倉儲,而不是直連資料來源?
- 資料倉儲、資料集市、資料湖、資料中臺到底有什麼區別?
- 資料湖是下一代資料倉儲?
- 資料倉儲為什麼要進行分層建設?怎麼分?
- 什麼是大資料系統儲存及管理?大資料
- 資料倉儲 - ER模型模型
- [數倉]資料倉儲設計方案
- 倉儲管理平臺網站的商業模式是什麼網站模式
- 一文讀懂選擇資料湖還是資料倉儲
- 什麼是大資料?大資料能做什麼?大資料
- 資料倉儲經驗概念
- 資料倉儲建模方法論
- 淺談資料倉儲和大資料大資料
- 資料湖會取代資料倉儲嗎?
- 談談資料湖和資料倉儲
- 資料湖 vs 資料倉儲 vs 資料庫資料庫
- 什麼是大資料?大資料開發是做什麼的?大資料
- 什麼是資料運營?資料運營是做什麼的?
- 資料倉儲(6)數倉分層設計
- 資料倉儲(7)數倉規範設計
- 什麼是資料流?
- 什麼是資料蔓延?
- 什麼是大資料?大資料