Что такое OLTP?

Определение OLTP

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

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


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

Прочитайте истории успешного создания рабочих процессов обработки транзакций в облаке такими компаниями, как Retraced, Archaeological Park of Pompeii, Jasci и Siemens.

Предприятия обычно используют два типа возможностей обработки данных: OLTP и OLAP.

Сравнение OLTP и OLAP

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

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

В таблице ниже представлено сравнение систем OLTP и OLAP.

OLTP-системы

OLAP-системы

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

Обычно требуется запрашивать большое количество записей (даже всех записей) в базе данных для аналитических целей.

Требует мгновенной реакции.

Реакция может быть на порядок медленнее, чем в случае OLTP-систем.

Часто небольшие объемы данных изменяются, и обычно требуется баланс чтения и записи.

Данные вообще не изменяются; обычно более интенсивными являются рабочие нагрузки чтения.

Для улучшения времени реагирования используются индексированные данные.

Данные хранятся в формате столбцов, чтобы обеспечить легкий доступ к большому количеству записей.

Резервное копирование баз данных должно выполняться часто или параллельно.

Резервное копирование баз данных можно выполнять не так часто.

Требуется относительно небольшое пространство для хранения данных.

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

Обычно выполняются простые запросы, включающие всего одну или несколько записей.

Выполняются сложные запросы с большим количеством записей.

Итак, OLTP — это онлайновая система модификации данных, тогда как OLAP — это онлайновая система хранения исторических многомерных данных, которая используется для извлечения больших объемов данных в аналитических целях. OLAP обычно предоставляет аналитику по данным, которые были собраны одной или несколькими OLTP-системами.

Требования к OLTP-системе

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

Система обработки онлайн-транзакций обладает следующими основными характеристиками.

  • Соответствие ACID: OLTP-системы должны обеспечивать правильность записи всей транзакции. Под транзакцией обычно понимается выполнение программы, для чего может потребоваться выполнение нескольких шагов или операций. Транзакция может быть завершена, когда ее подтверждают все участвующие стороны, когда предоставляется продукт/услуга или когда в конкретные таблицы в базе данных вносится определенное количество обновлений. Транзакция регистрируется правильно только в том случае, если все ее этапы выполнены и записаны. Если в каком-либо из шагов допущена ошибка, вся транзакция должна быть прервана, а все шаги удалены из системы. Таким образом, для обеспечения точности данных в системе OLTP-системы должны соответствовать принципам атомарности, согласованности, изолированности и устойчивости (ACID).
    • Атомарность: контроль атомарности гарантирует, что все шаги в транзакции будут успешно завершены (как в группе). То есть, если какой-либо шаг между транзакциями завершился неудачно, все остальные шаги также должны завершиться неудачно или быть отменены. Успешное завершение транзакции называется фиксацией. Сбой транзакции называется прерыванием.
    • Согласованность: транзакция поддерживает внутреннюю согласованность базы данных. Если транзакция выполняется отдельно в базе данных, которая изначально согласована, то после завершения транзакции база данных снова станет согласованной.
    • Изолированность: транзакция выполняется так, как если бы она выполнялась одна, без других транзакций. То есть результат выполнения набора транзакций будет таким же, как при выполнении их по одной. Такое поведение называется упорядочиваемостью и обычно реализуется путем блокировки определенных строк в таблице.
    • Устойчивость: результаты транзакции не будут потеряны в случае сбоя.
  • Параллельность: OLTP-системы могут иметь чрезвычайно большое количество пользователей, причем многие пользователи могут пытаться получить доступ к одним и тем же данным одновременно. Система должна гарантировать, что все эти пользователи, старающиеся что-то прочитать или написать в системе, могут делать это одновременно. Контроль параллельности гарантирует, что два пользователя, одновременно обращающиеся к одним и тем же данным в системе базы данных, не смогут изменить эти данные или что один пользователь должен ждать, пока другой пользователь не закончит обработку, прежде чем он сможет изменить этот фрагмент данных.
  • Масштабируемость: OLTP-системы должны быть способны мгновенно масштабироваться, чтобы управлять объемом транзакций в режиме реального времени и выполнять транзакции одновременно, независимо от количества пользователей, пытающихся получить доступ к системе.
  • Доступность: OLTP-система должна быть всегда доступна и всегда готова к приему транзакций. Потеря транзакции может привести к потере дохода или иметь юридические последствия. Поскольку транзакции могут осуществляться из любой точки мира и в любое время, система должна быть доступна 24 часа в сутки 7 дней в неделю.
  • Высокая пропускная способность и короткое время реагирования: чтобы обеспечить продуктивную работу пользователей предприятия и удовлетворить растущие ожидания клиентов, время реагирования OLTP-систем должно быть не более наносекунды.
  • Надежность: OLTP-системы обычно считывают небольшие объемы данных и манипулируют ими с высокой избирательностью. Крайне важно, чтобы в любой момент времени данные в базе данных были надежными и заслуживающими доверия для пользователей и приложений, обращающихся к этим данным.
  • Безопасность: поскольку в этих системах хранятся очень важные данные о транзакциях клиентов, безопасность данных имеет решающее значение. Любое нарушение безопасности может дорого обойтись компании.
  • Восстанавливаемость: OLTP-системы должны иметь возможность восстановления в случае любого аппаратного или программного сбоя.

Базы данных для рабочих нагрузок OLTP

Реляционные базы данных были созданы специально для транзакционных приложений. Они включают в себя все основные элементы, необходимые для хранения и обработки больших объемов транзакций, а также постоянно дополняются новыми функциями и возможностями, позволяющими извлекать еще больше ценности из этих богатых данных о транзакциях. Реляционные базы данных разрабатываются с нуля, чтобы обеспечить максимально возможную доступность и высокую производительность. Они обеспечивают параллельность и соответствие принципам ACID, чтобы данные были точными, постоянно и легкодоступными. После выявления связи между данными они хранятся в таблицах, чтобы их можно было использовать в любом приложении и гарантировать единый источник истины.

Эволюция баз данных транзакционной обработки

По мере того как транзакции становились все более сложными, поступая из любого источника или устройства, из любой точки мира, традиционные реляционные базы данных не справлялись с удовлетворением потребностей современных транзакционных рабочих процессов на должном уровне. Чтобы обрабатывать современные транзакции, гетерогенные данные и работать в глобальном масштабе, а главное — выполнять смешанные рабочие нагрузки, базам данным надо было совершенствоваться. Реляционные базы данных трансформировались в мультимодальные базы данных, которые хранят и обрабатывают не только реляционные данные, но и все другие типы данных, включая xml, html, JSON, Apache Avro и Parquet, а также документы в их родном виде, без особых преобразований. В реляционные базы данных также нужно было добавить дополнительные функции, такие как кластеризация и шардинг, чтобы они могли быть распределены глобально и бесконечно масштабироваться для хранения и обработки все больших объемов данных, а также для использования более дешевых хранилищ, доступных в облаке. Благодаря другим возможностям, таким как память, расширенная аналитика, визуализация и очереди событий транзакций, эти базы данных теперь могут выполнять множество рабочих нагрузок, например: анализировать данные транзакций или обрабатывать потоковые данные (Интернет вещей (IoT)), выполнять пространственную и графовую аналитику.

Современные реляционные базы данных, созданные в облаке, автоматизируют многие аспекты управления и эксплуатации базы данных, что упрощает их предоставление пользователям и использование. Они обеспечивают автоматическое предоставление ресурсов, безопасность, восстановление, резервное копирование и масштабирование, поэтому DBA- и ИТ-команды могут тратить гораздо меньше времени на их обслуживание. В них также встроены возможности аналитики для автоматической настройки и индексирования данных, благодаря чему производительность запросов к базе данных остается неизменной, независимо от объема данных, количества одновременно работающих пользователей или сложности запросов. Эти облачные базы данных также включают в себя возможности самообслуживания и API-интерфейсы REST, чтобы разработчики и аналитики могли легко получить доступ к данным и использовать их. Таким образом упрощается разработка приложений, обеспечивается гибкость, а разработчикам облегчается задача встраивания новых функций и настроек в свои приложения. Также упрощается аналитика, благодаря чему аналитикам и исследователям данных становится легче использовать данные для извлечения ценной информации.

Как правильно выбрать базу данных для рабочих нагрузок

Поскольку ИТ-отдел старается развиваться в том же темпе, что и бизнес, важно, чтобы при выборе операционной базы данных учитывались как насущные потребности в данных, так и требования к данным в долгосрочной перспективе. Для хранения транзакций, ведения систем учета или управления контентом Вам понадобится база данных с высоким параллелизмом, высокой пропускной способностью, низкой задержкой и такими критически важными характеристиками, как высокая доступность, защита данных и аварийное восстановление. Скорее всего, рабочая нагрузка будет меняться в течение дня, недели или года, поэтому обеспечение возможности автомасштабирования базы данных поможет сэкономить значительные средства. Также может понадобиться решить, использовать специально разработанную базу данных или универсальную базу данных. Если Ваши требования относятся к данным определенного типа, Вам может подойти специально разработанная база данных, но убедитесь, что это будет сделано не за счет других необходимых характеристик. Обеспечивать соответствие этим характеристикам на другом прикладном уровне будет дорого и потребует много ресурсов. Кроме того, если Ваши потребности в данных растут и Вы хотите расширить функциональность Вашего приложения, добавление дополнительных одноцелевых или подходящих специально по назначению баз данных приведет лишь к созданию бункеров данных и усилению проблем с управлением данными. Вы также должны учитывать другие функциональные возможности, которые могут потребоваться для Вашей конкретной рабочей нагрузки, например: требования к внесению данных, требования к вычислениям со сдвигом вниз и ограничения по объему.

Выбирайте инновационный облачный сервис базы данных с возможностями самообслуживания, который позволит автоматизировать управление данными, чтобы Ваши потребители данных (разработчики, аналитики, инженеры, специалисты по анализу данных и DBA) получили больше возможностей для работы с данными и могли ускорить разработку приложений.

Узнайте больше об Oracle’s Autonomous Transaction Processing Database — облачном сервисе баз данных OLTP. Попробуйте его бесплатно.