Статья

StarRocks и открытые форматы данных

2026-08-17 11:05 Новые
Современные аналитические платформы всё чаще отказываются от монолитных хранилищ в пользу Lakehouse-архитектуры - подхода, при котором данные хранятся в открытых форматах в озёрах данных (Data Lake), а различные движки запросов работают с ними напрямую.
StarRocks - один из лидеров в этой области, предоставляя возможность анализировать данные из Hive, Iceberg, Delta Lake, Hudi и других источников без миграции и копирования.
StarRocks - один из лидеров в этой области, предоставляя возможность анализировать данные из Hive, Iceberg, Delta Lake, Hudi и других источников без миграции и копирования.
В этой статье мы разберём, какие открытые форматы данных поддерживает StarRocks, в каких сценариях каждый из них лучше использовать, и в чём заключаются их ключевые преимущества.

Архитектура внешних каталогов

StarRocks предлагает единый механизм для работы с внешними данными - External Catalog (внешний каталог). Это прослойка, которая подключается к метаданным внешнего источника (например, Hive Metastore или AWS Glue) и позволяет выполнять SQL-запросы к данным так, как если бы они хранились внутри StarRocks.
Начиная с версии 3.2, StarRocks также поддерживает Unified Catalog - специальный тип внешнего каталога, который объединяет Hive, Iceberg, Hudi и Delta Lake в единый источник данных. Это особенно удобно, если в вашей организации одновременно используются разные форматы таблиц.
Ключевая философия: данные не нужно импортировать - StarRocks читает их «на лету» из объектного хранилища (S3, OSS, GCS, MinIO) или HDFS. Это даёт единый источник данных для BI, AI, ad-hoc-запросов и отчётов.

Hive Metastore - классика для больших данных

Hive - это не столько формат хранения, сколько метасервис (Hive Metastore, HMS), который хранит информацию о таблицах, их схемах, разделах и расположении файлов. Самые данные при этом могут быть в Parquet, ORC, Textfile, Avro, RCFile или SequenceFile.
Когда использовать Hive?
  • Наследие: если у вас уже есть большое хранилище на Hive, и вы не хотите его мигрировать
  • Простота: Hive Metastore - де-факто стандарт в экосистеме Hadoop, поддерживается практически всеми движками (Spark, Presto, Trino)
  • Широкая поддержка форматов: Hive-таблицы могут храниться в любых файловых форматах, включая Textfile и Avro
Выгоды использования Hive Catalog в StarRocks:
  • Поддержка с v2.4 - зрелая и проверенная интеграция
  • Запись данных обратно в Hive - с помощью INSERT INTO можно не только читать, но и записывать результаты в Parquet (с v3.2), ORC и Textfile (с v3.3) Hive-таблицы
  • Создание и удаление Hive-таблиц прямо из StarRocks
  • Поддерживается широкий спектр сжатий: SNAPPY, LZ4, ZSTD, GZIP, LZO
Ограничения:
  • StarRocks не поддерживает типы данных Hive: INTERVAL, BINARY, UNION, а также MAP и STRUCT для Textfile-таблиц

Apache Iceberg – современный табличный формат

Apache Iceberg - это табличный формат (table format), который добавляет к данным уровень абстракции: поддержку ACID-транзакций, снимков (snapshots), эволюцию схемы, скрытое партиционирование и многое другое.
Когда использовать Iceberg?
  • Требуется ACID: если вам нужны гарантии атомарности, согласованности, изоляции и долговечности при записи данных.
  • Time Travel: необходимо анализировать состояние таблицы на любой момент времени.
  • Сложное управление данными: ветвление (branching) и тегирование (tagging) снимков для разных стратегий хранения.
  • Массивные таблицы с тысячами партиций: Iceberg эффективно управляет метаданными даже при очень большом количестве файлов.
Выгоды использования Iceberg Catalog в StarRocks:
  • Поддержка с v2.4; чтение и запись в Iceberg-таблицы
  • Поддержка двух версий таблиц: v1 и v2 (с поддержкой позиционных и равенственных удалений в зависимости от версии)
  • Поддержка двух форматов файлов: Parquet и ORC с множеством алгоритмов сжатия
  • Iceberg Metadata Tables (с v3.4.1) - можно запросить историю изменений, снапшоты и манифесты прямо через SQL
  • Time Travel-запросы - доступ к историческим версиям данных
  • Создание Iceberg-таблиц и запись данных из StarRocks
Производительность:
StarRocks показывает производительность, близкую к локальному диску, даже при работе с Iceberg на S3-совместимых хранилищах.

Delta Lake – озеро с ACID от Databricks

Delta Lake – это открытый формат таблиц, разработанный Databricks. Он обеспечивает ACID-транзакции поверх Parquet-файлов, поддерживает потоковую и пакетную обработку, а также эволюцию схемы.
Когда использовать Delta Lake?
  • Экосистема Databricks/Spark: если ваши ETL-пайплайны строятся на Spark с использованием Delta Lake
  • Потоковая + пакетная обработка: Delta Lake унифицирует оба подхода
  • ACID-гарантии: аналогично Iceberg, но с более тесной интеграцией со Spark
Выгоды использования Delta Lake Catalog в StarRocks:
  • Поддержка с v2.5
  • Parquet - единственный поддерживаемый формат файлов (с алгоритмами сжатия SNAPPY, LZ4, ZSTD, GZIP, NO_COMPRESSION)
  • Хранилища: HDFS, AWS S3, Microsoft Azure Storage, Google GCS, MinIO
  • Метасторы: Hive Metastore или AWS Glue
Ограничения:
  • Не поддерживаются сложные типы данных Delta Lake: MAP и STRUCT

Unified Catalog: все форматы в одном флаконе

Если в вашей организации одновременно используются Hive, Iceberg и Delta Lake, StarRocks предлагает Unified Catalog (с v3.2). Он позволяет подключить все эти источники как единый каталог при условии, что они используют одну и ту же систему хранения и одно мета-хранилище.
Возможности Unified Catalog:
  • Прямые запросы без создания таблиц в StarRocks
  • Загрузка данных через INSERT INTO или асинхронные материализованные представления
  • Создание и удаление Hive и Iceberg таблиц
Важно: операции, специфичные для формата, поддерживаются только для соответствующих таблиц. Например, CREATE TABLE - только для Hive и Iceberg, а REFRESH EXTERNAL TABLE - для Hive и Hudi.

Какой формат выбрать

Критерий
Hive
Iceberg
DeltaLake
Основное назначение
Метастор + файлы
Современный табличный формат
Табличный формат от DataBricks
ACID-транзакции
Нет
Да
Да
Time Travel
Нет
Да
Да
Версии таблиц
Н/Д
v1, v2 (с поддержкой delete)
Единая версия
Поддерживаемые форматы файлов
Parquet, ORC, Textfile, Avro, RCFile, SequenceFile
Parquet, ORC
Parquet
Создание таблиц из StarRocks
Да (c v3.2)
Да (c v3.1)
Нет
Запись данных из StarRocks
Да
Да
Нет
Когда выбрать
Уже есть Hive-инфраструктура
Нужен ACID, Time Travel, сложное управление метаданными
Экосистема DataBricks/Spark, потоковая обработка

Преимущества работы с открытыми форматами в StarRocks

  1. Отсутствие привязки к вендору (No Lock-in) - можно сменить движок запросов в любой момент.
  2. Экономия на ETL - не нужно копировать данные в отдельное хранилище; аналитика выполняется прямо в озере данных.
  3. Единый источник истины - одни и те же данные доступны для BI, AI, ad-hoc и отчётности.
  4. Высокая производительность - векторизованный движок StarRocks и CBO (Cost-Based Optimizer) обеспечивают высокую скорость даже при работе с внешними данными.
  5. JOIN между разными форматами - можно соединять таблицы из Iceberg, Hudi и Hive в одном запросе.
  6. Гибкая масштабируемость - вычисления (StarRocks) и хранение (Data Lake) масштабируются независимо.

Практические рекомендации

  • Для новых проектов с высокими требованиями к ACID и управлению данными выбирайте Iceberg
  • Если вы уже используете Databricks или Spark с потоковой обработкой - Delta Lake будет естественным выбором
  • Для существующих Hive-хранилищ без потребности в ACID - Hive Catalog даст быстрый и простой доступ
  • При смешанном ландшафте используйте Unified Catalog для унификации доступа
  • Старайтесь избегать использования внешних таблиц (external tables) - в StarRocks они считаются устаревшими; вместо них рекомендуется External Catalog

Заключение

StarRocks предоставляет зрелый и производительный механизм для работы с открытыми форматами данных через External Catalog. Благодаря поддержке Hive, Iceberg и Delta Lake, а также Unified Catalog, StarRocks становится идеальным аналитическим движком для Lakehouse-архитектуры. Выбор конкретного формата зависит от ваших текущих инвестиций в инфраструктуру, требований к ACID и инструментов, которые вы используете для ETL. Но в любом случае StarRocks позволяет вам анализировать данные там, где они лежат, без лишних копирований и миграций.