数据仓库、OLAP和数据立方体
文章目錄
- 數據倉庫、OLAP和數據立方體
- 1. 數據倉庫
- 1.1. 數據倉庫定義
- 1.2. 關鍵術語解釋
- 2. 數據倉庫和數據庫的區別
- 3. OLAP
- 3.1. 基本概念
- 1) 維
- 2)操作
- 3.2. OLAP分類
- 4. 數據立方體
- 4.1. 維災難
- 4.2. 方體的計算
數據倉庫、OLAP和數據立方體
1. 數據倉庫
1.1. 數據倉庫定義
定義:面向主題、集成、時變和非易失的有組織的數據集合
將定義解釋一下:面向目標群體或特定目標、將不同數據源的數據集成到一起、可按時間區分數據、一般只是進行只讀操作的有組織的數據集合。
1.2. 關鍵術語解釋
- 面向主題:圍繞一些重要的主題(如顧客、供應商或產品),很明確要做什么,需要哪些視圖。
- 集成:將多個不同結構的(異構)數據源的數據集成到一起。
集成操作分為 查詢驅動 和 更新驅動 :
| 查詢驅動: | 用的時候通過一個集成程序對多個異構數據庫進行查詢 (note:這兒的查詢類似于SQL查詢,不過是從多個數據源里查詢) | 要的時候去拿 查詢開銷大。 |
| 更新驅動: | 提前將多個數據源的信息集成起來 | 先把需要的集成好了 |
- 時變:其中數據都包含時間維度的信息(如2015年的數據、2016年的數據。。。)。
- 非易失:一般只需要數據的初始化裝入 和 數據訪問(只讀),不涉及事務處理。
-
數據倉庫:數據倉庫是一個支持管理決策的數據集合。數據是面向主題的、集成的、不易丟失的并且是時間變量。所有操作環境和外部數據源的快照集合。它并不需要非常精確,因為它必須在特定的時間基礎上從操作環境中提取出來。數據倉庫只限于單個主題的區域,例如顧客、部門、地點等。
-
數據集市:數據集市在從數據倉庫獲取數據時可以依賴于數據倉庫,或者當它們從操作系統中獲取數據時就不依賴于數據倉庫。
-
聯機操作數據庫系統(Online Transaction Processing)OLTP:聯機事務、數據增刪改查CRUD
-
聯機分析處理(Online Analytical Processing)OLAP:不同格式的組織和提供數據(各式各樣的讀)
-
事實:數據倉庫中的信息單元,也是多維空間中的一個單元,受分析單元的限制。事實存儲于一張表中(當使用關系數據庫時)或者是多維數據庫中的一個單元。
每個事實包括關于事實(收入、價值、滿意記錄等)的基本信息,并且與維度相關。 -
維度:綁定由坐標系定義的空間的坐標系的軸線。(node:屬性)
數據倉庫中的坐標系定義了數據單元,其中包含事實。坐標系的一個例子就是帶有 x 維度和 y 維度的 Cartesian(笛卡爾)坐標系。
在數據倉庫中,時間總是維度之一。 -
數據立方體:可以以多維對數據建模和觀察。由事實和維定義。
-
分析空間:數據倉庫中一定量的數據,用于進行數據挖掘以發現新信息同時支持管理決策。
-
切片:一種用來在數據倉庫中將一個維度中的分析空間限制為數據子集的技術。
-
切塊:一種用來在數據倉庫中將多個維度中的分析空間限制為數據子集的技術。
-
數據模型:E-R圖被廣泛的用于關系數據庫的設計,數據庫模式用E-R圖表示。而數據倉庫模型有星型、雪花、星座。
-
星型模式:一種使用關系數據庫實現多維分析空間的模式,稱為星型模式。
當所有維表都直接連接到“ 事實表”上時,整個圖解就像星星一樣,故將該模型稱為星型模型
-
雪花模式:不管什么原因,當星型模式的維度需要進行規范化時,星型模式就演進為雪花模式。
當有一個或多個維表沒有直接連接到事實表上,而是通過其他維表連接到事實表上時,其圖解就像多個雪花連接在一起,故稱雪花模型。
雪花模型是對星型模型的擴展。它對星型模型的維表進一步層次化,原有的各維表可能被擴展為小的事實表,形成一些局部的 " 層次 " 區域,這些被分解的表都連接到主維度表而不是事實表。如上圖,將地域維表又分解為國家,省份,城市等維表。
- 星座模式:星型模式的集合,出現多個事實表。
2. 數據倉庫和數據庫的區別
聯機操作數據庫系統(Online Transaction Processing)OLTP
主要任務:聯機事務、數據增刪改查
聯機分析處理(Online Analytical Processing)OLAP
主要任務:不同格式的組織和提供數據(各式各樣的讀)
| 特性 | 操作處理(事務處理) | 分析處理 |
| 面向 | 事務 | 分析 |
| DB設計 | E-R圖,面向應用 | 星型/雪花、面向主題 |
| 數據 | 最新的 | 歷史的、跨時間維度的 |
| 訪問 | 讀、寫 | 讀 |
| 操作 | 索引、散列 | 大量掃描 |
| 數據規模 | >GB | >TB |
| 訪問 | 讀、寫 | 讀 |
3. OLAP
3.1. 基本概念
1) 維
除了維的基本概念,還有多維分析的分析操作。
2)操作
3.2. OLAP分類
OLAP按存儲器的數據存儲格式分為ROLAP、MOLAP和HOLAP。
| MOLAP | Multi-dimensional OLAP | 以多維數組(Multi-dimensional Array)存儲模型的OLAP,是OLAP發源最初的形態,某些方面也等同于OLAP。 它的特點是數據需要預計算(pre-computaion),然后把預計算之后的結果(cube)存在多維數組里。 | cube包含所有維度的聚合結果,所以查詢速度非???。 計算結果數據占用的磁盤空間相對關系型數據庫更小 | 空間和時間開銷大。update cube的時間跟計算維度(degree)相關,隨著維度增加計算時間大幅增加,此外預計算還會造成數據庫占用急劇膨脹。查詢靈活度比較低。需要提前設計維度模型,查詢分析的內容僅限于這些指定維度,增加維度需要重新計算。 |
| ROLAP | Relational OLAP | 基于關系模型存放數據,一般要求事實表(fact table)和維度表(dimensition table)按一定關系設計,它不需要預計算,使用標準SQL就可以根據需要即時查詢不同維度數據。 | 擴展性強,適用于維度數量多的模型,MOLAP對于維度多的模型預計算慢,空間占用大。 更適合處理non-aggregate事實,例如文本描述 基于row數據更容易做權限管理 | 因為是即時計算,查詢響應時間一般比預計算的MOLAP長。 |
| HOLAP | Hybrid OLAP | MOLAP和ROLAP類型的混合運用 細節的數據以ROLAP的形式存放,更加方便靈活,而高度聚合的數據以MOLAP的形式展現 | 更適合于高效的分析處理。公司使用HOLAP的目的是根據不同場景來利用不同OLAP的特性。 |
4. 數據立方體
4.1. 維災難
n 維數據立方體有多少個方體?
| no | 2n2^n2n | |
| yes | ∏i=1nLi+1\prod_{i=1}^n L_i+1∏i=1n?Li?+1 | LiL_iLi?:與維 i 相關聯的層數 |
概念分層:如時間維度可分為year、mouth、day、hour、minute等層。
當n比較小的時候方體數目還不多。但是其數目是隨著n的增加而幾何增加的,這就是維災難。
note:圖片為轉載
4.2. 方體的計算
| 不物化 | 不預先計算任何 ‘非基本’ 方體 | 查詢時候開銷大 |
| 完全物化 | 預先計算 所有 方體 | 物化開銷大 |
| 部分物化 | 預先計算 部分 方體 | 一種折中的方式 |
| 冰山立方體 | 一個數據立方體 只存放聚集值(count,sum等)大于某個最小支持度閾值的立方體單元 | 一種折中的方式 |
總結
以上是生活随笔為你收集整理的数据仓库、OLAP和数据立方体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转贴和菜头的曝脸存照
- 下一篇: 百度云主机只能访问首页,bcloud_n