iT邦幫忙

1

常聽人說 OLTP、OLAP 很重要,但日常工作為何都沒碰過?

常聽前輩說 OLTP、OLAP,但是我工作都沒碰過,猜測是我太嫩的原因 (T_T)
我爬了文章,發現定義我看得懂也能理解,但實際應用就一臉矇圈 (像極了高中考試T_T)
請問我工作使用 SQL-Server 跟 Oracle 要應用OLTP、OLAP 需要做哪些設定、或執行那些腳本嗎?
還是其實現在資料庫都很聰明,根本不需要去搞這些。

已爬文文章內容:

OLTP 是指 Online Transactional Processing 的簡稱,這個詞中 Transactional 是非常重要的,代表的是說他的處理通常包含了讀以及寫,通常 OLTP 是指系統能夠處理大量的更新以及新增的查詢。所以在傳統的 OLTP 系統中,數據的正確性以及一致性是首要要達到的目標之一。所以一般的 OLTP 中會常常聽到 ACID (Atomatic, Consistent, Isolated, Durable) 合規。這代表他們諄循著一個事務 (Transaction) 完成後才會執行下一筆,確保整個系統的資料一致性。
數據一致性為什麼這麼重要?因為 OLTP 可能同時有多位使用者同時操作,所以要確保當一個使用者更新資料後,另一個操作中的使用者也能拿到最終的狀態。不然就可能會有數據不一致以及不同步問題。這也是為什麼常常會聽到 ACID compliance 這個詞在 OLTP 中。

什麼是 OLAP 呢?
OLAP 又是什麼呢?它代表著 Online Analytical Processing。一般的 OLAP 的系統可以讓數據聚合 (data aggregation) 以及批次處理 (Batch processing),OLAP 大部分是用來做歷史資料的分析以及報告。和 OLDP 最大的不一樣是他不需要處理、儲存、以及保持資料的一致性,而是用 OLAP 可以很快的使用 Query 去得到數據洞察得到數據聚合後的結果。
OLAP 使用情境
對於所有的 BI 系統以及報告工具都是 OLAP 的系統。像是如果銀行中他有 OLTP 的系統確保他的一致性後,他就能用 OLAP 的系統去做報告以及商業智慧分析等應用。例如:他可以把所有全台灣的使用者在過去一個月的交易做分析,這時候他就會較適合使用 OLAP 系統作分析。

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

From <https://zh.data-driven.blog/2019/11/01/%E4%BB%80%E9%BA%BC%E6%98%AF-oltp%EF%BC%9F%E4%BB%80%E9%BA%BC%E6%98%AF-olap%EF%BC%9F/> 
中華民國六法全書也很重要,我們有人(法律系除外)會去背那些且去實用他嗎?

我們只要知道我在使用的資料庫系統,是遵照這個規則建立的,就好,至於這個規則如何實現?留給寫資料庫SERVICE及資料探戡的公司去擔心即可

學電腦不一定要整個垂直層面都要弄懂才能上架,某個層面給某些公司或社群去負責,我只負責把問題解決,天知道我要用哪一招?
japhenchen 大神,所言甚是
但擔心是小弟能力不足
如蛙在井內觀天,所以特來詢問
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
4
一級屠豬士
iT邦大師 1 級 ‧ 2020-09-03 14:18:41
最佳解答

OLTP / OLAP 是一個概略的分法.
DB Server 有很多參數, 看情況調整.
一般我們會為了方便,將DB Server 分為 OLTP 用途 或是 OLAP 用途,兩種的調整方式不一樣.
OLTP 會調成能夠連線數較多, 單一連線能使用的記憶體較少.
OLAP 會調成能夠連線數較少, 單一連線能使用的記憶體較多.
所以像是 Oracle 在安裝時,會有模板可以選擇,有OLTP / OLAP 等多種已經事先調好的參數模板,
方便安裝.
其他也會有些專家寫了一些建議的參數組合,提供參考.
具體要怎樣調整資料庫,這個需要經驗的累積,還有根據實際的情況,蒐集,分析,還有後續的監控追蹤.

知識是有體系的,不是片段或是單一的,我們寫了這樣多,你能知道理解嗎?
大人了,不是小朋友,多唸書,少跳著問.這樣沒意義的.
其實我不止一次的告訴你,先去看基本的書,看來你也是聽不進去的.

要知道,我們每隔一段時間,就會遇到像你這樣的,什麼都要問,然後就突然消失了....
所以才好心的勸你.

看更多先前的回應...收起先前的回應...

您好,一級屠豬士 大神
上次您說的 Linux 我目前每天都花半小時在看 目前看到 http://linux.vbird.org/linux_basic/0610hardware.php

請問這塊有推薦的書籍、網站嗎?

大神您好,請問這塊也是學linux嗎?
我還以為是資料庫相關

先把OS 學好吧,不然連基本檔案操作都不穩,學資料庫問題會一堆的.
不知道在急什麼.知識就是這樣啊,不然現在丟一本 OLAP的書,
https://www.amazon.com/Oracle-Essbase-OLAP-Multidimensional-Solution/dp/0071621822

只是害你而已.

感謝大神,讀完鳥哥網站後面讀這本

你讀這本是差太遠了. 有看到那句 只是害你而已 嗎?
不知道你是怎樣想或是理解知識的.
要逐步建立知識體系,又不是說看了哪本書就一定學會了.
要按部就班來啦.

那我先讀完鳥哥,再來研究要讀那些

剛看到一張圖片.
https://ithelp.ithome.com.tw/upload/images/20200903/20050647pwKbL1HJg6.jpg

player iT邦大師 1 級 ‧ 2020-09-03 23:34:07 檢舉
1

OLTP、OLAP 非設定相關之類的事。
雖然說還是需要一些「設定」

這是一種架構上的理念。及需求度的問題。
大多數來說這樣的應用都是為了大資料流規劃處理的。

而一般小網站並沒必要性的需要這樣的架構存在。
畢竟,這是一種安全及資料完整性的規劃設計。

認真來說,對你目前碰過的案例因該還用不上才對。
除非你日後會處理到百萬級的資料量。

不過了解理念是不錯,只是你跳太快了。
先將基本的東西搞懂再來了解這些。
這些對你來說還太早了。你會有太多基本理念不了解而搞不懂。

看更多先前的回應...收起先前的回應...

感謝 浩瀚星空 大神
所以這是一個理論設計?

wolfwang iT邦研究生 4 級 ‧ 2020-09-03 14:29:15 檢舉

最粗淺的分別。OLTP 著重資料交易的正確性,例如一筆線上購物的交易,如何確保從購買金額的正確交易或是物品庫存的數量統計,萬一交易失敗,如何退回原初狀態的思維。

而 OLAP 比較從資料分析的角度去設計,如何讓資料容易呈現出不同維度的面向,有易於資料的分析,不會一個按鈕按下去之後,過很了久才跑出資料這樣。

感謝 wolfwang 大神的解釋!!

你要認定是一種理論設計也行啦。
這要說明的東西很多。除了程式方面的規劃,的確也得對資料庫做一些設定上的處理。(什麼一些,是很多一些)

簡單來說,你得先知道何謂資料庫的交易機制。並且明白其原理。
在資料的完整性上。是要拋棄,還是記錄保存。還是通知對應查看....等等這些。

我不認為這是你現在需要了解的事。
不要只會跳二下就想當超人,會摔死你的。

2
sam0407
iT邦大師 1 級 ‧ 2020-09-04 09:59:34

常聽前輩說 OLTP、OLAP,但是我工作都沒碰過,猜測是我太嫩的原因 (T_T)

不是你嫰沒有遇到,是你一直在使用而不自知~~
你執行一般的ERP或進銷存程式,新增修改刪除查詢就是在用OLTP
你執行BI報表/大數據分析,這些就屬於OLAP

感謝前輩!!
但這是否證明現在資料庫很厲害
我都沒做過任何設定,同一台資料庫就能很好的對付OLTP跟OLAP

sam0407 iT邦大師 1 級 ‧ 2020-09-04 10:20:16 檢舉

不是這樣說,還是有分的,開發人員還是會使用不同的工具來實作,以MS SQL來說,下圖為SQL Server安裝的選項:
Database Engine Servive就是作OLTP
Analysis Service就是用來作OLAP
https://ithelp.ithome.com.tw/upload/images/20200904/20012665ITvSrO2Qaw.png

感謝大神,原來如此,看起來
對資料庫兩者能兼容安裝
需要二擇一時,是在更細分的情況 (可能表格、或是下SQL命令時)

1
I code so I am
iT邦高手 1 級 ‧ 2020-09-04 11:41:57

個人看法:
OLTP 是記錄日常的交易,OLAP 是多維度分析,通常是作企業營運的績效與異常分析。
OLTP 的資料庫設計原則是【正規化】(Normalization),OLAP 的資料庫設計原則是 Star Schema,或是 Fact/Dimension design。

感謝大神的分享!!

我要發表回答

立即登入回答