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 →


