Открыть сервис

HTAP

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

История возникновения

Термин HTAP был введён аналитической компанией Gartner в 2014 году. До этого в индустрии баз данных доминировал подход, при котором системы чётко разделялись на два класса: OLTP-системы (например, PostgreSQL, MySQL, Oracle) для обработки большого количества коротких транзакций и OLAP-системы (например, ClickHouse, Vertica, Amazon Redshift) для сложных запросов над большими объёмами данных. Такое разделение приводило к необходимости строить сложные ETL-процессы (Extract, Transform, Load) для переноса данных из транзакционных систем в аналитические, что создавало задержки от нескольких минут до нескольких часов.

Развитие аппаратного обеспечения (увеличение объёмов оперативной памяти, появление энергонезависимой памяти, многопоточность процессоров) и появление новых алгоритмов обработки данных (например, векторное выполнение запросов) сделали возможным совмещение двух типов нагрузки в одной системе. Первыми коммерческими продуктами, реализующими идеи HTAP, стали SAP HANA (2010 год) и MemSQL (ныне SingleStore, 2011 год). В России одним из примеров HTAP-систем является «Яндекс.Мандарин» (разработан в компании «Яндекс»), а также решения на базе Postgres Pro Enterprise.

Архитектура и принципы работы

HTAP-системы строятся на нескольких ключевых архитектурных принципах, отличающих их от традиционных решений.

Единое хранилище данных

В отличие от классических архитектур, где данные хранятся в двух разных системах (OLTP и OLAP), HTAP-система использует одно логическое хранилище. Физически данные могут быть представлены в нескольких форматах (например, строковое и колоночное хранение), но они управляются единым движком и не требуют репликации между разными СУБД.

Гибридный движок выполнения запросов

Ядро HTAP-системы способно обрабатывать как короткие транзакционные запросы (INSERT, UPDATE, DELETE, простые SELECT), так и сложные аналитические запросы (агрегации, соединения, оконные функции). Для этого используются различные механизмы:

  • Векторное выполнение — для аналитических запросов данные обрабатываются блоками (векторами), что повышает эффективность использования кэша процессора.
  • Оптимизация под транзакции — для OLTP-запросов применяются индексы (B-деревья, хеш-индексы) и механизмы блокировок, обеспечивающие целостность данных.

Управление параллелизмом

HTAP-системы должны обеспечивать изоляцию транзакций (ACID-свойства) для OLTP-нагрузки и при этом не блокировать аналитические запросы. Для этого часто используются многоверсионное управление параллелизмом (MVCC) и оптимистические блокировки. Аналитические запросы могут работать со снимками данных (snapshot isolation), не мешая транзакционной записи.

Оптимизация под смешанную нагрузку

Ключевая проблема HTAP — конкуренция за ресурсы (процессор, память, дисковый ввод-вывод) между транзакционными и аналитическими запросами. Для её решения применяются:

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

Классификация HTAP-систем

HTAP-решения можно классифицировать по способу реализации гибридной обработки.

Нативные HTAP-системы

Эти системы изначально проектировались для поддержки как OLTP, так и OLAP. Примеры:

  • SAP HANA — использует хранение данных в оперативной памяти и колоночные структуры для аналитики.
  • SingleStore — поддерживает как строковое, так и колоночное хранение в одной таблице.
  • TiDB — распределённая HTAP-система с разделением на TiKV (транзакционное хранилище) и TiFlash (колоночное аналитическое хранилище), но с единым интерфейсом SQL.

Расширенные OLTP-системы

Традиционные транзакционные СУБД, в которые добавлены аналитические возможности. Примеры:

  • PostgreSQL — с расширениями, такими как TimescaleDB (для временных рядов) или pg_analytics.
  • Oracle Database — с опцией In-Memory, позволяющей хранить данные в колоночном формате для ускорения аналитики.

Расширенные OLAP-системы

Аналитические системы, в которые добавлена поддержка транзакций. Примеры:

  • ClickHouse — изначально OLAP-система, но с версии 22.3 поддерживает операции UPDATE и DELETE, а также интеграцию с транзакционными движками.
  • Apache Doris — поддерживает транзакции с помощью механизма MVCC.

Преимущества и недостатки

Преимущества

  • Снижение задержек — данные доступны для анализа сразу после записи, что критично для систем реального времени (например, мониторинг финансовых транзакций, IoT-устройства).
  • Упрощение архитектуры — отпадает необходимость в ETL-процессах и поддержке двух отдельных систем.
  • Снижение стоимости владения — меньшее количество серверов и лицензий, упрощённое администрирование.
  • Актуальность аналитики — отчёты и дашборды всегда отражают текущее состояние данных.

Недостатки

  • Конкуренция за ресурсы — при высокой нагрузке транзакционные запросы могут замедляться из-за аналитических и наоборот.
  • Сложность оптимизации — настройка HTAP-системы требует глубокого понимания профилей нагрузки и умения балансировать между ними.
  • Ограничения по масштабу — некоторые HTAP-системы хуже масштабируются на очень большие объёмы данных (сотни терабайт) по сравнению с чистыми OLAP-решениями.
  • Более высокая стоимость лицензий — коммерческие HTAP-системы (например, SAP HANA) могут быть дороже традиционных СУБД.

Применение

HTAP-системы находят применение в областях, где требуется оперативная аналитика на свежих данных.

Финансовый сектор

  • Обнаружение мошенничества — анализ транзакций в реальном времени для выявления подозрительных операций.
  • Управление рисками — расчёт рыночных рисков на основе текущих позиций и котировок.

Промышленность и IoT

  • Мониторинг оборудования — сбор данных с датчиков, их немедленная обработка и анализ для прогнозирования отказов.
  • Управление производством — оперативное планирование на основе текущих данных о загрузке станков и запасах.

Электронная коммерция

  • Персонализация — рекомендации товаров на основе истории покупок и текущего поведения пользователя.
  • Динамическое ценообразование — изменение цен в зависимости от спроса, остатков и действий конкурентов.

Телекоммуникации

  • Анализ трафика — обработка данных о вызовах и подключениях для оптимизации сети.
  • Биллинг в реальном времени — расчёт стоимости услуг по мере их потребления.

Примеры реализации

TiDB (PingCAP)

TiDB — это распределённая HTAP-система с открытым исходным кодом. Она состоит из двух компонентов: TiKV (транзакционное хранилище на основе Raft-консенсуса) и TiFlash (колоночное аналитическое хранилище, синхронизирующееся с TiKV асинхронно). Пользователь отправляет SQL-запросы через единый интерфейс, а оптимизатор решает, какой компонент будет выполнять запрос. TiDB используется в таких компаниях, как Pinterest, Databricks и UCloud.

SingleStore

SingleStore (ранее MemSQL) — коммерческая HTAP-СУБД, ориентированная на работу в реальном времени. Она поддерживает как строковое, так и колоночное хранение в одной таблице, а также потоковую загрузку данных из Apache Kafka. SingleStore применяется в Uber, Akamai и Comcast.

SAP HANA

SAP HANA — это in-memory HTAP-платформа, разработанная компанией SAP. Она хранит данные в оперативной памяти и использует колоночные структуры для аналитики. SAP HANA является основой для многих корпоративных приложений SAP, включая ERP и CRM. В России SAP HANA используется в крупных компаниях, таких как «Газпром нефть» и «Сбербанк», однако с учётом санкционных ограничений и политики импортозамещения наблюдается тенденция к переходу на отечественные решения.

«Яндекс.Мандарин»

«Яндекс.Мандарин» — это HTAP-система, разработанная в компании «Яндекс» для внутренних нужд. Она предназначена для обработки смешанной нагрузки в сервисах компании, таких как поиск, реклама и карты. Система использует гибридное хранение данных и поддерживает как транзакционные, так и аналитические запросы. В открытом доступе информация о «Яндекс.Мандарин» ограничена, так как это внутренний продукт.

Критика и ограничения

Несмотря на очевидные преимущества, HTAP-системы подвергаются критике по нескольким направлениям.

  • Недостаточная зрелость — многие HTAP-системы появились относительно недавно и не имеют такого же уровня стабильности и оптимизации, как зрелые OLTP- или OLAP-системы.
  • Сложность внедрения — для эффективного использования HTAP требуется глубокое понимание как транзакционных, так и аналитических паттернов, что повышает требования к квалификации персонала.
  • Компромиссы в производительности — попытка сделать систему «универсальной» часто приводит к тому, что она не достигает пиковой производительности ни в одном из режимов. Например, аналитические запросы в HTAP-системе могут быть медленнее, чем в специализированной OLAP-системе, а транзакционные — медленнее, чем в OLTP-системе.
  • Стоимость — лицензии на коммерческие HTAP-системы (SAP HANA, SingleStore) могут быть значительно дороже, чем на традиционные СУБД, что ограничивает их применение в малом и среднем бизнесе.

Перспективы развития

Технология HTAP продолжает развиваться. Основные тенденции включают:

  • Интеграция с облачными платформами — появление HTAP-сервисов в облаках (например, Amazon Aurora, Google AlloyDB, Azure SQL Database).
  • Использование новых типов памяти — внедрение энергонезависимой памяти (Intel Optane, NVDIMM) для ускорения как транзакций, так и аналитики.
  • Автоматизация управления нагрузкой — разработка алгоритмов машинного обучения для динамического распределения ресурсов между транзакционными и аналитическими запросами.
  • Развитие open-source решений — рост популярности TiDB, Apache Doris и других проектов с открытым исходным кодом, что снижает барьер входа для малых и средних компаний.

В России интерес к HTAP-системам растёт в рамках политики импортозамещения. Разрабатываются отечественные аналоги, такие как Postgres Pro Enterprise (с поддержкой гибридной обработки) и решения на базе ClickHouse с расширенной транзакционной поддержкой. Однако широкое внедрение HTAP в российских компаниях пока ограничено из-за высокой стоимости и необходимости перестройки существующих архитектур данных.

Источники

  • Gartner. «Hybrid Transaction/Analytical Processing (HTAP)». Gartner IT Glossary, 2014.
  • Stonebraker, M. et al. «The End of an Architectural Era (It’s Time for a Complete Rewrite)». Proceedings of VLDB, 2007.
  • PingCAP. «TiDB: A Distributed HTAP Database». PingCAP Documentation, 2023.
  • SingleStore. «SingleStore Architecture Overview». SingleStore Documentation, 2024.
  • SAP. «SAP HANA Platform». SAP Help Portal, 2023.
  • «Яндекс.Мандарин: внутренняя HTAP-система». Доклады конференции HighLoad++, 2022.
  • «Postgres Pro Enterprise: гибридная обработка данных». Документация Postgres Pro, 2024.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →