Big Data Data Driven Database What is?

什麼是 OLTP?什麼是 OLAP?

在數據管理中有兩個很重要的名詞,很基本但是也是很重要的觀念。就是 OLTP 以及 OLAP 這兩個名詞皆是代表數據管理,但其目標以及應用情境是完全不一樣,這也包含他們的設計理念是不一樣的。

在數據管理中有兩個很重要的名詞,很基本但是也是很重要的觀念。就是 OLTP 以及 OLAP 這兩個名詞皆是代表數據管理,其目標以及應用情境是完全不一樣,這也包含他們的設計理念是不一樣的。

Image result for olap vs oltp

讓我們來仔細了解這兩者的差異吧!

什麼是 OLTP?

OLTP 是指 Online Transactional Processing 的簡稱,這個詞中 Transactional 是非常重要的,代表的是說他的處理通常包含了讀以及寫,通常 OLTP 是指系統能夠處理大量的更新以及新增的查詢。所以在傳統的 OLTP 系統中,數據的正確性以及一致性是首要要達到的目標之一。所以一般的 OLTP 中會常常聽到 ACID (Atomatic, Consistent, Isolated, Durable) 合規。這代表他們諄循著一個事務 (Transaction) 完成後才會執行下一筆,確保整個系統的資料一致性。

數據一致性為什麼這麼重要?因為 OLTP 可能同時有多位使用者同時操作,所以要確保當一個使用者更新資料後,另一個操作中的使用者也能拿到最終的狀態。不然就可能會有數據不一致以及不同步問題。這也是為什麼常常會聽到 ACID compliance 這個詞在 OLTP 中。

什麼是 ACID

根據 Wiki 中的定義

Image result for acid database

ACID,是指資料庫管理系統DBMS)在寫入或更新資料的過程中,為保證事務(transaction)是正確可靠的,所必須具備的四個特性:原子性(atomicity,或稱不可分割性)、一致性(consistency)、隔離性(isolation,又稱獨立性)、持久性(durability)。

  • Atomicity(原子性):一個事務(transaction)中的所有操作,或者全部完成,或者全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。即,事務不可分割、不可約簡。
  • Consistency(一致性):在事務開始之前和事務結束以後,資料庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設約束觸發器級聯回滾等。
  • Isolation(隔離性):資料庫允許多個並發事務同時對其數據進行讀寫和修改的能力,隔離性可以防止多個事務並發執行時由於交叉執行而導致數據的不一致。事務隔離分為不同級別,包括未提交讀(Read uncommitted)、提交讀(read committed)、可重複讀(repeatable read)和串行化(Serializable)。
  • Durability(持久性):事務處理結束後,對數據的修改就是永久的,即便系統故障也不會丟失。

OLTP 使用的情境

當您在使用銀行系統的時候就是一個非常標準使用 OLTP 的系統,銀行系統必須要確保您每次拿取的資料都是一致性而且是完全正確的。想像真實世界,不太可能你現在領了一些錢之後到了另一個 ATM 你的金額還是維持照舊,所以銀行系統都會需要很高的資料一致性,且完全符合 ACID 的規範。

什麼是 OLAP 呢?

OLAP 又是什麼呢?它代表著 Online Analytical Processing。一般的 OLAP 的系統可以讓數據聚合 (data aggregation) 以及批次處理 (Batch processing),OLAP 大部分是用來做歷史資料的分析以及報告。和 OLDP 最大的不一樣是他不需要處理、儲存、以及保持資料的一致性,而是用 OLAP 可以很快的使用 Query 去得到數據洞察得到數據聚合後的結果。

OLAP 使用情境

對於所有的 BI 系統以及報告工具都是 OLAP 的系統。像是如果銀行中他有 OLTP 的系統確保他的一致性後,他就能用 OLAP 的系統去做報告以及商業智慧分析等應用。例如:他可以把所有全台灣的使用者在過去一個月的交易做分析,這時候他就會較適合使用 OLAP 系統作分析。

結論

OLTP 重視數據處理以及一致性,OLAP 重視數據分析。但通常他們兩個會搭配使用,儲存資料的時候先存到 OLTP 中確保數據一致性,要做分析的時候再使用 OLAP 做重要報表。

找尋 (大) 數據 OLAP 管理平台嗎?

Canner, Inc 讓企業導入數據導向決策更簡單。Canner, Inc 所開發的 CannerFlow 是一個 Cloud-Native 的數據管理平台,解決在 Cloud Providers 上面的缺點專業人才、流程複雜、操作不易, CannerFlow 內建的數據整合系統可以節省大部分製作 ETL 流程。幫助企業導入數據分析流程更省錢快速地得到 Data-driven insights!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: