主要特徵
支持大量並發用戶定期添加和修改數據。
反映隨時變化的單位狀態,但不保存其歷史記錄。
包含大量數據,其中包括用於驗證事務的大量數據。
具有複雜的結構。
可以進行最佳化以對事務活動做出回響。
提供用於支持單位日常運營的技術基礎結構。
個別事務能夠很快地完成,並且只需訪問相對較少的數據。OLTP 系統旨在處理同時輸入的成百上千的事務。
實時性要求高。
數據量不是很大。
交易一般是確定的,所以OLTP是對確定性的數據進行存取。(比如存取款都有一個特定的金額)
並發性要求高並且嚴格的要求事務的完整、安全性。(比如這種情況:有可能你和你的家人同時在不同的銀行取同一個帳號的款)。
套用領域
OLTP 系統中的數據主要被組織為支持如下事務:
記錄來自銷售點終端或通過網站輸入的訂單。
當庫存量降到指定級別時,訂購更多的貨物。
在製造廠中將零部件組裝為成品時對零部件進行跟蹤。
記錄雇員數據。
當今的數據處理大致可以分成兩大類:在線上事務處理OLTP(on-line transaction processing)、在線上分析處理OLAP(On-Line Analytical Processing)。OLTP是傳統的關係型資料庫的主要套用,主要是基本的、日常的事務處理,例如銀行交易。OLAP是數據倉庫系統的主要套用,支持複雜的分析操作,側重決策支持,並且提供直觀易懂的查詢結果。
OLTP與大數據
事務系統包含巨量數據的更新,是業務延續性的重中之重,並提供對重要數據的近實時訪問,包括讓企業更有競爭力的數據。
在線上事務處理分析範圍擴展到近實時數據,尤其是客戶數據 ;提供近乎實時的虛擬數據倉庫;對主數據管理的負載均衡更新,增加企業信息化架構的靈活性。
要在這些新任務上成功套用OLTP,就必須重新定義OLTP在企業信息化體系結構中的地位。OLTP不再只是一套能處理訂單的老式應用程式。對典型的OLTP系統處理的大規模數據流更新進行同時分析,這種情況很罕見,因為一般認為這不是OLTP的目的。然而數據倉庫更新固有的延遲阻礙著對最新數據的近實時分析。組織如果要對於數據的變化迅速作出反應,IT部門就必須讓OLTP產生比以往更大的作用。
OLTP設計注意事項
事務處理系統資料庫應設計為支持:
1.很好的數據放置。
對於 OLTP 系統,輸入/輸出瓶頸是一個尤為關心的問題,原因在於修改整個資料庫中數據的用戶很多。確定數據的可能訪問模式,並將經常訪問的數據放在一起。在此過程中,可輔以檔案組和 RAID(獨立磁碟冗餘陣列)系統。
2.縮短事務以將長期鎖減至最少,提高並發性。
在事務期間,避免用戶互動。無論何時,只要有可能,就通過執行單個存儲過程來處理整個事務。在事務內對表的引用順序可能會影響並發性。將對經常訪問的表的引用置於事務的末尾,以便將控制鎖的持續時間減至最短。
3.在線上備份。
OLTP 系統通常的特徵是連續操作(一天 24 小時,一周 7 天),為達到此目的,停工時間要保持絕對最短。儘管 Microsoft SQL Server 2000 可以在資料庫正在使用時對其進行備份,但是應將備份過程安排在活動不頻繁時進行,以使對用戶的影響減至最小。
4.資料庫的高度規範化。
儘可能減少冗餘信息以提高更新的速度,從而提高並發性。減少數據還可以提高備份的速度,因為只需要備份更少的數據。
5.很少或沒有歷史或聚合數據。
可以將很少引用的數據歸檔到單獨的資料庫中,或者從經常更新的表中移出,並置於僅含歷史數據的表中。這將保持表儘可能地小,從而縮短備份時間,改善查詢性能。
6.小心使用索引。
每次添加或修改行時,必須更新索引。若要避免對經常更新的表進行過多的索引,索引範圍應保持較窄。請用索引最佳化嚮導設計索引。
什麼是OLAP
在線上分析處理 (OLAP) 的概念最早是由關係資料庫之父E.F.Codd於1993年提出的,他同時提出了關於OLAP的12條準則。OLAP的提出引起了很大的反響,OLAP作為一類產品同在線上事務處理(OLTP) 明顯區分開來。
下表列出了OLTP與OLAP之間的比較。
OLAP是使分析人員、管理人員或執行人員能夠從多角度對信息進行快速、一致、互動地存取,從而獲得對數據的更深入了解的一類軟體技術。OLAP的目標是滿足決策支持或者滿足在多維環境下特定的查詢和報表需求,它的技術核心是"維"這個概念。
“維”是人們觀察客觀世界的角度,是一種高層次的類型劃分。“維”一般包含著層次關係,這種層次關係有時會相當複雜。通過把一個實體的多項重要的屬性定義為多個維(dimension),使用戶能對不同維上的數據進行比較。因此OLAP也可以說是多維數據分析工具的集合。
OLAP的基本多維分析操作有鑽取(roll up和drill down)、切片(slice)和切塊(dice)、以及鏇轉(pivot)、drill across、drill through等。
·鑽取是改變維的層次,變換分析的粒度。它包括向上鑽取(roll up)和向下鑽取(drill down)。roll up是在某一維上將低層次的細節數據概括到高層次的匯總數據,或者減少維數;而drill down則相反,它從匯總數據深入到細節數據進行觀察或增加新維。
·切片和切塊是在一部分維上選定值後,關心度量數據在剩餘維上的分布。如果剩餘的維只有兩個,則是切片;如果有三個,則是切塊。
·鏇轉是變換維的方向,即在表格中重新安排維的放置(例如行列互換)。
OLAP有多種實現方法,根據存儲數據的方式不同可以分為ROLAP、MOLAP、HOLAP。
ROLAP表示基於關係資料庫的OLAP實現(Relational OLAP)。以關係資料庫為核心,以關係型結構進行多維數據的表示和存儲。ROLAP將多維資料庫的多維結構劃分為兩類表:一類是事實表,用來存儲數據和維關鍵字;另一類是維表,即對每個維至少使用一個表來存放維的層次、成員類別等維的描述信息。維表和事實表通過主關鍵字和外關鍵字聯繫在一起,形成了"星型模式"。對於層次複雜的維,為避免冗餘數據占用過大的存儲空間,可以使用多個表來描述,這種星型模式的擴展稱為"雪花模式"。
MOLAP表示基於多維數據組織的OLAP實現(Multidimensional OLAP)。以多維數據組織方式為核心,也就是說,MOLAP使用多維數組存儲數據。多維數據在存儲中將形成"立方塊(Cube)"的結構,在MOLAP中對"立方塊"的"鏇轉"、"切塊"、"切片"是產生多維數據報表的主要技術。
HOLAP表示基於混合數據組織的OLAP實現(Hybrid OLAP)。如低層是關係型的,高層是多維矩陣型的。這種方式具有更好的靈活性。
還有其他的一些實現OLAP的方法,如提供一個專用的SQL Server,對某些存儲模式(如星型、雪片型)提供對SQL查詢的特殊支持。
OLAP工具是針對特定問題的在線上數據訪問與分析。它通過多維的方式對數據進行分析、查詢和報表。維是人們觀察數據的特定角度。例如,一個企業在考慮產品的銷售情況時,通常從時間、地區和產品的不同角度來深入觀察產品的銷售情況。這裡的時間、地區和產品就是維。而這些維的不同組合和所考察的度量指標構成的多維數組則是OLAP分析的基礎,可形式化表示為(維1,維2,……,維n,度量指標),如(地區、時間、產品、銷售額)。多維分析是指對以多維形式組織起來的數據採取切片(Slice)、切塊(Dice)、鑽取(Drill-down和Roll-up)、鏇轉(Pivot)等各種分析動作,以求剖析數據,使用戶能從多個角度、多側面地觀察資料庫中的數據,從而深入理解包含在數據中的信息。
根據綜合性數據的組織方式的不同,常見的OLAP主要有基於多維資料庫的MOLAP及基於關係資料庫的ROLAP兩種。MOLAP是以多維的方式組織和存儲數據,ROLAP則利用現有的關係資料庫技術來模擬多維數據。在數據倉庫套用中,OLAP套用一般是數據倉庫套用的前端工具,同時OLAP工具還可以同數據挖掘工具、統計分析工具配合使用,增強決策分析功能。
兩者區別
| OLTP | OLAP |
用戶 | 操作人員,低層管理人員 | 決策人員,高級管理人員 |
功能 | 日常操作處理 | 分析決策 |
DB 設計 | 面向套用 | 面向主題 |
數據 | 當前的, 最新的細節的, 二維的分立的 | 歷史的, 聚集的, 多維的集成的, 統一的 |
存取 | 讀/寫數十條記錄 | 讀上百萬條記錄 |
工作單位 | 簡單的事務 | 複雜的查詢 |
用戶數 | 上千個 | 上百萬個 |
DB 大小 | 100MB-GB | 100GB-TB |
時間要求 | 具有實時性 | 對時間的要求不嚴格 |
主要套用 | 資料庫 | 數據倉庫 |