Что такое OLTP и OLAP. В чем разница между ними?

294

На самом деле, что они имеют в виду? Все статьи, которые я нахожу о них, не дают мне идеи, или мои знания слишком недостаточны, чтобы понять это.

Кто-нибудь даст мне некоторые ресурсы, с помощью которых я могу научиться этому с нуля.

Амарнат Р Шеной
источник
8
Обратитесь к datawarehouse4u.info/OLTP-vs-OLAP.html, чтобы начать, а затем просто поищите в Google больше ссылок о деталях и различиях
Инкогнито,
1
Итак, простые операции с БД находятся в категории OLTP, а сложная обработка больших данных - в OLAP.
Амарнат Р Шеной
1
@ AmarnathRShenoy да, вставить, обновить, удалить будет иметь дело с OLTP
Nagaraj S
9
@ AmarnathRShenoy Вы действительно должны приложить больше усилий для изучения темы. Два ресурса, представленные в ответе Нагараджа С., были буквально двумя верхними страницами, возвращаемыми Google. Вы обманываете себя из-за знания, когда позволяете кому-то другому делать работу за вас. Советы по написанию более качественных вопросов SO см. На странице справки SO: Как спросить? ,
Остин,

Ответы:

363

Здесь вы найдете лучшее решение OLTP против OLAP

  • OLTP (On-line Transaction Processing) участвует в работе конкретной системы. OLTP характеризуется большим количеством коротких онлайн-транзакций (INSERT, UPDATE, DELETE). Основной упор в системах OLTP сделан на очень быструю обработку запросов, поддержание целостности данных в средах с множественным доступом и эффективность, измеряемую числом транзакций в секунду. В базе данных OLTP имеются подробные и текущие данные, а схема, используемая для хранения транзакционных баз данных, является моделью сущностей (обычно 3NF). Он включает в себя запросы доступа к отдельной записи, такие как обновление электронной почты в базе данных компании.

  • OLAP (онлайн-аналитическая обработка) имеет дело с историческими данными или архивными данными. OLAP характеризуется относительно небольшим объемом транзакций. Запросы часто очень сложны и включают в себя агрегации. Для систем OLAP время отклика является мерой эффективности. Приложения OLAP широко используются методами Data Mining. В базе данных OLAP собраны исторические данные, которые хранятся в многомерных схемах (обычно в виде звезд). Иногда для запроса требуется доступ к большому количеству данных в записях управления, например, какова была прибыль вашей компании в прошлом году.

Нагарадж С
источник
7
Очень четкая информация. Спасибо, что поделились этим, помогли мне прояснить мои сомнения.
CapturedTree
Что означает «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 = онлайн аналитическая обработка

Чтобы прочитать немного дальше, вот некоторые соответствующие ссылки, которые сильно вдохновили мой ответ:

Nha
источник
39
хороший подход, использующий разные уровни объяснения, доступный язык и конкретные примеры. модель для людей, отвечающих на вопросы в stackoverflow.
Рибамар
2
Офигенно, офигенно ответ! Лучший на сегодняшний день, который я нашел в SO до сих пор! Дайте этому человеку медаль!
Педро Гордо
1
Я нашел это очень легко понять!
The One
3
«Когда сомневаешься, я просто использую SQL». - SQL - это язык, и это не отвечает на вопрос. Существуют всевозможные системы управления данными, которые знают, как интерпретировать SQL и переводить его для работы со всеми видами источников данных. Можно делать sql запросы даже на спрей-фреймах. Это все равно что сказать "когда сомневаешься, я просто использую html". Хорошо, это короткий ответ, но это глупо
Раду Симионеску
1
Да, то, что вы предлагаете, будет улучшением, с обеих сторон. Конечно, это не отразится на теме, но это не относится к делу. Ура!
Cbhihe
24

Разница довольно проста:

OLTP (онлайн обработка транзакций)

OLTP - это класс информационных систем, которые облегчают управление транзакциями и управляют ими. OLTP также использовался для обозначения обработки, при которой система немедленно реагирует на запросы пользователей. Онлайн-приложения для обработки транзакций отличаются высокой пропускной способностью и интенсивно используются при управлении базами данных. Некоторые примеры систем OLTP включают ввод заказов, розничные продажи и системы финансовых транзакций.

OLAP (онлайн аналитическая обработка)

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

Подробнее см. OLTP и OLAP

Сергей Бурковский
источник
6

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

Ракеш Сингх
источник
-6

oltp - в основном используется для бизнес-транзакций. используется для сбора бизнес-данных. В sql мы используем команды вставки, обновления и удаления для извлечения небольшого источника данных. Аналогично, они очень нормализованы .... OLTP В основном используется для поддержания целостности данных.

olap - в основном используется для отчетности, интеллектуального анализа данных и бизнес-аналитики. для больших или объемных данных. умышленно он нормализуется. он хранит исторические данные ..

Викрант Соланке
источник
Почему это было отвергнуто, похоже, то же самое, что было сказано в других ответах: oltp для CRUD, olap для агрегатов?
ychaouche
1
@ychaouche, вероятно, потому что уже есть более чем 3 ответа с похожим значением. На сегодняшний день это самый новый ответ, но он даже не помогает и не поддерживает существующие ответы. Однако пользователь решил добавить свою собственную версию ответа в любом случае, которая все еще неполна и не имеет объяснений.
Ирфанди Джип