
Статья подготовлена совместно с экспертом
Павел Савченко, архитектор предпродажных решений

Технический каталог данных определяет, насколько дорого обойдётся смена Lakehouse-стека. Война табличных форматов закончилась: Apache Iceberg читают и пишут Snowflake, Databricks, Google Cloud и дистрибутивы Trino. Поэтому переносимость самих данных перестала быть главным аргументом при выборе стека. Файлы Parquet и метаданные Iceberg остаются в объектном хранилище при смене движка. Переносить приходится политики доступа, историю аудита, правила обслуживания таблиц и механизм координации параллельных записей. Всё это хранится в каталоге.
При выборе инструмента часто путают два класса продуктов. Технический каталог, или метастор, обслуживает движки: хранит схемы, указатели на файлы и версии таблиц, координирует атомарные коммиты. Бизнес-каталог вроде DataHub или OpenMetadata нужен людям: в нём описывают владельцев, глоссарий и происхождение данных для аналитиков.
В обзор вошли технические каталоги, которые можно развернуть в собственном контуре и использовать поверх S3 или HDFS. Управляемые сервисы, привязанные к одному публичному облаку, для российского рынка не подходят, поэтому AWS Glue, BigLake и Azure-варианты Hive Metastore остались за рамками.
Рассмотрены девять продуктов. Для каждого приведены версия и ключевые свойства, в конце — таблица по 14 критериям и четыре сценария выбора. Все статусы актуальны на 18 августа 2026 года: рынок каталогов меняется быстро, и за квартал половина такой таблицы может устареть.

Павел Савченко, архитектор предпродажных решений
Apache Iceberg не хранит таблицу как директорию с файлами. Её состояние описывает цепочка версионированных metadata-файлов, а каталог хранит указатель на текущий metadata.json. Коммит в Iceberg меняет этот указатель атомарно, а не переписывает данные. Без такой точки атомарности два движка могут записать метаданные поверх друг друга, и состояние таблицы разойдётся.
Технический каталог данных координирует транзакции файлового слоя, а не просто хранит схемы.
Эти классы продуктов решают разные задачи и не заменяют друг друга.
| Параметр | Технический каталог, метастор | Бизнес-каталог |
| Клиент | Движок: Trino, Spark, Flink | Аналитик, стюард данных, аудитор |
| Что хранит | Схемы, указатели на файлы, снапшоты, права на объекты | Владельцев, глоссарий, описания, происхождение данных |
| Ключевая функция | Атомарный коммит и согласованность параллельных записей | Поиск, документирование, контекст |
| Что ломается без него | Таблица расходится при записи из двух движков | Данные есть, но непонятно, кому они принадлежат и как считаются |
Путаница начинается, когда продукт умеет выполнять обе роли. DataHub известен как бизнес-каталог, но включает технический Iceberg-каталог. Это разные подсистемы в одном развёртывании, с разными требованиями к надёжности и эксплуатации.
Продукты сравниваются по трём группам критериев.
Iceberg закрепился как открытый формат таблиц, вокруг него выстраивается совместимость движков. Delta Lake остаётся родным форматом для экосистемы Databricks и читается внешними системами через слой совместимости. Hudi сохраняет позиции в потоковых сценариях.
Для технического каталога важнее протокол, чем табличный формат. Формат описывает размещение файлов, протокол — взаимодействие движка с каталогом. Iceberg REST Catalog — открытая спецификация HTTP API для каталожных операций. REST-совместимый движок подключается к любой совместимой реализации заменой адреса в конфигурации.
Hive Thrift API пришёл из Hadoop-эпохи и поддерживается ограниченным набором движков. Проприетарные REST-диалекты работают в пределах экосистемы конкретного вендора. При смене каталога через два года данные останутся в хранилище, но потребуется перенести регистрацию таблиц, настройки движков и политики доступа.
Все девять продуктов поддерживают S3-совместимые хранилища, но с разными ограничениями. Часть каталогов тестируется только с AWS S3 и MinIO. DataHub Iceberg Catalog прямо ограничен AWS S3.
HDFS для российского рынка остаётся важным legacy-слоем. Из девяти продуктов HDFS документирован у трёх: Apache Amoro, Apache Gravitino и CedrusData Catalog. У Lakekeeper HDFS нет ни в списке поддерживаемых хранилищ основной ветки, ни в актуальном релизе. Polaris ограничен S3, Azure и GCS.
Federation-коннекторы Polaris к Hive и Hadoop подключают внешние каталоги, но не добавляют поддержку HDFS как хранилища данных. Эти сценарии не стоит смешивать.
В Hadoop-мире права доступа часто выносят за пределы технического каталога — в Apache Ranger или движок политик вроде OPA. Такая схема работает, но в гетерогенном Lakehouse у неё есть слабые места.
Каждому движку нужна собственная интеграция, а версии плагинов нередко отстают от версий движков. Каталог должен получать личность конечного пользователя, а не только знать, что запрос пришёл с сервисным ключом. Иначе детализация прав теряется уже на входе. Если правила распределены по трём системам, один и тот же набор файлов оказывается под разными моделями доступа, а расхождения обнаруживаются во время аудита.
Большинство новых каталогов переносят авторизацию внутрь продукта. Каталог видит клиентов и таблицы, поэтому применяет единую модель прав в одной точке. Встроенная ролевая модель есть в Polaris, Lakekeeper, Gravitino и DataHub Iceberg Catalog.
Ролевая модель отвечает на вопрос, кому доступен объект. Отдельно нужно решить, как движок получит доступ к файлам в хранилище.
Credential vending. Каталог проверяет права и выдаёт короткоживущие учётные данные с доступом только к путям конкретной таблицы. Постоянного ключа от бакета у движка нет. Polaris поддерживает AWS, Azure и GCS. Gravitino работает с теми же провайдерами и с OSS.
Remote signing. Движок не получает даже временный ключ. Он формирует запрос к объектному хранилищу, отправляет заголовки каталогу, а каталог проверяет операцию и подписывает запрос своими учётными данными. В обзоре такую модель реализует только Lakekeeper.
Iceberg применяет изменения двумя способами. Copy-on-Write переписывает файлы данных при каждом обновлении: чтение остаётся быстрым, но запись обходится дорого. Merge-on-Read создаёт отдельные файлы удалений, которые движок учитывает во время чтения. Запись дешевле, но со временем чтение замедляется.
При частых обновлениях накапливаются мелкие файлы, delete-файлы, старые снапшоты и осиротевшие объекты. Для обслуживания нужны компакция, истечение снапшотов, удаление осиротевших файлов и переупорядочивание данных. Эти операции требуют вычислительных ресурсов, поэтому важен не сам факт их запуска, а система, которая определяет момент запуска.
Каталог видит изменения таблицы целиком: кто и когда записывал данные, как часто приходят коммиты, сколько накопилось снапшотов и файлов удалений. Движки в платформе могут меняться, каталог обычно остаётся. Поэтому ему удобно хранить правила и координировать обслуживание.
Продукты из обзора делятся на три группы.
| Параметр | Значение |
| Версия на 18.08.2026 | 4.2.0, тег rel/release-4.2.0 от 21.11.2025. Версия 4.2.1 не выпущена, доступен release-4.2.1-rc0 от конца июля 2026 года |
| Протокол | Hive Thrift, Iceberg REST с версии 4.1.0. REST-модуль входит в стандартную поставку, но по умолчанию выключен |
| RBAC | Ролевой модели в метасторе нет |
| Обслуживание таблиц | Нет |
| HDFS | Требует дополнительной проверки по документации Apache Hive |
| Кэш метаданных | Есть у REST-сервлета. Ключ metastore.iceberg.catalog.cache.expiry, значение по умолчанию — -1 |
Метастор вырос из Hadoop. Первый коммит будущего Hive появился в репозитории Apache 2 сентября 2008 года: это был contrib-модуль с описанием a sql-like query processing tool, добавленный Ashish Thusoo из Facebook. В число проектов верхнего уровня ASF Hive вошёл позже, и эти две даты часто смешивают.
Метастор хранит схемы, разделы и адреса файлов, взаимодействует с клиентами по Thrift. Веб-интерфейса в нём нет. В конфигурации версии 4.2.0 отсутствуют ключи для UI.
Главное изменение последних двух лет — собственный Iceberg REST Catalog. Модуль standalone-metastore/metastore-rest-catalog появился в версии 4.1.0 от 30 июля 2025 года, а не в 4.2.0. В тегах 4.0.0 и 4.0.1 его нет, в 4.1.0 и 4.2.0 он присутствует.
Модуль входит в стандартную сборку, но по умолчанию отключён: порт сервлета metastore.catalog.servlet.port равен -1, а отрицательное значение выключает сервлет. Для аутентификации доступны none, simple, jwt и oauth2. По умолчанию используется JWT.
Официальный статус зрелости реализации не указан. В релизных заметках и описаниях конфигурации нет ни пометки experimental, ни заявления о готовности для production. В версии 4.2.0 добавили OAuth 2, ViewCatalog через Iceberg REST и docker-compose для проверки совместимости REST-каталога с Gravitino и Polaris.
Если инфраструктура строится вокруг Hadoop, Spark и Hive, а переход к Lakehouse не планируется, менять метастор может быть дороже, чем сохранить его. Ролевой модели внутри Hive Metastore нет, поэтому права приходят извне — из Apache Ranger или слоя HiveServer2.
Аутентификация остаётся гибкой: доступны Kerberos через SASL, LDAP, JWT и подключаемый пользовательский класс. Для нового Lakehouse Hive Metastore выглядит слабым кандидатом, но как исходная точка миграции он вполне пригоден.
| Параметр | Значение |
| Версия на 18.08.2026 | 0.108.4 от 31.07.2026. За предыдущие шесть месяцев вышло 10 релизов |
| Протокол | Собственный API. Iceberg REST отмечен как экспериментальный |
| RBAC | Правила на языке CEL, только для слоя метаданных |
| Обслуживание таблиц | Отдельный Nessie GC, без компакции |
| HDFS | Не заявлен. S3 поддерживается полностью, GCS и ADLS — экспериментально |
| Кэш метаданных | Есть: метрики cache=nessie-objects, настраиваемый TTL ссылок |
Nessie версионирует каталог целиком. Один коммит меняет состояние нескольких объектов, а последовательность изменений на ветке становится доступна остальным после одной операции слияния. Это подходит для веток под ETL-прогоны, тегов для воспроизводимости обучающих выборок и отката группы витрин одним действием.
С термином WAP нужна осторожность. Write-Audit-Publish в документации Nessie не используется. Механика для такого паттерна есть: ветка, ревью, слияние и мультитабличный коммит. Но сам ярлык пришёл из сторонних материалов.
Слово «транзакции» тоже требует уточнения. Проект отдельно оговаривает, что полноценные кросс-табличные транзакции в смысле классического хранилища ещё находятся в разработке. Коммит Nessie не стоит приравнивать к транзакции базы данных.
Nessie поддерживает выразительные правила доступа на CEL с детализацией до ветки и пути. Например, можно разрешить чтение определённого объекта только на ветке prod пользователям с конкретными ролями.
Ограничение встроенной авторизации известно: она контролирует доступ к метаданным, но не защищает данные от прямого обращения к объектному хранилищу в обход Nessie. Для production-контура нужен внешний слой прав на уровне хранилища.
Репозиторий остаётся активным: с февраля по июль 2026 года вышло десять релизов, примерно 1,7 в месяц. При этом Dremio ещё в 2024 году сообщала о переносе усилий в Polaris. Полного объединения проектов пока нет: Nessie сохраняет собственный релизный цикл и не упоминается в документации федерации Polaris.
Nessie можно подключить к Polaris как пользовательскую реализацию Iceberg REST через общую REST-федерацию. Но эта связка опирается на два незавершённых компонента: экспериментальный REST-эндпоинт Nessie и обобщённую федерацию Polaris.
| Параметр | Значение |
| Версия на 18.08.2026 | 1.7.0 от 02.08.2026 |
| Протокол | Iceberg REST API |
| RBAC | Ролевая модель внутри каталога. Внешний движок политик OPA — в статусе preview |
| Обслуживание таблиц | Четыре политики с версии 1.0.0, исполнение остаётся за внешней системой |
| HDFS | Нет. Поддерживаются S3, Azure ADLS и GCS |
| Кэш метаданных | Публично не заявлен |
Главным событием 2026 года для Polaris стал выход из инкубатора Apache. Проект перешёл в статус Top-Level Project. Это важно для управления: Polaris больше не воспринимается только как проект Snowflake и развивается по правилам ASF.
Сравнения, где Polaris указан в версиях 1.2.0 или 1.3.0, уже описывают состояние полугодовой давности. Актуальная версия на 18 августа 2026 года — 1.7.0, выпущенная 2 августа.
Выдача временных учётных данных — сильная сторона Polaris. Функция работает в AWS, Azure и GCS. Клиент запрашивает делегирование через заголовок X-Iceberg-Access-Delegation.
Generic Tables расширяют каталог за пределы Iceberg: в нём можно зарегистрировать Delta, CSV и другие форматы как таблицы общего вида. В версии 1.7.0 функция остаётся в статусе beta.
Ограничения существенные. Для generic-таблиц нет спецификации схемы и партиционирования, Polaris не координирует их коммиты, а обновление выполняется удалением и повторным созданием. Credential vending для таких таблиц тоже недоступен. Для второго формата не работает основная функция безопасности каталога.
Self-hosted Polaris — приложение на Quarkus и JVM, которому нужно внешнее хранилище состояния: реляционный backend через JDBC или MongoDB в статусе beta. Поддерживается Kubernetes 1.33 и новее.
Рекомендуемые размеры pod и параметры production-развёртывания стоит дополнительно сверить с актуальной документацией Polaris. Управляемый вариант представлен Snowflake Open Catalog. Статус тарификации REST API также требует проверки: заявленный ранее срок запуска уже прошёл.
В Polaris нет интеграции с LDAP напрямую: внешняя идентичность подключается через OIDC-провайдера. HDFS в качестве хранилища данных не поддерживается. Каталог хранит четыре политики обслуживания таблиц, но не запускает задачи сам. Механизм polling ему приписывать не стоит.
| Параметр | Значение |
| Версия на 18.08.2026 | 0.5.1 от 18 июля 2026 года |
| Протокол | Собственный REST. Iceberg REST доступен только для чтения |
| RBAC | Ролей нет, права выдаются напрямую принципалу. RBAC заявлен начиная с v0.8+ |
| Обслуживание таблиц | Нет, в roadmap не заявлено |
| HDFS | Не упомянут в документации открытой редакции |
| Кэш метаданных | Публично не заявлен |
Открытую редакцию Unity Catalog ведёт LF AI & Data. Проект находится в статусе sandbox, а API продолжают меняться и не считаются стабильными.
Совместимость с Iceberg строится через UniForm. Таблица остаётся Delta-таблицей, но содержит метаданные обоих форматов. Внешние движки читают её через Iceberg REST Catalog по адресу /api/2.1/unity-catalog/iceberg/.
В документации нет прямой формулировки «только чтение», но это видно по набору маршрутов сервиса. Реализованы получение конфигурации, пространств имён и таблиц. Маршрутов для создания, обновления, коммита и удаления таблиц нет. Запрос представления завершается исключением this is not supported yet.
Roadmap подтверждает это ограничение. Нативные Iceberg-таблицы с чтением и записью запланированы для версии 0.7 и выше, поддержка Iceberg-представлений — для 0.8 и выше.
По governance открытая редакция Unity Catalog заметно отстаёт от управляемой версии. Ролевой модели нет: привилегии выдаются напрямую конкретному принципалу, а пользователей администратор создаёт через CLI.
RBAC, фильтры на уровне строк, маски колонок и происхождение данных заявлены в roadmap для версий 0.8 и выше. Аудит также остаётся в планах. Поддержка S3-совместимых хранилищ указана для 0.8+, поэтому работа с не-AWS S3 пока не заявлена как готовая.
Веб-интерфейс в открытой редакции есть и запускается отдельным приложением. В нём можно создавать и удалять каталоги и схемы, просматривать метаданные и редактировать описания таблиц и функций. Обслуживания Iceberg-таблиц нет ни в текущем продукте, ни в roadmap.
| Параметр | Значение |
| Версия на 18.08.2026 | 0.8.1-incubating от 11.09.2025. Версия 0.9.0 не выпущена, последний кандидат — v0.9.0-rc4 от 23.07.2026 |
| Протокол | Собственный API, Thrift для Mixed-формата. AMS отдаёт Iceberg REST по префиксу /api/iceberg/rest |
| RBAC | Нет, используется одна учётная запись администратора |
| Обслуживание таблиц | Самая проработанная в обзоре реализация: самооптимизация через AMS |
| HDFS | Да, тип хранилища Hadoop с core-site.xml и hdfs-site.xml |
| Кэш метаданных | Публично не заявлен |
Продукт остаётся в инкубаторе Apache и не входит в число проектов верхнего уровня. Файл DISCLAIMER есть и в теге релиза, и в основной ветке на 18 августа 2026 года. Каноническое название — Apache Amoro (incubating), без скобок его лучше не писать.
В основе Mixed-формата лежит разделение таблицы на два хранилища одного формата. BaseStore держит основную массу данных, обычно сформированную batch-вычислениями или оптимизационными процессами. ChangeStore принимает поток изменений в реальном времени и служит источником для CDC.
Опциональный LogStore работает как кэш поверх ChangeStore на базе очередей Kafka или Pulsar. Основные хранилища используют Iceberg с одинаковой раскладкой файлов. При чтении данные объединяются по схеме Merge-on-Read, а минорная оптимизация поддерживает свежесть BaseStore примерно на минутном уровне. В сценариях с частыми обновлениями это снижает write amplification.
Помимо Mixed-Iceberg, AMS работает с Iceberg, Mixed-Hive и Paimon.
Amoro Management Service по заданным порогам определяет, какие объекты требуют оптимизации, и запускает задания в контейнерах оптимизаторов: локальном, Kubernetes, Flink, Spark или внешнем. Документация противоречит сама себе: во вводном абзаце названы четыре типа, ниже описан пятый. Поэтому лучше перечислять поддерживаемые типы, не указывая их количество.
Amoro можно использовать рядом с другим Lakehouse-стеком. AMS отдаёт Iceberg REST API и подключает внешние REST-каталоги, включая Nessie.
Amoro поддерживает режимы аутентификации SIMPLE, KERBEROS, AK/SK и CUSTOM, но многопользовательской модели прав в документации нет. Сервис управляется одной административной учётной записью.
Термин RBAC в документации Amoro встречается, но относится к Kubernetes RBAC для сервисного аккаунта в Helm-чарте. При беглом чтении это легко принять за ролевую модель самого каталога.
Для единого governance-слоя в гетерогенной среде Amoro не подходит. Зато он хорошо выглядит как сервис обслуживания Iceberg-таблиц рядом с отдельным каталогом, который отвечает за доступ и управление метаданными.
| Параметр | Значение |
| Версия на 18.08.2026 | 1.3.0 от 24.06.2026. Версия 1.0.1 из прошлогодних обзоров вышла 13.11.2025 |
| Протокол | Собственный REST и встроенный сервис Iceberg REST |
| RBAC | RBAC и DAC с передачей прав в нижележащие системы, включая Apache Ranger |
| Обслуживание таблиц | Политика компакции Iceberg, появилась в 1.2.0 |
| HDFS | Да, через fileset-каталог поверх Hadoop-совместимой файловой системы |
| Кэш метаданных | Заявлен кэш выданных учётных данных. Данных о кэше метаданных нет |
Gravitino позиционируется как federated metadata lake: он управляет метаданными в разных источниках и регионах, предоставляя единую точку доступа. Под источниками понимаются Hive, MySQL, MariaDB, HDFS и S3. Поверх них каталог добавляет управление доступом, аудит и обнаружение данных.
Так устроен класс metadata lake: Gravitino не заменяет существующие метасторы, а федерирует их. Одновременно он предоставляет нативный сервис Iceberg REST.
Лучше всего проработана интеграция с Trino. Коннектор автоматически загружает каталоги из Gravitino через динамические каталоги. На координаторе для этого нужен режим catalog.management=dynamic. У Spark и Flink покрытие уже.
Credential vending у Gravitino развит довольно подробно. Встроенные провайдеры есть для S3, GCS, ADLS и OSS. Поддерживаются выдача прав для IRSA и генерация IAM-политики для пути конкретной таблицы по заголовку X-Iceberg-Access-Delegation.
Начиная с версии 1.3.0 коннекторы Spark, Flink и Trino используют выданные учётные данные без ручной настройки.
В версии 1.2.0 появились не только описательные политики. Документация включает политику компакции Iceberg со стратегией iceberg-data-compaction, шаблоном задания, триггерами по метрикам файлов данных и delete-файлов, а также целевым размером файла 128 МиБ. В тегах 1.0.1 и 1.1.0 такого документа ещё не было.
Gravitino вышел из инкубатора и стал проектом верхнего уровня ASF. DISCLAIMER.txt удалён из репозитория 22 мая 2025 года и отсутствует в тегах 1.0.0 и 1.3.0.
Ролевая модель заявлена в двух вариантах: RBAC с назначением привилегий ролям и DAC с владельцем объекта. Также заявлена передача прав в нижележащие системы, например Apache Ranger. Но в том же документе есть блок с противоположным утверждением: Gravitino «won't check the privileges» при получении запроса.
Похоже, это устаревший фрагмент документации, который не убрали после изменений. Выбирать трактовку за вендора не стоит: поведение RBAC и DAC лучше уточнить напрямую и проверить на стенде.
Если нужен только Iceberg-каталог, federated-слой Gravitino может оказаться избыточным.
| Параметр | Значение |
| Версия на 18.08.2026 | 0.13.3 от 17.08.2026. Функциональный релиз ветки — 0.13.0 от 30.06.2026 |
| Протокол | Iceberg REST API и Generic Table API для не-Iceberg форматов |
| RBAC | Вложенные роли. Решения принимает OpenFGA в открытой редакции или Cedar в Plus |
| Обслуживание таблиц | Истечение снапшотов, удаление осиротевших файлов, очистка метаданных. Компакции нет |
| HDFS | Нет. Поддерживаются S3, ADLS Gen2, OneLake и GCS |
| Кэш метаданных | Публично не заявлен. Есть кэш групп из LDAP |
Lakekeeper — единственный каталог в обзоре, написанный на Rust. Он поставляется одним бинарным файлом и не требует JVM или Python-окружения.
Для хранения метаданных и секретов нужен PostgreSQL 15 или новее. На этом внешние зависимости заканчиваются. На фоне JVM-сервисов, которым приходится подбирать heap-настройки, Lakekeeper выглядит более простой эксплуатационной единицей.
Линия 0.13 отстоит от 0.10.1 на три минорных версии и примерно на десять месяцев.
Remote signing. Механика связана со свойствами signer.uri и signer.endpoint из Iceberg 1.11. Она покрывает листинги префиксов и generic-таблицы.
Вложенные роли. Роли можно включать друг в друга. Глубина вложенности настраивается и по умолчанию составляет 10 уровней. Пользователями и вложенными ролями управляют через единый API. Права выдаются на восьми уровнях: от сервера и проекта до отдельной таблицы и определения тега.
Generic Table API. С версии 0.13.0 Lakekeeper управляет не-Iceberg объектами. В документации прямо названы Lance, CSV и Parquet, Delta встречается в примерах консоли. API заявлен как формат-агностичный. При этом для функции нет пометки beta или GA, поэтому считать её полностью стабилизированной пока рано.
LDAP поддерживается не как способ прямой аутентификации, а как источник ролей и групп. Можно настроить провайдеры, три режима разрешения групп, периодическую синхронизацию и кэширование в памяти. Сам каталог аутентифицирует пользователей через OIDC- или OAuth2-провайдера и сервисные аккаунты Kubernetes.
Для контура с Active Directory такая схема рабочая, но понадобится OIDC-прослойка.
В открытой редакции есть обслуживание таблиц: настраиваемое истечение снапшотов, удаление осиротевших файлов и устаревших metadata-файлов. Компакции нет ни среди готовых возможностей, ни в планах, опубликованных в документации.
Коммерческая редакция Lakekeeper Plus от Vakamo добавляет Cedar-авторизацию, аудит и SLA. По вторичным источникам, в ней также заявлено автоматическое обслуживание таблиц. Сертификацию Red Hat OpenShift проходит образ Plus, а не открытая сборка.
| Параметр | Значение |
| Статус на 18.08.2026 | Открытая beta |
| Версия | Отдельной версии нет. Нужен DataHub 1.0.0 и новее. Актуальный мажор DataHub — 1.7.0 от 04.08.2026, позже вышел патч ветки 1.6 — v1.6.0.1 от 13.08.2026 |
| Протокол | Iceberg REST API |
| RBAC | Есть, через политики DataHub с привилегиями для таблиц, представлений и пространств имён |
| Обслуживание таблиц | Нет, операция purge не реализована |
| HDFS | Нет, хранилище ограничено AWS S3 |
Версия 1.0.0 в обзорах часто ошибочно подаётся как версия Iceberg-каталога. На деле это минимальная версия платформы DataHub, в которой доступна функция.
Ценность DataHub — в совмещении двух ролей. Он одновременно работает как технический каталог и как витрина данных для людей. Iceberg-таблица регистрируется в техническом каталоге, а затем становится обычным dataset в DataHub. Свойства, заданные через DDL, попадают в свойства датасета с префиксом TBLPROPERTIES.
Дальше вступает в работу слой бизнес-каталога: владельцы, теги, домены, поиск и та же ролевая модель. Политики настраиваются в интерфейсе DataHub и ограничиваются по складам, датасетам, контейнерам, тегам и доменам. Аутентификация строится на access token DataHub в Bearer-режиме, для публичных данных возможен анонимный доступ.
Ограничения собраны в документации отдельным списком. Для российского контура одно из них критично: поддерживается только AWS S3, а корневой путь хранилища должен начинаться с_ s3://_. Речь идёт не о S3-совместимых системах, а именно об AWS.
Мультитабличные транзакции не поддерживаются, операция очистки не реализована. Сбор метрик и обновление выданных учётных данных находятся в разработке. Credential vending уже есть, срок жизни выданных данных настраивается при создании склада.
| Параметр | Значение |
| Версия на 18.08.2026 | В поисковом индексе одновременно есть ветки 458-x и 476-x. Номер версии повторяет версию базового Trino с порядковым патчем. Какая ветка актуальна, требует дополнительной проверки |
| Протокол | Iceberg REST API по адресу /catalog/iceberg и нативный режим с CedrusData Engine |
| RBAC | Заявлены RBAC и DAC, но план развития также содержит пункт о ролевой модели. Источники расходятся |
| Обслуживание таблиц | Истечение снапшотов и удаление осиротевших файлов разово и по cron. Компакция и автоматическое обслуживание остаются в планах |
| HDFS | Да. Документированы core-site.xml, hdfs-site.xml, Kerberos и имперсонация |
| Кэш метаданных | Вендор заявляет агрессивное кэширование метаданных Iceberg |
CedrusData Catalog реализует спецификацию Iceberg REST Catalog и подключается к совместимым движкам. Заявлены CedrusData, Trino, Apache Spark и Apache Flink. В нативном режиме с CedrusData Engine добавляются материализованные представления.
Публично описанный набор возможностей на 18 августа 2026 года включает следующее.
26 марта 2026 года команда CedrusData вошла в VK Tech. CedrusData Engine и CedrusData Catalog названы частью усиления VK Data Platform, которую строят поверх S3-совместимого VK Object Storage и колоночной базы Tarantool Column Store.
Каталог рассчитан на S3-совместимые хранилища. VK Object Storage относится к этому классу, а совместимость с ним ранее заявлялась для CedrusData Engine. При этом публичного подтверждения нативной интеграции именно CedrusData Catalog с объектным хранилищем VK Cloud пока нет. Этот момент лучше сверить перед публикацией.
Для российского контура важен и реестровый статус. CedrusData Catalog внесён в реестр отечественного ПО под номером 27155 от 19 марта 2025 года, правообладатель — ООО «Кверифай Лабс». Запись № 15789 от 5 декабря 2022 года относится к CedrusData Engine, и для закупок эти номера важно не перепутать.
Продукт бесплатен для разработки, тестирования и промышленной эксплуатации, коммерческая поставка добавляет поддержку. Тип лицензии стоит уточнить по актуальному EULA: доступные формулировки источников расходятся.

CedrusData Catalog — HDFS и S3, обслуживание таблиц по расписанию, запись в реестре отечественного ПО № 27155
Таблица отражает состояние продуктов на 18 августа 2026 года. За предыдущий год Polaris сменил статус и пять версий, Lakekeeper прошёл три минорные линии, а у Gravitino появилось обслуживание таблиц. Сравнение без даты быстро вводит в заблуждение.
Пометки «нет» и «не заявлено» означают разное. «Нет» означает, что функция отсутствует и это подтверждено документацией, включая отрицательные свидетельства. «Не заявлено» означает, что публичного подтверждения нет. Это повод уточнить детали у вендора, а не дополнять картину догадками.
| Критерий | Hive Metastore | Nessie | Polaris | Unity Catalog (OSS) | Amoro (incubating) | Gravitino | Lakekeeper | DataHub Catalog | CedrusData Catalog |
| Iceberg REST API | С 4.1.0, входит в поставку, по умолчанию выключен | Экспериментальный | Да, основной протокол | Только чтение, маршрутов записи нет | Да, /api/iceberg/rest | Да, нативный сервис | Да, основной протокол | Да, открытая beta | Да, плюс нативный режим с Engine |
| Не-Iceberg форматы | Таблицы Hive, Delta не заявлен | Нет, только Iceberg | Generic Tables в beta: Delta, CSV | Delta как родной формат, Parquet, ORC, JSON, CSV, AVRO | Mixed-Iceberg, Mixed-Hive, Paimon | Федерация Hive, MySQL, MariaDB, filesets | Generic Table API: Lance, CSV, Parquet | Нет, только Iceberg | Нет, только Iceberg |
| HDFS | Требует проверки | Не заявлен | Нет | Не заявлен | Да, тип хранилища Hadoop | Да, fileset поверх Hadoop-совместимой ФС | Нет | Нет | Да, отдельная настройка HDFS |
| S3 | Требует проверки | Да, GCS и ADLS экспериментальны | Да, плюс Azure и GCS | AWS S3, S3-совместимые хранилища заявлены для 0.8+ | Да | Да, плюс GCS, ADLS и OSS | Да, проверено с AWS и MinIO | Только AWS S3 | Да, статические ключи или STS |
| LDAP | Да, для аутентификации | Не заявлен | Нет, используется внешний OIDC-провайдер | Не заявлен | Нет | Не заявлен | Да, как источник ролей и групп. Аутентификация через OIDC | Не заявлен | В плане развития |
| RBAC / DAC | Ролевой модели нет, права приходят извне | CEL-правила только для метаданных | Да, встроенная ролевая модель | Ролей нет, гранты выдаются принципалу. RBAC заявлен для 0.8+ | Нет, одна учётная запись администратора | RBAC, DAC и pushdown в Ranger, но документация противоречива | Да, вложенные роли, OpenFGA или Cedar | Да, политики DataHub | RBAC и DAC заявлены, но источники расходятся |
| Credential vending | Не заявлен | Не заявлен | Да, для S3, Azure и GCS. Для generic-таблиц нет | Не заявлен | Не заявлен | Да, для S3, GCS, ADLS и OSS | Да, плюс remote signing по Iceberg 1.11 | Да, срок жизни настраивается | Не заявлен. Есть обратная передача ключей от движка в каталог |
| Git-ветки данных | Нет | Да, ключевая функция | Нет | Нет | Нет | Нет | Нет | Нет | Не найдено, есть глобальный time travel |
| Обслуживание таблиц | Нет | Отдельный Nessie GC, без компакции | Четыре политики, исполняет внешняя система | Нет, в roadmap не заявлено | Да, самооптимизация через AMS | Политика компакции Iceberg с 1.2.0 | Снапшоты, осиротевшие файлы и метаданные, без компакции | Нет, purge не реализован | Снапшоты и осиротевшие файлы вручную и по cron. Компакция в плане |
| Кэш метаданных | У REST-сервлета, по умолчанию выключен | Да, настраиваемый TTL | Не заявлен | Не заявлен | Не заявлен | Кэш выданных учётных данных | Не заявлен | Не заявлен | Заявлен вендором |
| Web UI | Нет | Да, простой | Да, Polaris Console | Да, запускается отдельно | Да, развитый интерфейс AMS | Да, веб-интерфейс метаданных | Да, консоль | Да, интерфейс DataHub | Да, с навигатором объектов |
| Язык реализации | Java | Java | Java, Quarkus | Java | Java | Java | Rust | Java, в составе DataHub | Java 21, по заявлению вендора |
| Зрелость на 08.2026 | Высокая, развитие медленное. Версия 4.2.0 от ноября 2025 года | Активные релизы, но вендор стратегически развивает Polaris | Проект верхнего уровня ASF с февраля 2026 года | Sandbox LF AI & Data, API нестабильны | Инкубатор ASF, релиз 0.8.1 от сентября 2025 года, 0.9.0 находится в RC | Проект верхнего уровня ASF, версия 1.3.0 | Активно развивается, линия 0.x, релизы примерно раз в месяц | Открытая beta | Коммерческий продукт с публичной документацией |
| Лицензия | Apache 2.0 | Apache 2.0 | Apache 2.0 | Apache 2.0 | Apache 2.0 | Apache 2.0 | Apache 2.0, Plus — коммерческая редакция | Apache 2.0 | Бесплатное использование, платная поддержка. Тип лицензии нужно уточнить по EULA |
Матрица показывает возможности каталогов, но решение обычно начинается с другого: какие ограничения нельзя снять и какой эксплуатационной сложностью команда готова платить за нужные свойства.
С подтверждённой поддержкой HDFS в обзоре остаются Amoro, Gravitino и CedrusData Catalog.
Hive Metastore из сценария исключать рано, но прямое подтверждение его поддержки HDFS в документации Apache Hive нужно получить отдельно.
Основной кандидат — Apache Polaris. У него есть управление в модели ASF, встроенная ролевая модель и credential vending для трёх облачных стеков. Платой за это будет эксплуатация JVM-сервиса на Quarkus, внешняя БД состояния и самостоятельное сопровождение. Управляемый вариант существует только в экосистеме Snowflake.
Второй кандидат — Lakekeeper. Он поставляется одним Rust-бинарником, поддерживает вложенные роли и remote signing. Ограничения тоже заметны: версия остаётся в линии 0.x, HDFS не поддерживается, а авторизацию в открытой редакции принимает отдельный компонент OpenFGA, который нужно развернуть и сопровождать.
Project Nessie остаётся единственным продуктом обзора, который версионирует каталог целиком и поддерживает ветки, теги, слияния и мультитабличные коммиты.
Для production-сценария нужно заранее решить две задачи:
Связка Nessie с Polaris через REST-федерацию технически возможна, но её устойчивость зависит от двух незавершённых компонентов: экспериментального Iceberg REST в Nessie и обобщённой федерации Polaris.
В этом случае к обычным критериям добавляются запись в реестре отечественного ПО, работа в собственном контуре, совместимость с российскими S3-хранилищами, русскоязычная документация и техническая поддержка.
CedrusData Catalog собран под такой сценарий: Iceberg REST, HDFS и S3, обслуживание таблиц по расписанию, Web UI и запись в реестре отечественного ПО № 27155 от 19 марта 2025 года.
Часть ожидаемых возможностей пока находится в плане развития: LDAP-интеграция и автоматическое обслуживание таблиц. Эти пункты нужно проверять на дату пилота, а не по материалам обзора.
DataHub Iceberg Catalog не подходит по формальному ограничению: его хранилище ограничено AWS S3.
Технический каталог в Lakehouse давно перестал быть реестром таблиц. Iceberg REST API есть почти у всех кандидатов, а Parquet-файлы и метаданные Iceberg переживут смену движка. Сложности начинаются вокруг прав доступа, учётных данных к хранилищу, обслуживания таблиц и координации параллельных записей. Hive Metastore остаётся рабочим выбором для привычного Hadoop-стека, но для нового Lakehouse быстро упирается в внешние системы прав и старый Thrift-контур. Polaris подходит для нейтрального multi-engine Lakehouse с RBAC и credential vending, Lakekeeper интересен remote signing и более простой Rust-эксплуатацией, а Nessie остаётся единственным вариантом, если действительно нужны ветки, теги и слияния состояния набора таблиц.
Amoro разумнее воспринимать как машину обслуживания Iceberg-таблиц, а не как единый центр governance: он особенно полезен там, где потоковые обновления превращают таблицы в склад мелких файлов и delete-файлов. Gravitino пригодится в неоднородной инфраструктуре, где нужно собрать под одним слоем Hive, HDFS, S3 и реляционные источники. Открытая редакция Unity Catalog пока выглядит скорее как витрина совместимости, DataHub Iceberg Catalog хорош связкой технического и бизнес-каталога, но ограничен AWS S3. CedrusData Catalog рассчитан на российский on-prem-контур с HDFS, VK Object Storage, S3-совместимым хранилищем того же вендора, что даёт бесшовную интеграцию без дополнительной настройки совместимости, — с русскоязычной документацией и поддержкой, но LDAP, автоматическое обслуживание и отдельные детали модели прав стоит проверять на пилоте, а не засчитывать по roadmap.
Выбирать каталог по числу галочек в таблице — примерно как выбирать базу данных по цвету логотипа. Сначала стоит зафиксировать неснимаемые ограничения: нужен ли HDFS, обязателен ли S3-совместимый on-prem, допустимы ли постоянные ключи от бакетов, нужны ли ветки данных, встроенная компакция и единая модель прав. Затем кандидатов надо проверить на стенде с реальными Trino, Spark, Flink, объектным хранилищем и SSO: выполнить параллельные коммиты, отозвать доступ, накопить мелкие файлы и посмотреть, кто будет разбираться с последствиями в три часа ночи.
Технический каталог, или метастор, хранит метаданные таблиц: схемы колонок, адреса файлов, историю снапшотов и указатель на актуальный metadata-файл. Он координирует атомарные коммиты, когда в таблицы записывают несколько движков.
В отличие от бизнес-каталога вроде DataHub, технический каталог работает для Trino, Spark, Flink и других движков, а не для аналитиков и стюардов данных.
Hive Metastore вырос из Hadoop и изначально работает по Thrift. Современные каталоги обычно используют открытую спецификацию Iceberg REST.
Начиная с версии 4.1.0 Hive Metastore включает собственный REST-модуль, но он выключен по умолчанию. В релизных заметках Apache Hive нет официальной оценки его зрелости. В Hive Metastore по-прежнему нет встроенной ролевой модели и веб-интерфейса.
При credential vending каталог выдаёт движку короткоживущие учётные данные, ограниченные путями конкретной таблицы. Постоянные ключи от объектного хранилища движку не нужны.
Так работают Polaris, Gravitino, Lakekeeper и DataHub Iceberg Catalog.
Remote signing устроен строже. Движок не получает даже временный ключ, а отправляет каталогу заголовки запроса к объектному хранилищу. Каталог проверяет допустимость операции и подписывает запрос собственными учётными данными. Среди продуктов обзора эту модель поддерживает Lakekeeper.
На 18 августа 2026 года поддержка HDFS подтверждена у трёх продуктов:
У Lakekeeper, Polaris и DataHub Iceberg Catalog HDFS нет среди поддерживаемых хранилищ. Для Hive Metastore требуется отдельная проверка по документации Apache Hive.
Обслуживание таблиц — это процедуры, которые сохраняют производительность при регулярных изменениях данных: компакция мелких файлов, истечение старых снапшотов, удаление осиротевших файлов и переупорядочивание данных.
Полное обслуживание выполняет Apache Amoro. Gravitino поддерживает политику компакции. Lakekeeper и CedrusData Catalog выполняют часть операций очистки. Polaris хранит политики, но передаёт исполнение внешней системе. Hive Metastore, открытая редакция Unity Catalog и DataHub в обслуживании таблиц не участвуют.
Наши специалисты свяжутся с вами в ближайшее время и ответят на все вопросы.

Будем держать в курсе новостей и облачных трендов




