OLAP與結構化資料分析(隨筆)
文章目錄
- OLAP與結構化資料分析(隨筆)
- 一、OLAP(聯機分析處理)
- 星型模型
- 聯機分析處理的主要操作包括
- 例:時間維度是月份
- 聯機分析處理的三種實作技術
- MOLAP
- ROLAP
- HOLAP
- 二、資料倉庫
- 資料倉庫的特點
- 資料倉庫上的分析任務
- SSB 這個測驗基準包含
- 三、高性能OLAP系統的關鍵技術
- 1.列存盤技術
- 行存盤
- 列存盤
- 2.位圖索引技術
- 3.記憶體資料庫技術
- 4.MPP并行資料庫
- 架構
- 資料劃分方法
- 查詢處理
- 5.資料庫查詢執行模式
- 6.分布式事務處理
- 兩階段提交協議
- 缺點
- 三階段提交協議
- 總結
一、OLAP(聯機分析處理)
OLAP(聯機分析處理)是在以星型模型建模的資料倉庫上進行多維分析,它一般在業務資料庫之外建立資料倉庫系統,它從業務資料庫抽取、轉換、和裝載資料,(ETL)
OLTP:回應時間比較短,
星型模型
星型模型包含事實表和維表,其中事實表主要記錄了具體的業務交易,維表記錄分類資訊,
聯機分析處理的主要操作包括
- 下鉆
- 上卷
- 切片
- 切塊
- 旋轉
PS:下鉆和上卷改變的是維的層次,變換分析的粒度,
上卷是在某個分析維度上,將低層次的細節資料概況到高層次的匯總資料,
下鉆是在某個分析維度上,將高層次的匯總資料深入到低細節資料進行觀察,
切片和切塊是選定一部分維度值,然后查看度量資料,若剩余維度只有兩個則稱為切片,若剩余維度有三個或三個以上稱為切塊,
旋轉操作是變換維的方向,
例:時間維度是月份
上卷操作就是把該操作上升到年度來分析,
下鉆操作就是把分析的粒度變成日期,
聯機分析處理的三種實作技術
按照資料存盤格式分類,OLAP系統可以分為多維OLAP(MOLAP)、關系OLAP(ROLAP)、混合OLAP(HOLAP)
MOLAP
將OLAP分析所用到的多維資料,物理存盤為多維陣列的形式,形成“立方體”結構
MOLAP
- 優點:性能高
- 缺點:占用大量的空間
ROLAP
將分析用的多維資料存盤在關系資料庫中,通過把OLAP操作表達成SQL查詢的形式,
ROLAP優點:采用關系資料庫保存原始明細資料,占用空間有限,但是由于每個OLAP操作都被轉換成一個SQL查詢重新執行,性能受到影響,
HOLAP
HOLAP把MOLAP和ROLAP兩種結構的優點結合起來,細節資料保存在關系型資料的事實表中,但是聚合后的資料保存在“立方體”中這種方式具有更好的靈活性,HOLAP的查詢效率比ROLAP高,但低于MOLAP,
| 操作型資料處理 | 分析型資料處理 | |
|---|---|---|
| 資料模型 | 物體–關系 | 星型模型/雪花模型 |
| 操作的記錄數量 | 少量記錄 | 大量記錄 |
| 資料是否可以更新 | 資料可以更新,洗掉 | 一般只對資料進行追加、不洗掉、極少更新 |
| 回應時間要求 | 妙級 | 分鐘級,小時級 |
| 目的 | 支持業務運行 | 支持決策需求 |
二、資料倉庫
資料倉庫一般不對應到某個廠商的具體產品,而是指一種面向分析的資料存盤方案,
資料倉庫的特點
- 面向主題的
- 集成的
- 非易失的
- 時變的
一種資料集合,用以支持管理決策,
資料倉庫上的分析任務
- 簡單分析
- 利用資料生成報表以及進行多維分析
- 復雜分析
- 資料上運行復雜的統計方法,機器學習和資料挖掘演算法從而發現不少那么顯然的規律,發現新的知識,
SSB 這個測驗基準包含
- 資料模型
- 作業負載
- 性能指標
三、高性能OLAP系統的關鍵技術
1.列存盤技術
行存盤
- 一行一行存放資料
- 適合存取少量資料行
列存盤
- 一列一列存盤資料
- 適合對資料進行分析,存取少量資料列
- 可以使用資料壓縮技術,減少磁盤空間占用和處理這些屬性列的時候的I/O操作開銷,從而加快資料處理程序,
2.位圖索引技術
高基數欄位的位圖索引
3.記憶體資料庫技術
- 存盤技術 :行存盤、列存盤、PAX存盤
- 索引技術 :可以幫助我們進行快速定位,避免全表掃描
- 查詢優化 :對于記憶體資料庫來講查詢優化的重點是如何利用多核CPU,以及眾核GPU實作關鍵資料操作的快速處理,比如選擇、投影、連接、聚集,
- 并發控制 :并發控制是在多個事務并發執行的情況下,保證資料庫狀態正確的技術手段,并發控制有兩大類演算法,分別是基于加鎖的并發控制和基于多版本管理的并發控制,
- 恢復技術
4.MPP并行資料庫
MPP并行資料庫,利用專用的資料庫集群的多個節點的并行處理能力,提高資料庫的查詢處理性能,
架構
- 共享記憶體架構
- 共享磁盤架構
- 無共享架構
資料劃分方法
資料的劃分成為分片,
主要方法
- Range:把資料庫表的記錄按照某個欄位的值所屬的范圍進行分片
- Hash:對于資料庫表中的記錄,根據其某一個或者某幾個屬性列的取值,計算一個Hash值,對應到具體的磁區,完成資料磁區,
查詢處理
- 單表查詢及其處理(子查詢與結果合并)
- 多表連接查詢及其處理(Hash連接)
5.資料庫查詢執行模式
- 一次處理一個元組
- 一次處理一塊
- 一次處理一列
- 向量化查詢處理模式
6.分布式事務處理
涉及多個節點的事務稱為分布式事務,對涉及多個節點的分布式事務進行協調的協議有兩階段提交協議、三階段提交協議等
兩階段提交協議
兩階段提交協議分為兩個階段,分別是準備階段、提交階段,需要一個事務協調者協調不同事務參與者之前的關系,是否提交還是回滾事務操作,
缺點
- 同步阻塞
- 單點故障
- 資料不一致
三階段提交協議
三階段提交協議是兩階段提交協議的改進版
三階段提交協議的重要改動
- 引入超時機制
- 三階段提交協議把兩階段提交協議的準備階段一分為二,
三階段提交協議總共有三個階段,分別是CanCommit、PreComment,DoCommit三個階段,
總結
無論是兩階段提交協議,還是三階段提交協議,都無法徹底解決分布式系統的一致性問題,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/243980.html
標籤:其他
