簡介
資料密集型應用程式使各種規模的組織能夠做出更明智的決策,並更快地響應使用者需求。做得最好的組織,將創造出最佳的使用者體驗並開發出最佳解決方案。
設計一個強大的資料驅動型組織的關鍵組成部分是資料庫的資料處理系統。有兩種資料處理型別,它們針對不同的情況進行了最佳化。這兩種型別是線上分析處理(OLAP)和線上事務處理(OLTP)。在本指南中,我們將介紹 OLAP 和 OLTP,討論它們的區別,並分析它們各自適用的情況。
檢視 Prisma Data Platform,可在單一位置管理所有應用程式資料。
什麼是 OLAP 和 OLTP?
乍一看,您可能會注意到每種資料處理型別之間的差異。其中一種包含“分析”,另一種包含“事務”,除此之外都相同。這實際上就是主要區別所在。OLAP 資料庫是一種主要用於分析和生成洞察的資料庫系統。而 OLTP 資料庫將需要後續部分中討論的效能特性,OLAP 資料庫通常設計用於攝取和處理大型資料集。其關鍵操作是執行復雜且長時間執行的查詢,併為業務決策生成報告、圖表和洞察。
什麼是 OLAP?
成功實施 OLAP 資料庫最重要的特徵是其對複雜查詢的響應時間。雖然慢查詢不會影響應用程式的事務處理,但查詢結果的延遲可能會影響依賴這些智慧洞察的資料分析師和其他決策者的準確性。
OLAP 資料庫傳統上實現為資料倉庫,儲存大量的當前和歷史資料。由於資料在倉庫存在期間可能會改變其結構,因此 OLAP 資料庫通常具有多維模式。在計算中,這種資料抽象的多維陣列被稱為 OLAP 立方體。
OLAP 資料庫的處理時間傳統上較慢,因為對大型資料集的查詢是讀密集型的且複雜。OLAP 資料庫上不會進行當前資料修改,因此資料備份需求不頻繁。
什麼是 OLTP?
OLTP 是一種資料庫系統,主要設計用於實現快速、近乎即時的資料庫任務。通常,OLTP 資料庫與多客戶端可能同時訪問資料且需要快速響應時間的應用程式一起使用。OLTP 資料庫針對可靠性和處理速度進行了最佳化。例如,OLTP 資料庫通常會處理密碼重置、應用內購買等操作。OLTP 資料庫更適合進行這些插入、更新和刪除操作,而不是像 OLAP 那樣儲存海量資料集。
與 OLAP 不同,OLTP 查詢通常只持續幾毫秒,因為它們複雜度較低,需要快速處理,並且通常只涉及相對少量的資料記錄。執行在 OLTP 資料庫系統上的應用程式通常對組織至關重要,任何影響事務處理的停機時間都會損害聲譽。
由於停機時間的重要性,OLTP 資料庫還需要更積極的備份策略以維持高可用性。OLTP 系統由於其性質會不斷修改資料。為確保在發生中斷時的資料完整性,OLTP 系統需要頻繁地進行備份快照或併發備份。
何時使用 OLAP 與 OLTP 處理?
在實踐中,選擇 OLAP 還是 OLTP 是一個簡單的決定。如果您正在處理需要分析的大量資料,OLAP 將是更高效的處理系統。如果您正在即時處理許多小型事務並需要快速處理,那麼 OLTP 最適合。
大多陣列織將同時使用這兩種型別。將 OLTP 資料庫用於填充 OLAP 資料庫也是常見的做法。這種實踐很好地展示了資料庫工作負載隔離。OLTP 資料庫可以繼續快速進行更改、處理新資料和更新現有資料。然後,OLAP 資料倉庫被隔離,供分析和商業智慧團隊對整個資料集運行復雜的查詢。
除了資料倉庫,組織還可以選擇啟動其資料庫例項的只讀副本,或將生產資料庫的轉儲載入到例項中,以獲得 OLAP 處理的優勢。然後,他們可以從這些例項執行查詢,以隔離其長時間執行的複雜查詢。
總的來說,OLAP 和 OLTP 的特性可以歸納為下表
| OLTP | OLAP | |
|---|---|---|
| 特性 | 處理大量小事務 | 處理大量資料 |
| 查詢 | 簡單的標準化查詢、基本的插入、更新、刪除 | 涉及大量記錄的複雜查詢 |
| 操作 | INSERT, UPDATE, DELETE | SELECT 用於聚合或報告資料 |
| 響應時間 | 毫秒 | 取決於資料量:秒、分鐘、小時、天 |
| 資料來源 | 事務 | 從 OLTP 源聚合 |
| 空間需求 | 通常較小,假設有歷史資料存檔 | 通常較大,因為儲存所有歷史和當前資料 |
| 備份頻率 | 需要定期備份以確保可用性和資料完整性 | 不那麼頻繁,因為沒有進行修改。丟失的資料可以從 OLTP 資料庫中恢復 |
提取、轉換、載入
對於大多數用例來說,很可能存在一個處理事務資料的 OLTP 資料庫,以及一個作為所有已事務處理資料的倉庫的 OLAP 資料庫。為了從 OLTP 資料庫填充 OLAP 資料庫,會發生一個提取、轉換和載入(ETL)過程。ETL 專門用於從非分析最佳化來源(即 OLTP 資料庫)提取資料到中央倉庫。
在當今強大的分析型資料倉庫(無需暫存)出現之前,資料會從事務資料庫中提取出來,並在暫存區進行清洗和最佳化,以供分析資料庫使用。使用該資料庫的團隊隨後可以將資料呈現給終端使用者或決策者,用於機器學習演算法或構建儀表板。
關於 ETL 過程還有很多可以闡述,但在此上下文中重要的是瞭解它能夠協調 OLTP 和 OLAP 資料庫成功結合以實現特定用例。它完善了現代應用程式利用事務和分析資料庫以實現其最佳化目的的完整圖景。
總結
在本文中,我們討論了兩種不同型別的資料庫系統處理方式,OLAP 和 OLTP,以及它們如何與 ETL 結合使用。我們涵蓋了它們的主要區別,這些區別可以簡單歸結為它們的最佳化用例:分析或事務。當談到查詢型別、響應時間、備份頻率和其他特性時,每種型別在其專業領域最關鍵的方面表現更佳。
理解 OLAP 和 OLTP 能讓您在設計資料密集型應用程式時做出正確決策。根據您希望如何處理資料,其中一種型別將針對該任務進行最佳化。
檢視 Prisma Data Platform,可在單一位置管理所有應用程式資料。
