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

Гибридные СУБД

Гибридная СУБД (Hybrid Database Management System, HTAP-система — Hybrid Transactional/Analytical Processing) — это система управления базами данных, которая объединяет в себе возможности обработки операционных (транзакционных) и аналитических (OLAP) нагрузок в едином движке или в тесно интегрированной архитектуре. В отличие от традиционных решений, где для транзакций (OLTP) и аналитики (OLAP) используются отдельные системы, гибридная СУБД позволяет выполнять оба типа запросов на одних и тех же данных без их дублирования и задержек на перенос.

История и предпосылки появления

До середины 2010-х годов архитектура корпоративных информационных систем следовала классической схеме: операционные базы данных (обычно реляционные, нормализованные) обрабатывали текущие транзакции, а для аналитических отчётов данные выгружались в отдельное хранилище (Data Warehouse) или витрины данных. Этот процесс включал ETL-конвейеры (Extract, Transform, Load), что приводило к задержкам от нескольких часов до суток.

Рост популярности интернет-сервисов, интернета вещей (IoT) и финтеха потребовал обработки данных в реальном времени. Компании хотели видеть аналитику по только что совершённым покупкам, текущему состоянию датчиков или движению средств. В ответ на это в 2014 году аналитики Gartner ввели термин HTAP (Hybrid Transactional/Analytical Processing), описывающий системы, способные одновременно выполнять операционные и аналитические запросы без разделения на OLTP и OLAP.

Первыми коммерческими гибридными СУБД стали SAP HANA (2010), MemSQL (ныне SingleStore, 2011) и Clustrix (позднее поглощён MariaDB). С середины 2010-х годов концепцию подхватили многие производители: появились гибридные версии PostgreSQL (Citus, TimescaleDB), MySQL (MySQL HeatWave), а также специализированные решения, такие как TiDB (PingCAP) и Yandex ClickHouse (с поддержкой вставок в реальном времени).

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

Гибридные СУБД реализуют HTAP-возможности через несколько архитектурных подходов:

Единый движок (Single Engine)

Система использует один процессор запросов и одно хранилище, оптимизированное как для точечных транзакций (поиск по ключу), так и для массовых сканирований. Например, SAP HANA хранит данные в памяти в столбцовом формате, но поддерживает блокировки на уровне строк и журнал транзакций (Redo Log). Это позволяет выполнять вставку заказа и тут же — отчёт по продажам за последнюю минуту.

Два движка с синхронизацией (Dual Engine)

СУБД содержит два специализированных движка: один — для OLTP (обычно строковое хранение), второй — для OLAP (столбцовое хранение). Данные реплицируются между ними синхронно или асинхронно. Примеры: MySQL HeatWave (InnoDB для транзакций + HeatWave для аналитики), TiDB (TiKV — строковое хранилище, TiFlash — столбцовое). Пользователь отправляет запрос, и оптимизатор автоматически направляет его в нужный движок.

Гибридное хранение (Hybrid Storage)

Данные хранятся в одном формате, но с возможностью переключения между строковым и столбцовым представлением «на лету». Например, в ClickHouse (до версии 22.8) использовалась строгая столбцовая модель, но с 2023 года добавлена поддержка точечных запросов через механизм UPDATE и DELETE с использованием мутаций. В SingleStore данные хранятся в столбцах, но индексы (skiplist) позволяют быстро находить отдельные записи.

Разделение на горячие и холодные данные

Некоторые системы (например, TimescaleDB на базе PostgreSQL) автоматически перемещают данные: свежие (горячие) — в оперативную память для быстрых транзакций, старые (холодные) — на медленный диск для аналитики. Это не чистая HTAP, но гибридный подход.

Классификация гибридных СУБД

По типу нагрузки и сценарию использования выделяют:

Транзакционно-аналитические (HTAP)

Основной класс. Ориентированы на одновременную обработку высоких объёмов вставок и сложных аналитических запросов. Примеры: TiDB, SingleStore, SAP HANA, MySQL HeatWave.

Системы реального времени (Streaming HTAP)

Предназначены для обработки потоковых данных (Kafka, IoT). Сочетают транзакционную вставку и аналитику с задержкой менее секунды. Примеры: Apache Druid (с поддержкой транзакций через Kafka Indexing Service), RisingWave.

Встраиваемые гибридные СУБД

Работают внутри приложений (embedded). Пример: DuckDB — встраиваемая СУБД, которая может выполнять как аналитические запросы, так и точечные обновления (хотя транзакционная поддержка ограничена).

Облачные гибридные сервисы

Предоставляются по модели DBaaS. Примеры: Amazon Aurora (с поддержкой параллельных запросов), Google AlloyDB (гибрид PostgreSQL), Yandex Managed Service for ClickHouse (с опцией гибридного хранения).

Характеристики и особенности

Производительность

Гибридные СУБД обычно жертвуют пиковой производительностью в одной из нагрузок ради универсальности. Например, TiDB может быть медленнее чистого MySQL для простых транзакций, но быстрее для сложных аналитических запросов. SingleStore, наоборот, оптимизирован под аналитику, но поддерживает транзакции с компромиссами.

Согласованность данных

Большинство HTAP-систем обеспечивают согласованность в конечном счёте (eventual consistency) между транзакционным и аналитическим слоями. Это означает, что аналитический запрос может не увидеть только что вставленную запись, если она ещё не реплицировалась. Некоторые системы (SAP HANA, TiDB с TiFlash) поддерживают строгую согласованность (strong consistency) за счёт синхронной репликации.

Масштабируемость

Гибридные СУБД обычно горизонтально масштабируются (sharding). Например, TiDB использует распределённое хранилище TiKV, которое автоматически шардирует данные. SingleStore поддерживает распределённые таблицы с партиционированием.

Поддержка SQL

Все популярные гибридные СУБД поддерживают стандартный SQL (ANSI SQL:2011 или его подмножество), включая JOIN, агрегации, оконные функции, подзапросы. Однако некоторые (например, ClickHouse) имеют диалект SQL с ограничениями на UPDATE/DELETE.

Применение

Гибридные СУБД востребованы в сценариях, где требуется аналитика «на лету» по операционным данным:

Примеры гибридных СУБД

TiDB (PingCAP)

Распределённая HTAP-СУБД с открытым исходным кодом. Использует архитектуру двух движков: TiKV (строковое хранилище на базе RocksDB) для транзакций и TiFlash (столбцовое хранилище) для аналитики. Поддерживает MySQL-совместимый протокол. Применяется в Alibaba, Pinterest, Meituan.

SingleStore (ранее MemSQL)

Проприетарная СУБД, оптимизированная для аналитики в реальном времени. Хранит данные в столбцовом формате, но поддерживает индексы для точечных запросов. Используется в Uber, Dell, Hulu.

MySQL HeatWave

Облачный сервис Oracle, который добавляет к MySQL встроенный аналитический движок HeatWave. Данные автоматически реплицируются из InnoDB в столбцовое хранилище в памяти. Обещает ускорение аналитических запросов в 10–100 раз по сравнению с чистым MySQL.

Yandex ClickHouse

Столбцовая СУБД с открытым исходным кодом, изначально ориентированная на аналитику. С 2022 года активно развивает поддержку точечных запросов и транзакций (через механизм UPDATE и DELETE с мутациями, а также поддержку INSERT в реальном времени). Широко используется в России для аналитики веб-трафика, телеметрии и рекламы.

SAP HANA

Проприетарная in-memory СУБД, одна из первых коммерческих HTAP-систем. Хранит данные в столбцовом формате, но поддерживает полную транзакционную функциональность (ACID). Применяется в корпоративных ERP-системах SAP S/4HANA.

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

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

Недостатки

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

С ростом объёмов данных и требований к real-time аналитике гибридные СУБД становятся стандартом де-факто для новых проектов. Основные тренды:

Источники

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

На главную BFOmetr →