當今的資料處理大致可以分成兩大類:聯機事務處理oltp(on-line transaction processing)、聯機分析處理olap(on-line analytical processing)。oltp是傳統的關係型資料庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。olap是資料倉儲系統的主要應用,支援複雜的分析操作,側重決策支援,並且提供直觀易懂的查詢結果。下表列出了oltp與olap之間的比較。
oltp
olap 使用者
操作人員,底層管理人員
決策人員,高層管理人員
功能
日常操作處理
分析決策
db設計
面向應用
面向主題
資料
當前的,最新的,細節的,二維的,分立的
歷史的,聚集的,多維的,整合的,統一的
訪問
讀/寫數十條記錄
讀上百萬條記錄
工作單位
簡單的事務
複雜的查詢
使用者數
上千個
上百個
db大小
100mb-gb
100gb-tb
olap是使分析人員、管理人員或執行人員能夠從多角度對資訊進行快速、一致、互動地訪問,從而獲得對資料的更深入了解的一類軟體技術。olap的目標是滿足決策支援或者滿足在多維環境下特定的查詢和報表需求,它的技術核心是"維"這個概念。
「維」是人們觀察客觀世界的角度,是一種高層次的型別劃分。「維」一般包含著層次關係,這種層次關係有時會相當複雜。通過把乙個實體的多項重要的屬性定義為多個維(dimension),使使用者能對不同維上的資料進行比較(我的理解:比如在乙個二維的報表中,我們可以基於任何乙個維對另乙個維上的資料進行比較)。因此olap也可以說是多維資料分析工具的集合。
olap有多種實現方法,根據儲存資料的方式不同可以分為rolap、molap、holap。
rolap表示基於關聯式資料庫的olap實現(relational olap)。以關聯式資料庫為核心,以關係型結構進行多維資料的表示和儲存。rolap將多維資料庫的多維結構劃分為兩類表:一類是事實表,用來儲存資料和維關鍵字;另一類是維表,即對每個維至少使用乙個表來存放維的層次、成員類別等維的描述資訊。
molap表示基於多維資料組織的olap實現(multidimensional olap)。以多維資料組織方式為核心,也就是說,molap使用多維陣列儲存資料。多維資料在儲存中將形成"立方體(cube)"的結構,在molap中對"立方體"的"旋轉"、"切塊"、"切片"是產生多維資料包表的主要技術。
holap表示基於混合資料組織的olap實現(hybrid olap)。如低層是關係型的,高層是多維矩陣型的。這種方式具有更好的靈活性。
olap工具是針對特定問題的聯機資料訪問與分析。它通過多維的方式對資料進行分析、查詢和報表。維是人們觀察資料的特定角度。例如,乙個企業在考慮產品的銷售情況時,通常從時間、地區和產品的不同角度來深入觀察產品的銷售情況。這裡的時間、地區和產品就是維。而這些維的不同組合以及所考察的度量指標構成的多維陣列則是olap分析的基礎,可形式化表示為(維1,維2,……,維n,度量指標),如(地區、時間、產品、銷售額)。多維分析是指對以多維形式組織起來的資料採取切片(slice)、切塊(dice)、鑽取(drill-down和roll-up)、旋轉(pivot)等各種分析動作,以求剖析資料,使使用者能從多個角度、多側面地觀察資料庫中的資料,從而深入理解包含在資料中的資訊。
根據綜合性資料的組織方式的不同,目前常見的olap主要有基於多維資料庫的molap及基於關聯式資料庫的rolap兩種。molap是以多維的方式組織和儲存資料,rolap則利用現有的關聯式資料庫技術來模擬多維資料。在資料倉儲應用中,olap應用一般是資料倉儲應用的前端工具,同時olap工具還可以同資料探勘工具、統計分析工具配合使用,增強決策分析功能。
派生資料包括各種彙總、分配、差別、比率、排序和乘積,olap關注的就是建立派生變數。
olap擅長的是對派生資料的展示,正如其「維」的含義一樣,它讓決策者或者分析人員更好地觀察資料(個人理解)。
olap和資料探勘之間的差別,是描述型和探索型建模之間的差別。olap工具中的功能和演算法(如聚合、分配、比率、乘積等)都是描述型建模功能,而資料探勘工具中的功能(如回歸、神經元網路、決策樹、聚類等)都是模式發現和探索型建模功能。olap工具除了提供描述型建模功能之外,還提供構建複雜結構的功能,如帶層次的維度和跨維引用,而這些都是在資料探勘工具中沒有的。
olap工具和資料探勘工具的互補性很強。
術語olap用於代表一組產品的時候,是指基於分析的面向決策的資訊處理過程(abdop)中的描述性建模。
對於olap的核心要求包括:帶有層次引用的豐富的維結構、對於維和計算的有效規範、靈活性、結構和表現的分離、用以支援任意查詢的足夠快的速度、多使用者支援。
分析工作絕不僅僅是簡單的數字彙總。正確地對大量資料進行彙總和平均固然是很重要的,但是最重要的資訊是來自於各種比率的比較、隨時間變化趨勢的推斷和其他方面。
聚合表,是包含「事實表的彙總資訊」的表。
當使用sql進行聚合操作的時候,需要對每種彙總層次的聯合(個人理解:由多個維度的不同層次組合在一起形成的層次的聯合)分別建立聚合表。舉個例子,假設時間維度有3個層次,商店維度有3個層次,產品維度有4個層次,這樣就有36種不同的聚合層次,從而需要建立36個聚合表。
Olap學習筆記
資料倉儲建設 olap和資料立方體概念 2.相關概念 1 維 是人們觀察資料的特定角度,是考慮問題時的一類屬性集合構成乙個維 如時間維 地理維等 2 級別 level 人們觀察資料的某個特定角度 即某個維 還可以存在細節程度不同的各個描述方面 如時間維 日期 月份 季度 年 即維的級別。3 成員 m...
學習筆記1
struct test test int x void fun class test1 test1 int x void fun int main void test1 a 行1 a.fun 行2 test1 b 行3 b.fun 行4 test c 行5 c.fun 行6 test d 行7 d....
學習筆記1
1 字串原地逆序 使用臨時變數 void reverse string s 5 求平均值 避免溢位 int f int x,int y 6 楊氏矩陣 bool young int a m n int x return false 7 十進位制轉十六進製制 string decimaltohexade...