
OLAP的多維數(shù)據(jù)分析
聯(lián)機分析處理(OLAP)的概念最早是由關(guān)系數(shù)據(jù)庫之父E.F.Codd于1993年提出的。當(dāng)時,Codd認(rèn)為聯(lián)機事務(wù)處理(OLTP)已不能滿足終端用戶對數(shù)據(jù)庫查詢分析的需要,SQL對大數(shù)據(jù)庫進(jìn)行的簡單查詢也不能滿足用戶分析的需求。用戶的決策分析需要對關(guān)系數(shù)據(jù)庫進(jìn)行大量計算才能得到結(jié)果,而查詢的結(jié)果并不能滿足決策者提出的需求。因此Codd提出了多維數(shù)據(jù)庫和多維分析的概念,即OLAP。
一、OLAP的概念
根據(jù)OLAP產(chǎn)品的實際應(yīng)用情況和用戶對OLAP產(chǎn)品的需求,人們提出了一種對OLAP更簡單明確的定義,即共享多維信息的快速分析。
(1)快速性
用戶對OLAP的快速反應(yīng)能力有很高的要求。系統(tǒng)應(yīng)能在5秒內(nèi)對用戶的大部分分析要求做出反應(yīng)。如果終端用戶在30秒內(nèi)沒有得到系統(tǒng)響應(yīng)就會變得不耐煩,因而可能失去分析主線索,影響分析質(zhì)量。對于大量的數(shù)據(jù)分析要達(dá)到這個速度并不容,因此就更需要一些技術(shù)上的支持,如專門的數(shù)據(jù)存儲格式、大量的事先運算、特別的硬件設(shè)計等。
(2)可分析性
OLAP系統(tǒng)應(yīng)能處理與應(yīng)用有關(guān)的任何邏輯分析和統(tǒng)計分析。盡管系統(tǒng)需要事先編程 ,但并不意味著系統(tǒng)已定義好了所有的應(yīng)用。用戶無需編程就可以定義新的專門計算,將其作為分析的一部分,并以用戶理想的方式給出報告。用戶可以在OLAP平臺上進(jìn)行數(shù)據(jù)分析,也可以連接到其他外部分析工具上,如時間序列分析工具、成本分配工具、意外報警、數(shù)據(jù)開采等。
(3)多維性
多維性是OLAP的關(guān)鍵屬性。系統(tǒng)必須提供對數(shù)據(jù)分析的多維視圖和分析,包括對層次維和多重層次維的完全支持。事實上,多維分析是分析企業(yè)數(shù)據(jù)最有效的方法,是OLAP的靈魂。
(4)信息性
不論數(shù)據(jù)量有多大,也不管數(shù)據(jù)存儲在何處,OLAP系統(tǒng)應(yīng)能及時獲得信息,并且管理大容量信息。這里有許多因素需要考慮,如數(shù)據(jù)的可復(fù)制性、可利用的磁盤空間、OLAP產(chǎn)品的性能及與數(shù)據(jù)倉庫的結(jié)合度等。
二、OLAP的多維數(shù)據(jù)概念
多維結(jié)構(gòu)是決策支持的支柱,也是OLAP的核心。OLAP展現(xiàn)在用戶面前的是一幅幅多維視圖。
1.維
假定某某是個百貨零售商,有一些因素會影響他的銷售業(yè)務(wù),如商品、時間、商店或流通渠道,更具體一點,如品牌、月份、地區(qū)等。對某一給定的商品,也許他想知道該商品在哪個商店和哪段時間的銷售情況。對某一商店,也許他想知道哪個商品在哪段時間的銷售情況。在某一時間,也許他想知道哪個商店哪種產(chǎn)品的銷售情況。因此,他需要決策支持來幫助制定銷售政策。這里,商店、時間和產(chǎn)品都是維。各個商店的集合是一維,時間的集合是一維,商品的集合是一維。維就是相同類數(shù)據(jù)的集合,也可以理解為變量。而每個商店、每段時間、每種商品都是某一維的一個成員。每個銷售事實由一個特定的商店、特定的時間和特定的商品組成。
維有自己固有的屬性,如層次結(jié)構(gòu)(對數(shù)據(jù)進(jìn)行聚合分析時要用到)、排序(定義變量時要用到)、計算邏輯(是基于矩陣的算法,可有效地指定規(guī)則)。這些屬性對進(jìn)行決策支持是非常有用的。
2.多維性
人們很容易理解一個二維表(如通常的電子表格),對于三維立方體同樣也容易理解。 OLAP通常將三維立方體的數(shù)據(jù)進(jìn)行切片,顯示三維的某一平面。如一個立方體有時間維、商品維、收入維,其圖形很容易在屏幕上顯示出來并進(jìn)行切片。但是要加一維(如加入商店維),則圖形很難想象,也不容易在屏幕上畫出來。要突破三維的障礙,就必須理解邏輯維和物理維的差異。OLAP的多維分析視圖就是沖破了物理的三維概念,采用了旋轉(zhuǎn)、嵌套、切片、鉆取和高維可視化技術(shù),在屏幕上展示多維視圖的結(jié)構(gòu),使用戶直觀地理解、分析數(shù)據(jù),進(jìn)行決策支持。
三、OLAP的多維數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)在多維空間中的分布總是稀疏的、不均勻的。在事件發(fā)生的位置,數(shù)據(jù)聚合在一起,其密度很大。因此,OLAP系統(tǒng)的開發(fā)者要設(shè)法解決多維數(shù)據(jù)空間的數(shù)據(jù)稀疏和數(shù)據(jù)聚合問題。事實上,有許多方法可以構(gòu)造多維數(shù)據(jù)。
1.超立方結(jié)構(gòu)
超立方結(jié)構(gòu)(Hypercube)指用三維或更多的維數(shù)來描述一個對象,每個維彼此垂直。數(shù)據(jù)的測量值發(fā)生在維的交叉點上,數(shù)據(jù)空間的各個部分都有相同的維屬性。這種結(jié)構(gòu)可應(yīng)用在多維數(shù)據(jù)庫和面向關(guān)系數(shù)據(jù)庫的OLAP系統(tǒng)中,其主要特點是簡化終端用戶的操作。
超立方結(jié)構(gòu)有一種變形,即收縮超立方結(jié)構(gòu)。這種結(jié)構(gòu)的數(shù)據(jù)密度更大,數(shù)據(jù)的維數(shù)更少,并可加入額外的分析維。
2.多立方結(jié)構(gòu)
在多立方結(jié)構(gòu)(Multicube)中,將大的數(shù)據(jù)結(jié)構(gòu)分成多個多維結(jié)構(gòu)。這些多維結(jié)構(gòu)是大數(shù)據(jù)維數(shù)的子集,面向某一特定應(yīng)用對維進(jìn)行分割,即將超立方結(jié)構(gòu)變?yōu)樽恿⒎浇Y(jié)構(gòu)。它具有很強的靈活性,提高了數(shù)據(jù)(特別是稀疏數(shù)據(jù))的分析效率。
一般來說,多立方結(jié)構(gòu)靈活性較大,但超立方結(jié)構(gòu)更易于理解。終端用戶更容易接近超立方結(jié)構(gòu),它可以提供高水平的報告和多維視圖。但具有多維分析經(jīng)驗的MIS專家更喜歡多立方結(jié)構(gòu),因為它具有良好的視圖翻轉(zhuǎn)性和靈活性。多立方結(jié)構(gòu)是存儲稀疏矩陣的一個更有效方法,并能減少計算量。因此,復(fù)雜的系統(tǒng)及預(yù)先建立的通用應(yīng)用傾向于使用多立方結(jié)構(gòu),以使數(shù)據(jù)結(jié)構(gòu)能更好地得到調(diào)整,滿足常用的應(yīng)用需求。許多產(chǎn)品結(jié)合了上述兩種結(jié)構(gòu),它們的數(shù)據(jù)物理結(jié)構(gòu)是多立方結(jié)構(gòu),但卻利用超立方結(jié)構(gòu)來進(jìn)行計算,結(jié)合了超立方結(jié)構(gòu)的簡化性和多立方結(jié)構(gòu)的旋轉(zhuǎn)存儲特性。
3. 活動數(shù)據(jù)的存儲
用戶對某個應(yīng)用所提取的數(shù)據(jù)稱為活動數(shù)據(jù),它的存儲有以下三種形式:
(1)關(guān)系數(shù)據(jù)庫
如果數(shù)據(jù)來源于關(guān)系數(shù)據(jù)庫,則活動數(shù)據(jù)被存儲在關(guān)系數(shù)據(jù)庫中。在大部分情況下, 數(shù)據(jù)以星型結(jié)構(gòu)或雪花結(jié)構(gòu)進(jìn)行存儲。
(2)多維數(shù)據(jù)庫
在這種情況下,活動數(shù)據(jù)被存儲在服務(wù)器上的多維數(shù)據(jù)庫中,包括來自關(guān)系數(shù)據(jù)庫和終端用戶的數(shù)據(jù)。通常,數(shù)據(jù)庫存儲在硬盤上,但為了獲得更高的性能,某些產(chǎn)品允許多維數(shù)據(jù)結(jié)構(gòu)存儲在RAM上。有些數(shù)據(jù)被提前計算,計算結(jié)果以數(shù)組形式進(jìn)行存儲。
(3)基于客戶的文件
在這種情況下,可以提取相對少的數(shù)據(jù)放在客戶機的文件上。這些數(shù)據(jù)可預(yù)先建立, 如Web文件。與服務(wù)器上的多維數(shù)據(jù)庫一樣,活動數(shù)據(jù)可放在磁盤或RAM上。這三種存儲形式有不同的性能,其中關(guān)系數(shù)據(jù)庫的處理速度大大低于其他兩種。
4.OLAP數(shù)據(jù)的處理方式
OLAP有三種數(shù)據(jù)處理方法。事實上,多維數(shù)據(jù)計算不需要在數(shù)據(jù)存儲位置上進(jìn)行。
(1)關(guān)系數(shù)據(jù)庫
即使活動的OLAP數(shù)據(jù)存儲在關(guān)系數(shù)據(jù)庫中,采用在關(guān)系數(shù)據(jù)庫上完成復(fù)雜的多維計算也不是較好的選擇。因為SQL的單語句并不具備完成多維計算的能力,要獲得哪怕是最普通的多維計算功能也需要多重SQL。在許多情況下,一些OLAP工具用SQL做一些計算,然后將計算結(jié)果作為多維引擎輸入。多維引擎在客戶機或中層服務(wù)器上做大部分的計算工作 ,這樣就可以利用RAM來存儲數(shù)據(jù),提高響應(yīng)速度。
(2)多維服務(wù)引擎
大部分OLAP應(yīng)用在多維服務(wù)引擎上完成多維計算,并且具有良好的性能。因為這種方式可以同時優(yōu)化引擎和數(shù)據(jù)庫,而服務(wù)器上充分的內(nèi)存為有效地計算大量數(shù)組提供了保證。
(3)客戶機
在客戶機上進(jìn)行計算,要求用戶具備性能良好的PC機,以此完成部分或大部分的多維計算。對于日益增多的瘦型客戶機,OLAP產(chǎn)品將把基于客戶機的處理移到新的Web應(yīng)用服務(wù)器上。
四、多維數(shù)據(jù)庫
多維數(shù)據(jù)庫(Multi-Dimesional Database,MDD)可以簡單地理解為:將數(shù)據(jù)存放在一個n維數(shù)組中,而不是像關(guān)系數(shù)據(jù)庫那樣以記錄的形式存放。因此它存在大量稀疏矩陣,人們可以通過多維視圖來觀察數(shù)據(jù)。多維數(shù)據(jù)庫增加了一個時間維,與關(guān)系數(shù)據(jù)庫相比,它的優(yōu)勢在于可以提高數(shù)據(jù)處理速度,加快反應(yīng)時間,提高查詢效率。目前有兩種MDD 的OLAP產(chǎn)品:基于多維數(shù)據(jù)庫的MOLAP和基于關(guān)系數(shù)據(jù)庫的ROLAP。R OLAP建立了一種新的體系,即星型結(jié)構(gòu)。 MDD并沒有公認(rèn)的多維模型,也沒有像關(guān)系模型那樣標(biāo)準(zhǔn)地取得數(shù)據(jù)的方法(如SQL、 API等)?;贛DD的OLAP產(chǎn)品,依據(jù)決策支持的內(nèi)容使用范圍也有很大的不同。在低端,用戶使用基于單用戶或小型LAN的工具來觀察多維數(shù)據(jù)。這些工具的功能性和實用性可能相當(dāng)不錯,但由于受到規(guī)模的限制,它們不具備OLAP的所有特性。這些工具使用超立方結(jié)構(gòu),將模型限制在n維形態(tài)。當(dāng)模型足夠大且稀疏數(shù)據(jù)沒有控制好時,這種模型將會不堪一擊。這些工具使用數(shù)據(jù)庫的大小是以MB來計量的,而不是以GB計量的,因此只能進(jìn)行只讀操作,且具備有限的復(fù)雜計算。在高端,OLAP工具用4GL提供了完善的開發(fā)環(huán)境、統(tǒng)計分析、時間序列分析、財政報告、用戶接口、多層體系結(jié)構(gòu)、圖表等許多其他功能。盡管不同的OLAP工具都使用了它們自己的多維數(shù)據(jù)庫,但它們在不同程度上也利用了關(guān)系數(shù)據(jù)庫作為存儲媒體。因為關(guān)系數(shù)據(jù)庫和OLAP工具同時在高端服務(wù)器上處理,所以速度和效率仍然很快。純多維數(shù)據(jù)庫引擎也被開發(fā)出來。盡管這些工具缺乏4GL及充分的開發(fā)環(huán)境,但卻有比高端MDD工具所使用的數(shù)據(jù)庫更為復(fù)雜的數(shù)據(jù)庫。這些工具也具有統(tǒng)計分析、財務(wù)分析和時間序列分析等功能,并有自己的API,允許其對前端的開發(fā)環(huán)境開放。
MDD能提供優(yōu)良的查詢性能。存儲在MDD中的信息比在關(guān)系數(shù)據(jù)庫中的信息具有更詳細(xì)的索引,可以常駐在內(nèi)存中。MDD的信息是以數(shù)組形式存放的,所以它可以在不影響索引的情況下更新數(shù)據(jù)。因此MDD非常適合于讀寫應(yīng)用。
五、 OALP的多維數(shù)據(jù)分析
1. 切片和切塊
在多維數(shù)據(jù)結(jié)構(gòu)中,按二維進(jìn)行切片,按三維進(jìn)行切塊,可得到所需要的數(shù)據(jù)。如在" 城市、產(chǎn)品、時間"三維立方體中進(jìn)行切塊和切片,可得到各城市、各產(chǎn)品的銷售情況
2. 鉆取
鉆取包含向下鉆取和向上鉆取操作, 鉆取的深度與維所劃分的層次相對應(yīng)。
3.旋轉(zhuǎn)
通過旋轉(zhuǎn)可以得到不同視角的數(shù)據(jù)。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計學(xué)領(lǐng)域,假設(shè)檢驗是驗證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學(xué)計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學(xué)計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務(wù)價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導(dǎo)向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10