Що таке OLTP та OLAP. У чому різниця між ними?


294

Насправді, що вони означають? Усі статті, які я знаходжу про них, не дають мені уявлення, або мої знання занадто недостатні, щоб зрозуміти це.

Хтось дасть мені якісь ресурси, за допомогою яких я можу це навчитися з нуля.


8
Зверніться до datawarehouse4u.info/OLTP-vs-OLAP.html, щоб розпочати, а потім просто Google навколо, щоб отримати додаткові посилання про деталі та відмінності
Incognito

1
Гаразд, такі прості операції з базою даних є в категорії OLTP. А складна обробка великих даних знаходиться в OLAP, ось концепція Base правильно ??
Amarnath R Shenoy

1
@AmarnathRShenoy Так, вставити, оновити, видалити буде справа з OLTP
Nagaraj S

9
@AmarnathRShenoy Вам слід дійсно докладати більше початкових зусиль для дослідження теми. Два ресурси, надані відповіддю Нагарая S, були буквально двома першими сторінками, поверненими Google. Ви обманюєте себе від знань, коли дозволяєте комусь іншому робити роботу за вас. Щоб отримати поради щодо кращих запитань щодо SO, зверніться до довідкової сторінки SO: Як задати питання? .
Остін А

Відповіді:


363

Тут ви знайдете краще рішення OLTP проти OLAP

  • OLTP (он-лайн обробка транзакцій) бере участь у роботі певної системи. OLTP характеризується великою кількістю коротких он-лайн транзакцій (INSERT, UPDATE, DELETE). Основний акцент для OLTP-систем робиться на дуже швидку обробку запитів, підтримку цілісності даних у середовищі з багатодоступним доступом та ефективність, що вимірюється кількістю транзакцій в секунду. У базі даних OLTP є детальні та поточні дані, а схема, що використовується для зберігання транзакційних баз даних, - це модель сутності (зазвичай 3NF). Він включає запити, що отримують доступ до окремих записів, наприклад оновлення електронної пошти в базі даних компанії.

  • OLAP (он-лайн аналітична обробка) займається історичними даними або архівними даними. OLAP характеризується відносно низьким обсягом транзакцій. Запити часто бувають дуже складними і передбачають агрегацію. Для систем OLAP час відгуку - це міра ефективності. Програми OLAP широко використовуються методами Data Mining. У базі даних OLAP є агреговані історичні дані, що зберігаються в багатовимірних схемах (як правило, зіркові схеми). Час запиту потрібно отримати доступ до великої кількості даних у записах управління, як, наприклад, прибуток вашої компанії в минулому році.


7
Дуже чітка інформація. Дякую, що поділилися, це допомогло мені очистити сумніви.
Захоплене

На що посилається "OL"?
Зак Сміт

Якщо інші також потребують оновлення: 3NF - це нормальна форма, яка використовується для нормалізації дизайну бази даних, щоб зменшити дублювання даних та забезпечити референтну цілісність
Мартін Тома

1
OL посилається на "ONLINE", що означає завершення обробки даних в режимі реального часу, а не пакетної обробки.
Ганеш

229

Дуже коротка відповідь:

У різних базах даних по-різному використовується. Я не експерт по базі даних. Практичне правило:

  • якщо ви робите аналітику (наприклад, агрегування історичних даних), використовуйте OLAP
  • якщо ви робите транзакції (наприклад, додаєте / видаляєте замовлення в кошику електронної комерції), використовуйте OLTP

Коротка відповідь:

Розглянемо два приклади сценаріїв:

Сценарій 1:

Ви будуєте інтернет-магазин / веб-сайт, і хочете мати можливість:

  • зберігати дані користувачів, паролі, попередні транзакції ...
  • зберігати фактичну продукцію, пов'язані з ними ціни

Ви хочете мати можливість знайти дані для конкретного користувача, змінити його ім'я ... в основному виконайте операції INSERT, UPDATE, DELETE на даних користувачів. Те саме з продуктами тощо.

Ви хочете мати можливість здійснювати транзакції, можливо, залучаючи користувача, який купує товар (це відношення). Тоді OLTP, ймовірно, добре підходить.

Сценарій 2:

У вас є інтернет-магазин / веб-сайт, і ви хочете обчислити такі речі

  • "загальні гроші, витрачені всіма користувачами"
  • "який продається продукт"

Це належить до сфери аналітики / бізнес-аналітики, і тому OLAP, ймовірно, більше підходить.

Якщо ви думаєте з точки зору "Було б непогано знати, як / що / скільки" ... і це стосується всіх "об'єктів" одного або декількох видів (наприклад, усі користувачі та більшість продуктів знають загальний витрачений), тоді OLAP, ймовірно, краще підходить.

Більш довга відповідь:

Звичайно, не все так просто. Ось чому нам доводиться використовувати короткі теги, як, OLTPі OLAPв першу чергу. Кожну базу даних слід зрештою оцінювати незалежно.

То яка може бути принципова різниця між OLAP та OLTP?

Ну, бази даних повинні десь зберігати дані. Не дивно, що спосіб зберігання даних сильно відображає можливе використання зазначених даних. Дані зазвичай зберігаються на жорсткому диску. Давайте подумаємо про жорсткий диск як про справді широкий аркуш паперу, де ми можемо читати та писати речі. Є два способи організувати наші читання та записи, щоб вони могли бути ефективними та швидкими.

Один із способів - зробити книгу, яка трохи нагадує телефонну книгу . На кожній сторінці книги ми зберігаємо інформацію щодо конкретного користувача. Тепер це приємно, ми можемо знайти інформацію для конкретного користувача дуже легко! Просто переходьте на сторінку! Ми навіть можемо на початку мати спеціальну сторінку, яка б повідомила нам, на якій сторінці перебувають користувачі, якщо ми хочемо. Але з іншого боку, якщо ми хочемо знайти, скажімо, скільки грошей витратили всі наші користувачі, то нам би довелося прочитати кожну сторінку, тобто всю книгу! Це буде книга / база даних на основі рядків (OLTP). Необов’язковою сторінкою на початку буде індекс.

Ще один спосіб використання нашого великого аркуша паперу - зробити книгу обліку . Я не бухгалтер, але давайте уявимо, що у нас була б сторінка для "витрат", "покупок" ... Це приємно, тому що зараз ми можемо дуже швидко запитувати такі речі, як "дайте мені загальний дохід" (просто прочитайте "покупки" "сторінка). Ми також можемо попросити більше залучених речей, як-от "дай мені першу десятку проданих продуктів" і все ще мають прийнятну ефективність. Але тепер подумайте, наскільки болісно було б знайти видатки для конкретного користувача. Вам доведеться пройти весь список усіх витрат і відфільтрувати витрати конкретного користувача, а потім підсумувати їх. Що в основному означає «прочитати всю книгу» знову. Це була б база даних на основі стовпців (OLAP).

Звідси випливає, що :

  • OLTP бази даних призначені для здійснення багатьох дрібних транзакцій і зазвичай служать "єдиним джерелом істини".

  • OLAP З іншого боку, бази даних більше підходять для аналітики, обміну даними, меншої кількості запитів, але вони зазвичай більші (вони працюють на більшій кількості даних).

Це трохи більше, ніж звичайно, і це огляд на 20 000 футів, як відрізняються бази даних, але це дозволяє мені не загубитися в морі акронімів.

Якщо говорити про абревіатури:

  • OLTP = Інтернет-обробка транзакцій
  • OLAP = Аналітична обробка в Інтернеті

Щоб прочитати трохи далі, ось декілька відповідних посилань, які надихнули мою відповідь:


39
приємний підхід з використанням різних рівнів пояснення, доступної мови та конкретних прикладів. модель для людей, які відповідають на запитання у стартовому потоці.
рибамар

2
Дивовижна, дивовижна відповідь! Найкращий на сьогоднішній день, який я знайшов у SO дотепер! Дайте цій людині медаль!
Педро Гордо

1
Мені це було дуже легко зрозуміти!
Єдиного

3
"Коли ви сумніваєтесь, я просто використовую SQL." - SQL - це мова, і це не відповідає на питання. Існують усі види систем mgmt даних, які знають, як інтерпретувати SQL та перекладати його для роботи з усіма видами джерел даних за кришкою. Можна робити запити sql навіть на іскрах даних. Це як сказати "коли сумніваюся, я просто використовую html". Гаразд, це коротка відповідь, але це нерозумно
Раду Сіміонеску

1
Так, те, що ви пропонуєте, було б покращенням з обох питань. Звичайно, це не зробило б справедливості до теми, але це вже не в питанні. Ура!
Cbhihe

24

Різниця досить проста:

OLTP (Інтернет-обробка транзакцій)

OLTP - це клас інформаційних систем, які полегшують та керують трансакційними програмами. OLTP також використовувався для позначення обробки, в якій система негайно реагує на запити користувачів. Інтернет-програми для обробки транзакцій відрізняються високою пропускною здатністю та інтенсивним внесенням або оновленням в управління базами даних. Деякі приклади OLTP систем включають в себе замовлення, роздрібний продаж та системи фінансових транзакцій.

OLAP (Інтернет-аналітична обробка)

OLAP є частиною більш широкої категорії бізнес-аналітики, яка також включає реляційну базу даних, написання звітів та обмін даними. Типові програми OLAP включають в себе ділову звітність для продажів, маркетинг, управлінську звітність, управління бізнес-процесами (BPM), складання бюджету та прогнозування, фінансову звітність та подібні сфери.

Детальніше про OLTP та OLAP


6

OLTP-: oltp означає обробку транзакцій в Інтернеті, яка використовується для управління поточною інформацією про поточну інформацію. OLAP-: стенд olap для онлайнової аналітичної обробки, який використовується для підтримання минулої історії даних і в основному використовується для аналізу даних, і також її можна назвати складовою.


-6

oltp - в основному використовується для бізнес-транзакцій.використовується для збору бізнес-даних. У sql ми використовуємо команду вставлення, оновлення та видалення для отримання малого джерела даних.

olap - в основному використовують для звітності, обміну даними та з метою аналізу бізнесу. для великих або об'ємних даних.особливо він денормований. він зберігає історичні дані ..


Чому це було знято, схоже, це те саме, що було сказано в інших відповідях: oltp для CRUD, olap для агрегатів?
ychaouche

1
@ychaouche, ймовірно, тому, що вже є більше 3 відповідей з подібним значенням. На сьогоднішній день це найновіша відповідь, але вона навіть не допомагає і не підтримує існуючі відповіді. Однак користувач вирішив все-таки додати свою власну версію відповіді, яка все ще є неповною та відсутністю пояснень.
Ірфанді Джип
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.