База данных от 0 до 0,1 (два): OLTP VS OLAP VS HTAP

задняя часть база данных

База данных от 0 до 0,1 (два): OLTP VS OLAP VS HTAP


Автор: Кан Кайсен

Дата: 2018-05-27

Классификация:база данных


OLTP — это сокращение от Online Transaction Processing, OLAP — это сокращение от OnLine Analytical Processing, HTAP — это сокращение от Hybrid Transactional/Analytical Processing. Транзакция относится к формированию логической единицы, неразделимого набора операций чтения и записи; Онлайн обычно относится к задержке запроса в секундах или миллисекундах, которая может реализовать интерактивный запрос.

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

Запросы OLAP обычно требуют сканирования большого объема данных. В большинстве случаев доступ осуществляется только к некоторым столбцам. Совокупные требования (сумма, количество, максимальное, минимальное и т. д.) превышают подробные требования (запрос исходных подробных данных) . Типичный запрос OLAP, как правило, выглядит следующим образом: приложения для анализа больших данных и статистические приложения будут выпущены различными приложениями в конце года, такими как отчет о прочтении Douban за 2017 г., список прочитанного Douban за 2017 г. и песня для прослушивания Netease Cloud Music 2017 г. отчет; важная роль OLAP на предприятиях Приложение представляет собой анализ BI, например, 5 самых продаваемых брендов мобильных телефонов в 2017 году, какой группе людей больше всего нравятся мобильные телефоны Xiaomi или Huawei и т. д.

Основные различия между OLTP и OLAP, указанные в книге Designing-Data-Intensive-Applications, заключаются в следующем:

OLAP vs OLTP

OLAP и OLTP вводятся в курс CMU-CS 15-415:

OLTP

OLAP

В документе «Обзор технологий хранения данных и OLAP» OLAP и OLTP представлены следующим образом:

Особенности OLTP:

  • Предназначен для ежедневных базовых операций
  • Задачи состоят из коротких атомарных изолированных транзакций.
  • Объем обрабатываемых данных находится на уровне G
  • Акцент на согласованности и возможности восстановления
  • Пропускная способность транзакций — ключевой показатель эффективности
  • Минимизация конфликтов параллелизма

Возможности OLAP:

  • Предназначен для поддержки принятия решений
  • Исторические, обобщенные, унифицированные данные важнее, чем конкретные, независимые данные.
  • сосредоточиться на запросе
  • Пропускная способность запросов и время ответа являются ключевыми показателями производительности.

Благодаря предыдущему введению в характеристики OLTP и OLAP у каждого должно быть перцептивное понимание OLTP и OLAP.

В начале объем данных относительно невелик, поэтому базу данных можно использовать для одновременного выполнения запросов OLTP и OLAP, таких как Mysql.Если данных относительно мало, производительность запросов OLAP Mysql также может соответствовать потребности. Однако с увеличением объема данных примерно в 1990-х годах в отрасли стали использовать отдельные базы данных для удовлетворения потребностей OLAP, и такая база данных, которая специально отвечает потребностям OLAP, называется хранилищем данных (Data Warehousing). Причина этого заключается в том, чтобы обеспечить стабильность онлайн-бизнеса OLTP и не допустить, чтобы сложный OLAP запрашивал стабильность и производительность онлайн-бизнеса.

Data Warehousing — это совокупность всех технологий поддержки принятия решений с целью дать возможность администраторам и аналитикам принимать более качественные и быстрые решения; основание для принятия организацией решений. Хранилище данных обычно представляет собой доступную только для чтения копию системных данных OLTP компании.Данные обычно извлекаются (извлечение) из каждой базы данных OLTP, очищаются и преобразуются в формат данных, более удобный для OLAP, и, наконец, импортируются (загрузка). ) в хранилище данных. Это так называемый процесс извлечения-преобразования-загрузки (ETL), пример которого приведен на рисунке ниже. В настоящее время наиболее широко используемое хранилище данных в отрасли должно быть основано на Hive.

ETL

В Data Warehousing существует два основных типа моделей данных: модель «звезда» и модель «снежинка». На следующем рисунке показан пример звездообразной схемы Таблицы в звездообразной схеме разделены на две категории: таблицы фактов и таблицы измерений. В каждой строке таблицы фактов записывается событие, которое происходит в определенное время. Столбцы в таблице фактов обычно делятся на две категории: измерения и индикаторы. Параметры обычно представляют, кто, что, где, когда, как и почему событие, а индикаторы обычно представляют собой числовые атрибуты, такие как цена, клики и посещения. Так называемая таблица измерений представляет собой подробное описание информации об измерениях, а первичный ключ общей таблицы измерений связан с внешним ключом в таблице фактов.

星型模型

Так называемая модель снежинки предназначена для дальнейшего разделения таблицы измерения на таблицы подизмерений. Как показано на рисунке ниже, таблица измерения «Год» и таблица измерения «Месяц» дополнительно отделены от таблицы измерения «Дата».

屏幕快照 2018-05-27 下午9.05.05.png-121.3kB

Источник названия схемы звезды и модели снежинки назван в соответствии с внешним видом модели.Схема звезды представляет собой таблицу фактов, окруженную несколькими таблицами измерений, которая больше похожа на звезду, а модель снежинки больше похожа на снежинка.Как правило, схема «звезда» чаще используется в деловой практике компании, поскольку схема «звезда» проще.

Характеристики OLTP и OLAP были представлены ранее.Вышеуказанные характеристики определяют, что OLTP и OLAP сильно различаются по модели хранения, генерации планов запросов и оптимизации. существуетПредставьте сценарии приложений TiDB и эволюцию HTAP.В этой статье я объяснил, почему для систем OLTP требуется хранилище строк, а для систем OLAP — столбцов. Поскольку OLTP и OLAP сильно различаются по технической реализации, в течение длительного периода времени текущая база данных либо удовлетворяет только требованиям OLTP, либо только требованиям OLAP. Но это имеет следующие недостатки:

  1. Данные должны храниться в нескольких копиях
  2. Будет задержка при вводе данных в систему OLAP из системы OLTP.
  3. Интерфейс запросов, зарезервированный системой OLTP и системой OLAP, может не соответствовать друг другу.
  4. Необходимость поддерживать несколько систем одновременно
  5. Пользователи несут дополнительные расходы на обучение

Из-за вышеперечисленных проблем некоторые люди предложили концепцию HTAP, то есть система может хорошо удовлетворять потребности OLTP и OLAP одновременно. Но очевидно, что система HTAP по-прежнему сталкивается со многими проблемами. Например, OLTP требует хранения строк, а OLAP требует хранения столбцов. Как одновременно удовлетворить требования к хранению строк и столбцов? Например, как сгенерировать план запроса, оптимальный как для OLTP, так и для OLAP? Например, как сделать так, чтобы запросы OLTP и OLAP не влияли друг на друга, как изолировать ресурсы и так далее. я здесьПредставьте сценарии приложений TiDB и эволюцию HTAP.В нем кратко упоминалось, как удовлетворить потребности как OLTP, так и OLAP в хранилище.

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

Использованная литература:

1 "Проектирование приложений, интенсивно использующих данные" Глава 3, часть 2 "Обработка транзакций или аналитика"

2 Документ «Обзор хранилищ данных и технологии OLAP»

3 Подраздел Column Stores курса CMU-CS 15-415 2016 г.


Комментарий