Что такое HTAP: гибридная транзакционно-аналитическая обработка

Архитектура данных курсы примеры обучение, хранилище данных для разработчика, дата-инженерия и архитектура данных примеры курсы обучение, Школа Больших Данных Учебный Центр Коммерсант

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

Что такое HTAP

Исторически хранилища данных принято делить на OLAP и OLTP с учетом их оптимизации для аналитических и транзакционных нагрузок. OLTP-системы (Online Transaction Processing) оптимизированы для обработки большого количества транзакций в режиме реального времени. Они обеспечивают быстрое выполнение операций вставки, обновления и удаления данных, поддерживая целостность и надежность транзакций. Например, Oracle Database, Microsoft SQL Server, PostgreSQL и др. OLAP-системы (Online Analytical Processing) предназначены для анализа больших объемов данных, поддержки многоразмерных запросов и сложных аналитических операций. Они оптимизированы для выполнения сложных запросов и предоставления сводной информации для принятия управленческих решений. Например, ClickHouse.

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

Хронология развития HTAP-хранилищ
Хронология развития HTAP-хранилищ

До HTAP приходилось использовать несколько хранилищ данных для OLAP и OLTP-нагрузок. Хотя можно использовать хранилище операционных данных (ODS, Operational Data Storage) для соединения, это требует ресурсов и не может полностью устранить задержку преобразования транзакционных данных для аналитических запросов. HTAP изначально разработан для поддержки как OLAP, так и OLTP-сценариев без создания дополнительных уровней сложности.

OLTP-системы обычно используют ориентированные на строки B+ или LSM-деревья для хранения данных. Поэтому они хорошо подходят для быстрого выполнения простых операций мутации данных (вставка, изменение, удаление). Однако, эти строковые структуры не очень хорошо подходят для аналитики и больших наборов данных, где основная рабочая нагрузка основана на агрегациях. В OLAP-хранилищах обычно используется колоночное хранение данных и MPP-подход для массово-параллельной обработки.

HTAP может сократить необходимость использования ETL/ELT-конвейеров для поставки данных из OLTP-хранилищ в OLAP-базы. Концепция HTAP может потенциально распространяться на любую архитектуру данных, где есть разделение между транзакционными и аналитическими рабочими нагрузками. А с появлением объектных хранилищ, берущих на себя роль универсального слоя хранения, можно унифицировать совершенно разные типы рабочих нагрузок. Однако HTAP предполагает обработку, а не просто хранение данных. Тенденция к универсализации хранения данных сегодня выражается в таких форматах Apache Iceberg, Apache Hudi и Delta Lake, где объекты хранятся в виде общих таблиц, куда можно вносить свои собственные вычисления.

Типовая архитектура платформы данных
Типовая архитектура платформы данных

Интересно, что гибридизация также проявляется и в развитии современных парадигм обработки данных, когда пакетный подход объединяется с потоковым, например, как в Apache Flink. Аналогичную тенденцию сегодня демонстрируют разработчики Confluent Kafka, выпустив TableFlow, о котором мы писали здесь. Tableflow реализует HTAP-подход, используя единый механизм хранения Kora для предоставления транзакционной потоковой семантики и аналитической табличной семантики для одного и того же топика благодаря нативной горизонтальной интеграции с объектным хранилищем.

Tableflow для реализации HTAP-подхода
Tableflow для реализации HTAP-подхода

Платформа Unistore от Snowflake тоже реализует HTAP-подход в гибридных таблицах, которые обладают всеми функциями транзакционных систем, такими как первичные ключи, внешние ключи, ссылочная целостность, ограничения, а также позволяют быстро выполнять сложную аналитику по большим наборам данных.

Архитектура гибридных хранилищ данных

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

  • основное строковое хранение и колоночное хранилище в памяти;
  • распределенное строковое хранение с репликацией данных в колоночное хранилище. Главный узел обрабатывает транзакции чтения-записи и асинхронно реплицирует журналы на подчиненные узлы для ускорения аналитических запросов.
  • основное строковое хранение и распределенное колоночное хранилище в памяти;
  • основное колоночное хранилище и строковое хранилище изменений данных.
Виды HTAP-хранилищ
Виды HTAP-хранилищ

Таким образом, HTAP-архитектура комбинирует строковое и колоночное хранение данных для поддержки OLAP и OLAP-нагрузок. Интеграция строкового и колоночного хранения достигается за счет механизмов синхронизации и репликации данных, в т.ч. с использованием вычислительных движков, таких как Apache Spark и Flink в TiDB.

Архитектура HTAP-хранилища
Архитектура HTAP-хранилища

HTAP-базы используют гибридную индексацию, объединяющую индексы B-дерева для операций OLTP и bitmap-индексы для запросов OLAP. Для обеспечения согласованных аналитических запросов без блокировки транзакций обычно используется многоверсионный контроль параллелизма (MVCC).

Проблемы HTAP-хранилищ и их возможные решения

Несмотря на преимущества гибридной HTAP-архитектуры, она имеет следующие недостатки:

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

Таким образом, гибридные HTAP-архитектуры дают мощные возможности для одновременной поддержки транзакционной и аналитической обработки данных, чтобы ускорить бизнес-процессы и упростить data-driven управление. Также использование единого хранилища может сократить стоимость владения данными за счет исключения ETL/ELT-конвейеров и минимизации техстека. Однако, практическая реализация такого гибридного подхода пока еще имеет ряд сложностей. Впрочем, возможно уже в ближайшем будущем эти проблемы будут устранены благодаря развитию технологий многопроцессорных систем, увеличению объема оперативной памяти и NVMe SSD-дисков. Кроме того, внедрение ИИ и ML во внутренние механизмы управления данными позволит автоматически оптимизировать запросы, прогнозировать нагрузки, а также улучшать гибкость и масштабируемость HTAP-систем.

Узнайте, как построить согласованную и эффективную архитектуру данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Источники

  1. https://jack-vanlightly.com/blog/2024/5/2/hybrid-transactional-analytical-storage
  2. https://www.snowflake.com/guides/htap-hybrid-transactional-and-analytical-processing/
  3. https://arxiv.org/pdf/2404.15670
  4. https://www.pingcap.com/blog/the-long-expedition-toward-making-a-real-time-htap-database/
  5. https://dynamicduniya.com/blog/understanding-htap-databases-bridging-transactions-and-analytics
Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.