OLTP และ OLAP คืออะไร ความแตกต่างระหว่างพวกเขาคืออะไร?


294

จริงๆแล้วพวกเขาหมายถึงอะไร? บทความทั้งหมดที่ฉันพบเกี่ยวกับพวกเขาไม่ได้ให้ความคิดแก่ฉันหรือความรู้ของฉันไม่เพียงพอที่จะเข้าใจ

บางคนจะให้ทรัพยากรบางอย่างกับฉันซึ่งฉันสามารถเรียนรู้สิ่งนี้ตั้งแต่เริ่มต้น


8
อ้างถึงdatawarehouse4u.info/OLTP-vs-OLAP.htmlเพื่อเริ่มต้นและจากนั้นเพียงแค่ Google เพื่อดูลิงก์เพิ่มเติมเกี่ยวกับรายละเอียดและความแตกต่าง
ไม่ระบุตัวตน

1
ตกลงการดำเนินงานฐานข้อมูลอย่างง่ายอยู่ในหมวดหมู่ OLTP และการประมวลผลข้อมูลขนาดใหญ่ที่ซับซ้อนอยู่ใน OLAP นั่นคือแนวคิดพื้นฐานใช่ไหม
Amarnath R Shenoy

1
@AmarnathRShenoy ใช่แทรกอัปเดตลบจะจัดการกับ OLTP
Nagaraj S

9
@AmarnathRShenoy คุณควรใช้ความพยายามเริ่มต้นในการค้นคว้าหัวข้อ ทรัพยากรทั้งสองที่มาจากคำตอบของ Nagaraj S นั้นแท้จริงแล้วเป็นสองหน้าแรกที่ส่งคืนโดย google คุณกำลังนอกใจตัวเองจากความรู้เมื่อคุณปล่อยให้คนอื่นทำงานให้คุณ สำหรับเคล็ดลับในการเขียนคำถาม SO ให้ดีขึ้นให้อ่านหน้าความช่วยเหลือ SO: วิธีถาม? .
ออสติน

คำตอบ:


363

ที่นี่คุณจะพบโซลูชันที่ดีกว่าOLTP เทียบกับ OLAP

  • OLTP (การประมวลผลธุรกรรมออนไลน์) เกี่ยวข้องกับการดำเนินการของระบบเฉพาะ OLTP มีลักษณะของธุรกรรมออนไลน์แบบสั้นจำนวนมาก (INSERT, UPDATE, DELETE) การเน้นหลักสำหรับระบบ OLTP นั้นใช้การประมวลผลการสืบค้นที่รวดเร็วมากการรักษาความถูกต้องของข้อมูลในสภาพแวดล้อมที่เข้าถึงได้หลากหลายและประสิทธิภาพที่วัดได้จากจำนวนธุรกรรมต่อวินาที ในฐานข้อมูล OLTP มีข้อมูลรายละเอียดและเป็นปัจจุบันและสคีมาที่ใช้ในการจัดเก็บฐานข้อมูลธุรกรรมเป็นรูปแบบเอนทิตี (โดยปกติคือ 3NF) มันเกี่ยวข้องกับแบบสอบถามที่เข้าถึงระเบียนแต่ละรายการเช่นอัปเดตอีเมลของคุณในฐานข้อมูล บริษัท

  • OLAP (การประมวลผลเชิงวิเคราะห์ออนไลน์) จัดการกับข้อมูลประวัติหรือข้อมูลที่เก็บถาวร OLAP มีลักษณะการทำธุรกรรมที่ค่อนข้างต่ำ คำค้นหามักจะซับซ้อนมากและเกี่ยวข้องกับการรวมตัว สำหรับระบบ OLAP เวลาตอบสนองเป็นการวัดประสิทธิผล แอปพลิเคชัน OLAP ใช้กันอย่างแพร่หลายโดยเทคนิคการขุดข้อมูล ในฐานข้อมูล OLAP มีการรวบรวมข้อมูลประวัติเก็บไว้ในสกีมาหลายมิติ (โดยปกติคือสคีมาระดับดาว) บางครั้งการสืบค้นจำเป็นต้องเข้าถึงข้อมูลจำนวนมากในบันทึกการจัดการเช่นเดียวกับกำไรของ บริษัท ของคุณในปีที่แล้ว


7
ข้อมูลที่ชัดเจนมาก ขอบคุณสำหรับการแบ่งปันมันช่วยฉันล้างข้อสงสัยของฉัน
จับภาพทรี

"OL" หมายถึงอะไร
Zach Smith

หากผู้อื่นต้องการทบทวนอีกครั้ง: 3NFเป็นรูปแบบปกติที่ใช้ในการทำให้การออกแบบฐานข้อมูลเป็นมาตรฐานเพื่อลดความซ้ำซ้อนของข้อมูลและรับรองความสมบูรณ์ของการอ้างอิง
Martin Thoma

1
OL หมายถึง "ออนไลน์" ซึ่งหมายถึงการเสร็จสิ้นการประมวลผลข้อมูลตามเวลาจริงไม่ใช่การประมวลผลแบบแบทช์
Ganesh Jadhav

229

คำตอบสั้น ๆ :

ฐานข้อมูลที่แตกต่างกันมีการใช้ที่แตกต่างกัน ฉันไม่ใช่ผู้เชี่ยวชาญด้านฐานข้อมูล หลักการง่ายๆ:

  • หากคุณกำลังทำการวิเคราะห์ (เช่นการรวบรวมข้อมูลประวัติ) ใช้ OLAP
  • หากคุณกำลังทำธุรกรรม (เช่นการเพิ่ม / ลบคำสั่งซื้อบนรถเข็นอีคอมเมิร์ซ) ให้ใช้ OLTP

คำตอบสั้น ๆ :

ลองพิจารณาตัวอย่างสองสถานการณ์:

สถานการณ์ที่ 1:

คุณกำลังสร้างร้านค้าออนไลน์ / เว็บไซต์และคุณต้องการที่จะสามารถ:

  • เก็บข้อมูลผู้ใช้รหัสผ่านธุรกรรมก่อนหน้า ...
  • เก็บผลิตภัณฑ์จริงราคาที่เกี่ยวข้อง

คุณต้องการที่จะสามารถค้นหาข้อมูลสำหรับผู้ใช้เฉพาะเปลี่ยนชื่อ ... โดยทั่วไปแล้วดำเนินการ INSERT, UPDATE, DELETE บนข้อมูลผู้ใช้ เหมือนกันกับผลิตภัณฑ์ ฯลฯ

คุณต้องการทำธุรกรรมอาจเกี่ยวข้องกับผู้ใช้ที่ซื้อผลิตภัณฑ์ (นั่นคือความสัมพันธ์) จากนั้น OLTP น่าจะเป็นแบบที่ดี

สถานการณ์ที่ 2:

คุณมีร้านค้าออนไลน์ / เว็บไซต์และคุณต้องการคำนวณสิ่งต่าง ๆ เช่น

  • "จำนวนเงินทั้งหมดที่ใช้โดยผู้ใช้ทั้งหมด"
  • "สินค้าที่ขายดีที่สุด"

สิ่งนี้อยู่ในโดเมนการวิเคราะห์ / ข่าวกรองธุรกิจและดังนั้น OLAP จึงน่าจะเหมาะสมกว่า

ถ้าคุณคิดในแง่ของ "มันจะดีที่ได้รู้ว่า / อะไร / เท่าไหร่" ... และที่เกี่ยวข้องกับ "วัตถุ" ทั้งหมดอย่างน้อยหนึ่งชนิด (เช่นผู้ใช้ทั้งหมดและผลิตภัณฑ์ส่วนใหญ่ที่จะรู้ การใช้จ่ายทั้งหมด) ดังนั้น OLAP น่าจะเหมาะสมกว่า

คำตอบอีกต่อไป:

แน่นอนว่าสิ่งต่าง ๆ ไม่ง่ายนัก นั่นเป็นเหตุผลที่เราต้องใช้แท็กสั้น ๆ เช่นOLTPและOLAPในตอนแรก ควรประเมินแต่ละฐานข้อมูลอย่างอิสระในตอนท้าย

ดังนั้นอะไรคือความแตกต่างพื้นฐานระหว่าง OLAP และ OLTP

ฐานข้อมูลต้องเก็บข้อมูลไว้ที่ใดที่หนึ่ง ไม่น่าแปลกใจที่วิธีการจัดเก็บข้อมูลสะท้อนถึงการใช้ข้อมูลดังกล่าวอย่างมาก โดยปกติข้อมูลจะถูกเก็บไว้ในฮาร์ดไดรฟ์ ลองคิดว่าฮาร์ดไดรฟ์เป็นแผ่นกระดาษกว้างจริง ๆ ที่เราสามารถอ่านและเขียนสิ่งต่าง ๆ ได้ มีสองวิธีในการจัดระเบียบการอ่านและการเขียนของเราเพื่อให้สามารถมีประสิทธิภาพและรวดเร็ว

วิธีการหนึ่งที่จะทำให้หนังสือที่เป็นบิตเช่นเป็นสมุดโทรศัพท์ ในแต่ละหน้าของหนังสือเราจัดเก็บข้อมูลเกี่ยวกับผู้ใช้รายใดรายหนึ่ง ตอนนี้เยี่ยมมากเราสามารถค้นหาข้อมูลสำหรับผู้ใช้รายใดคนหนึ่งได้อย่างง่ายดายมาก! เพียงข้ามไปที่หน้า! เรายังสามารถมีหน้าพิเศษในตอนต้นเพื่อบอกเราว่าหน้าเว็บใดที่ผู้ใช้ต้องการหากเราต้องการ แต่ในทางกลับกันถ้าเราต้องการค้นหาพูดว่าผู้ใช้ของเราใช้เงินไปเท่าไรเราก็ต้องอ่านทุกหน้าเช่นหนังสือทั้งเล่ม! นั่นจะเป็นหนังสือ / ฐานข้อมูลแบบแถว (OLTP) หน้าตัวเลือกที่จุดเริ่มต้นจะเป็นดัชนี

อีกวิธีหนึ่งที่จะใช้แผ่นขนาดใหญ่ของเราของกระดาษคือการทำให้หนังสือการบัญชี ฉันไม่ได้เป็นนักบัญชี แต่ลองจินตนาการว่าเราจะมีหน้าสำหรับ "ค่าใช้จ่าย", "การซื้อ" ... นั่นเยี่ยมมากเพราะตอนนี้เราสามารถค้นหาสิ่งต่าง ๆ เช่น "ให้รายได้ทั้งหมด" อย่างรวดเร็ว (แค่อ่าน "การซื้อ" "หน้า) นอกจากนี้เรายังสามารถขอสิ่งต่าง ๆ ที่เกี่ยวข้องเช่น "ให้ผลิตภัณฑ์สิบอันดับแรกที่ขายได้" และยังมีประสิทธิภาพที่ยอมรับได้ แต่ตอนนี้ให้พิจารณาว่ามันเจ็บปวดแค่ไหนในการค้นหาค่าใช้จ่ายสำหรับผู้ใช้รายใดรายหนึ่ง คุณจะต้องผ่านรายการทั้งหมดของค่าใช้จ่ายของทุกคนและกรองรายการของผู้ใช้นั้นแล้วรวม ซึ่งโดยทั่วไปจะมีจำนวน "อ่านทั้งเล่ม" อีกครั้ง นั่นจะเป็นฐานข้อมูลแบบคอลัมน์ (OLAP)

มันตามมาว่า :

  • OLTP ฐานข้อมูลมีไว้เพื่อใช้ในการทำธุรกรรมขนาดเล็กจำนวนมากและมักจะทำหน้าที่เป็น "แหล่งเดียวของความจริง"

  • OLAP ในทางกลับกันฐานข้อมูลจะเหมาะกว่าสำหรับการวิเคราะห์การขุดข้อมูลการสอบถามน้อยลง แต่มักจะมีขนาดใหญ่กว่า (การทำงานกับข้อมูลเพิ่มเติม)

มันมีส่วนเกี่ยวข้องมากกว่านั้นเล็กน้อยและนั่นคือภาพรวม 20,000 ฟุตว่าฐานข้อมูลแตกต่างกันอย่างไร แต่มันทำให้ฉันไม่หลงทางในคำย่อ

การพูดคำย่อ:

  • OLTP = การทำธุรกรรมออนไลน์
  • OLAP = การประมวลผลการวิเคราะห์ออนไลน์

หากต้องการอ่านเพิ่มเติมเล็กน้อยต่อไปนี้เป็นลิงค์ที่เกี่ยวข้องซึ่งเป็นแรงบันดาลใจอย่างมากสำหรับคำตอบของฉัน:


39
วิธีการที่ดีในการใช้คำอธิบายในระดับต่าง ๆ ภาษาที่สามารถเข้าถึงได้และตัวอย่างที่เป็นรูปธรรม แบบจำลองสำหรับผู้ที่ตอบคำถามใน stackoverflow
ribamar

2
คำตอบที่ดีเลิศ! ที่สุดเท่าที่ฉันเคยเจอใน SO จนถึงตอนนี้! มอบเหรียญให้ชายผู้นี้!
Pedro Gordo

1
ฉันพบว่ามันเข้าใจง่ายมาก!
The One

3
"เมื่อมีข้อสงสัยฉันแค่ใช้ SQL" - SQL เป็นภาษาและไม่สามารถตอบคำถามได้ มีระบบข้อมูล mgmt ทุกชนิดที่รู้วิธีตีความ SQL และแปลมันเพื่อทำงานกับแหล่งข้อมูลทุกชนิดที่อยู่เบื้องหลังฮูด หนึ่งสามารถสร้างแบบสอบถาม SQL แม้ใน dataframes ประกาย นั่นก็เหมือนกับการพูดว่า "เมื่อสงสัยฉันก็ใช้ html" ตกลงมันเป็นคำตอบสั้น ๆ แต่มันโง่
Radu Simionescu

1
ใช่สิ่งที่คุณเสนอจะเป็นการปรับปรุงทั้งสองเรื่อง มันจะไม่ทำความยุติธรรมกับหัวข้อของหลักสูตร แต่นั่นอยู่นอกเหนือประเด็น ไชโย!
Cbhihe

24

ความแตกต่างนั้นค่อนข้างง่าย:

OLTP (การประมวลผลธุรกรรมออนไลน์)

OLTP เป็นคลาสของระบบข้อมูลที่อำนวยความสะดวกและจัดการแอปพลิเคชันที่มุ่งเน้นการทำธุรกรรม OLTP ยังถูกใช้เพื่ออ้างถึงการประมวลผลซึ่งระบบตอบสนองทันทีต่อการร้องขอของผู้ใช้ แอปพลิเคชันการประมวลผลธุรกรรมออนไลน์มีปริมาณงานสูงและการแทรกหรือปรับปรุงมากในการจัดการฐานข้อมูล ตัวอย่างของระบบ OLTP ได้แก่ การป้อนคำสั่งซื้อการขายปลีกและระบบธุรกรรมทางการเงิน

OLAP (การประมวลผลการวิเคราะห์ออนไลน์)

OLAP เป็นส่วนหนึ่งของหมวดธุรกิจที่กว้างขวางขึ้นซึ่งครอบคลุมฐานข้อมูลเชิงสัมพันธ์การเขียนรายงานและการขุดข้อมูล แอปพลิเคชันทั่วไปของ OLAP ประกอบด้วยการรายงานธุรกิจสำหรับการขายการตลาดการรายงานการจัดการการจัดการกระบวนการทางธุรกิจ (BPM) การกำหนดงบประมาณและการคาดการณ์การรายงานทางการเงินและสาขาที่คล้ายกัน

ดูรายละเอียดเพิ่มเติมOLTP และ OLAP


6

OLTP-: oltp ย่อมาจากกระบวนการทำธุรกรรมออนไลน์ซึ่งใช้สำหรับการจัดการข้อมูลข้อมูลแบบวันต่อวัน OLAP: olap หมายถึงการประมวลผลการวิเคราะห์ออนไลน์ซึ่งใช้ในการรักษาประวัติที่ผ่านมาของข้อมูลและส่วนใหญ่ใช้สำหรับการวิเคราะห์ข้อมูลและยังสามารถเรียกได้ว่าเป็นคลังข้อมูล


-6

oltp- ส่วนใหญ่ใช้สำหรับการทำธุรกรรมทางธุรกิจใช้เพื่อรวบรวมข้อมูลทางธุรกิจใน sql เราใช้คำสั่ง insert, update และ delete สำหรับการดึงแหล่งข้อมูลขนาดเล็กเช่นฉลาดพวกเขามีมาตรฐานสูง .... OLTP ใช้เป็นส่วนใหญ่ในการรักษาความสมบูรณ์ของข้อมูล

olap ส่วนใหญ่ใช้สำหรับการรายงานการขุดข้อมูลและการวิเคราะห์ธุรกิจ สำหรับข้อมูลขนาดใหญ่หรือขนาดใหญ่จงใจมันถูกทำให้เป็นมาตรฐาน มันเก็บข้อมูลทางประวัติศาสตร์ ..


ทำไม downvote นี้ดูเหมือนว่าจะเหมือนกันกับสิ่งที่ถูกกล่าวในคำตอบอื่น ๆ : oltp สำหรับ CRUD, olap สำหรับมวลรวม?
ychaouche

1
@ychaouche อาจเป็นเพราะมีคำตอบมากกว่า 3 คำที่มีความหมายคล้ายกันอยู่แล้ว ตามวันที่นี่เป็นคำตอบล่าสุด แต่ก็ไม่ได้ช่วยหรือสนับสนุนคำตอบที่มีอยู่ อย่างไรก็ตามผู้ใช้ตัดสินใจที่จะเพิ่มคำตอบเวอร์ชันของเขาเองซึ่งยังไม่สมบูรณ์และขาดคำอธิบาย
Irfandy Jip
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.