<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Yuriy Gavrilov: posts tagged Rest Catalog</title>
<link>https://gavrilov.info/tags/rest-catalog/</link>
<description>Welcome to my personal place for love, peace and happiness 🤖 Yuiry Gavrilov</description>
<author></author>
<language>en</language>
<generator>Aegea 11.4 (v4171e)</generator>

<itunes:owner>
<itunes:name></itunes:name>
<itunes:email>yvgavrilov@gmail.com</itunes:email>
</itunes:owner>
<itunes:subtitle>Welcome to my personal place for love, peace and happiness 🤖 Yuiry Gavrilov</itunes:subtitle>
<itunes:image href="https://gavrilov.info/pictures/userpic/userpic-square@2x.jpg?1643451008" />
<itunes:explicit>no</itunes:explicit>

<item>
<title>Nimtable: Единая панель управления для зоопарка Iceberg-каталогов</title>
<guid isPermaLink="false">294</guid>
<link>https://gavrilov.info/all/nimtable-edinaya-panel-upravleniya-dlya-zooparka-iceberg-katalog/</link>
<pubDate>Wed, 19 Nov 2025 22:44:53 +0300</pubDate>
<author></author>
<comments>https://gavrilov.info/all/nimtable-edinaya-panel-upravleniya-dlya-zooparka-iceberg-katalog/</comments>
<description>
&lt;p&gt;В современных компаниях, активно использующих данные, часто возникает проблема “зоопарка” технологий. Данные хранятся в озере данных (Data Lake), а метаданные об этих данных — в каталогах. Со временем таких каталогов становится много: один `Hive Metastore` для унаследованной аналитики, другой — `REST Catalog` для новой платформы на Trino, третий — `JDBC Catalog` для специфичного микросервиса, а где-то в среде разработки таблицы вообще создаются напрямую в S3. Каждая система решает свою задачу, но вместе они создают хаос.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nimtable/nimtable"&gt;https://github.com/nimtable/nimtable&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Платформенным дата-командам становится сложно управлять этим разнообразием, отслеживать состояние таблиц, проводить оптимизацию и обеспечивать единые стандарты. Именно для решения этой проблемы и был создан open-source проект &lt;b&gt;Nimtable&lt;/b&gt;. Это не просто очередной каталог для Iceberg, а полноценная платформа для наблюдения и управления (*observability platform*) существующими каталогами из одного окна.&lt;/p&gt;
&lt;h4&gt;Что такое Nimtable?&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;Nimtable&lt;/b&gt; — это легковесная веб-платформа с открытым исходным кодом, предназначенная для исследования и управления каталогами и таблицами Apache Iceberg. Его ключевая идея — предоставить единый интерфейс для подключения к различным существующим каталогам, агрегируя метаданные и предоставляя инструменты для их анализа и обслуживания.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-22.18.11.png" width="1376" height="708" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Проект ориентирован на инженерные и платформенные команды, которые хотят получить контроль над своей Iceberg-инфраструктурой без привязки к конкретному вендору и без операционной сложности самостоятельного развертывания разрозненных инструментов.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gavrilov.info/pictures/image-232.png.jpg" width="2560" height="1598" alt="" /&gt;
&lt;/div&gt;
&lt;h4&gt;Ключевая функциональность&lt;/h4&gt;
&lt;p&gt;Nimtable предлагает набор функций, которые делают его мощным инструментом для управления озером данных.&lt;/p&gt;
&lt;p&gt;пы: картинки можно листать, если что) там много, почти все меню.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1856" data-ratio="3.0032362459547"&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-22.04.44.png" width="1856" height="618" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.28.36.png" width="1946" height="1784" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.40.39.png" width="1894" height="606" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.36.26.png" width="1462" height="324" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.36.06.png" width="1470" height="256" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.34.49.png" width="834" height="808" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.34.42.png" width="1886" height="600" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.34.34.png" width="1948" height="706" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.34.18.png" width="1934" height="1776" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.33.43.png" width="1852" height="1136" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.33.03.png" width="1440" height="1040" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.32.48.png" width="1432" height="806" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.32.23.png" width="642" height="408" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.32.03.png" width="630" height="388" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.31.45.png" width="1926" height="1760" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.31.05.png" width="1944" height="1784" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.30.46.png" width="1950" height="960" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.30.37.png" width="1942" height="630" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.30.29.png" width="964" height="626" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.30.08.png" width="1944" height="1780" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.29.51.png" width="1928" height="816" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.29.38.png" width="1876" height="950" alt="" /&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-21.29.29.png" width="1938" height="878" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ol start="1"&gt;
&lt;li&gt;&lt;b&gt;Агрегация каталогов&lt;/b&gt;: Это главная особенность проекта. Nimtable позволяет в одном интерфейсе подключить и работать с несколькими типами каталогов Apache Iceberg, включая:
&lt;ul&gt;
  &lt;li&gt;`REST Catalog`&lt;/li&gt;
  &lt;li&gt;`AWS Glue`&lt;/li&gt;
  &lt;li&gt;`PostgreSQL` (через JDBC)&lt;/li&gt;
  &lt;li&gt;Каталоги на основе S3 (`S3 Tables`)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol start="2"&gt;
&lt;li&gt;&lt;b&gt;Исследование и визуализация&lt;/b&gt;: Платформа предоставляет удобный UI для навигации по метаданным:
&lt;ul&gt;
  &lt;li&gt;Просмотр каталогов, пространств имен (схем) и таблиц.&lt;/li&gt;
  &lt;li&gt;Анализ схемы таблиц, их партиций, снэпшотов и манифестов.&lt;/li&gt;
  &lt;li&gt;Визуализация распределения файлов и снэпшотов, что помогает быстро находить таблицы, требующие оптимизации (например, с большим количеством мелких файлов).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol start="3"&gt;
&lt;li&gt;&lt;b&gt;Управление оптимизацией&lt;/b&gt;: Nimtable не просто показывает проблемы, но и помогает их решать. Он интегрируется с внешними вычислительными движками, такими как &lt;b&gt;Apache Spark&lt;/b&gt; или &lt;b&gt;RisingWave&lt;/b&gt;, позволяя запускать и отслеживать задачи по обслуживанию таблиц (например, `compaction` или `expire_snapshots`) прямо из веб-интерфейса.&lt;/li&gt;
&lt;/ol&gt;
&lt;ol start="4"&gt;
&lt;li&gt;&lt;b&gt;Встроенный SQL-редактор&lt;/b&gt;: Для быстрой проверки данных или метаданных в Nimtable встроен простой SQL-редактор, позволяющий выполнять запросы к таблицам напрямую из браузера.&lt;/li&gt;
&lt;/ol&gt;
&lt;ol start="5"&gt;
&lt;li&gt;&lt;b&gt;Собственный REST API&lt;/b&gt;: Помимо агрегации других каталогов, Nimtable сам может выступать в роли стандартного Iceberg REST-каталога. Это позволяет использовать его как единую точку входа для различных движков запросов (Trino, Spark, Flink).&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Варианты использования в большой компании&lt;/h3&gt;
&lt;p&gt;Представим себе компанию, где исторически сложился разнородный ландшафт данных:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Прод-кластер Hadoop&lt;/b&gt; использует `Hive Metastore` для аналитических витрин.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Аналитическая платформа&lt;/b&gt; на Trino работает с &lt;a href="https://docs.cedrusdata.ru/latest/cedrusdata-catalog.html"&gt;CedrusData Catalog&lt;/a&gt;, который реализует `Iceberg REST API` &lt;a href="https://habr.com/ru/companies/cedrusdata/articles/860356"&gt;habr.com&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Команда разработки&lt;/b&gt; для своих экспериментов использует таблицы, зарегистрированные напрямую в S3, чтобы не “загрязнять” общие каталоги.&lt;/li&gt;
&lt;li&gt;Какой-то &lt;b&gt;сервис&lt;/b&gt; использует собственную `PostgreSQL` базу как JDBC-каталог.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;В такой среде Nimtable становится незаменимым инструментом:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Единая точка входа&lt;/b&gt;: Платформенная команда подключает все четыре каталога к Nimtable. Теперь для мониторинга состояния всех Iceberg-таблиц в компании достаточно зайти на один дашборд, не переключаясь между разными консолями и инструментами.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Централизованная оптимизация&lt;/b&gt;: Инженер замечает, что в одной из таблиц на прод-кластере накопилось тысячи мелких файлов. Прямо из интерфейса Nimtable он может запустить `compaction-job` на общем Spark-кластере, выбрав нужную таблицу, независимо от того, в каком каталоге она зарегистрирована.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Упрощение доступа&lt;/b&gt;: Вместо того чтобы объяснять новому аналитику, как настроить 4 разных подключения, ему можно дать доступ к Nimtable, где он сможет исследовать все доступные данные в едином, понятном интерфейсе.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Контролируемая миграция&lt;/b&gt;: Если команда решит перенести таблицы из `Hive Metastore` в новый `REST Catalog`, Nimtable позволит одновременно наблюдать за источником и приемником, контролируя процесс и сверяя метаданные.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Архитектура и развертывание&lt;/h4&gt;
&lt;p&gt;Архитектурно Nimtable располагается между конечными пользователями (или движками запросов) и нижележащими каталогами метаданных.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gavrilov.info/pictures/image-231.png" width="1443" height="654" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Проект очень прост в развертывании. Самый быстрый способ начать работу — использовать Docker:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# Переходим в директорию с docker-файлами в репозитории проекта
cd docker
# Запускаем сервисы в фоновом режиме
docker compose up -d&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;После этого веб-интерфейс будет доступен по адресу `&lt;a href="http://localhost:3000"&gt;http://localhost:3000&lt;/a&gt;`.&lt;/p&gt;
&lt;h4&gt;Сравнение с другими решениями&lt;/h4&gt;
&lt;p&gt;Чтобы понять нишу, которую занимает Nimtable, сравним его с другими популярными решениями для управления метаданными.&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" class="e2-text-table"&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;Параметр&lt;/td&gt;
&lt;td style="text-align: center"&gt;Nimtable&lt;/td&gt;
&lt;td style="text-align: center"&gt;Project Nessie&lt;/td&gt;
&lt;td style="text-align: center"&gt;Hive Metastore&lt;/td&gt;
&lt;td style="text-align: center"&gt;CedrusData Catalog&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Основное назначение&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;Платформа для наблюдения и управления несколькими каталогами.&lt;/td&gt;
&lt;td style="text-align: center"&gt;Каталог с Git-подобным версионированием данных.&lt;/td&gt;
&lt;td style="text-align: center"&gt;Хранилище метаданных для экосистемы Hadoop.&lt;/td&gt;
&lt;td style="text-align: center"&gt;Высокопроизводительный Iceberg REST каталог.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Поддержка нескольких каталогов (агрегация)&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Да (ключевая функция)&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;Нет (является самостоятельным каталогом)&lt;/td&gt;
&lt;td style="text-align: center"&gt;Нет (является самостоятельным каталогом)&lt;/td&gt;
&lt;td style="text-align: center"&gt;Нет (является самостоятельным каталогом)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Встроенный UI для управления&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;Да, с фокусом на агрегацию и оптимизацию.&lt;/td&gt;
&lt;td style="text-align: center"&gt;Да, с фокусом на ветки, теги и коммиты.&lt;/td&gt;
&lt;td style="text-align: center"&gt;Нет (обычно управляется через CLI или сторонние UI).&lt;/td&gt;
&lt;td style="text-align: center"&gt;Управляется через API; UI не является основной частью &lt;a href="https://docs.cedrusdata.ru/catalog/458-14"&gt;docs.cedrusdata.ru&lt;/a&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Управление оптимизацией (Compaction)&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;Да, через интеграцию с внешними движками.&lt;/td&gt;
&lt;td style="text-align: center"&gt;Нет, это задача движков запросов.&lt;/td&gt;
&lt;td style="text-align: center"&gt;Нет, это задача движков запросов (Spark/Hive).&lt;/td&gt;
&lt;td style="text-align: center"&gt;Нет, это задача движков запросов.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Git-подобные операции&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;Нет&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Да (ключевая функция)&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;Нет&lt;/td&gt;
&lt;td style="text-align: center"&gt;Нет&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;Как видно из таблицы, Nimtable не конкурирует напрямую с каталогами вроде Nessie или Hive и другими, а дополняет их, выступая в роли “менеджера менеджеров”.&lt;/p&gt;
&lt;h3&gt;Заключение&lt;/h3&gt;
&lt;p&gt;Nimtable — это многообещающий проект, который пока не собрал много звёзд, но уже готов решать реальную боль платформенных дата-команд в крупных организациях. Вместо того чтобы создавать еще один стандарт каталога, он предлагает удобный слой абстракции для управления уже существующим “зоопарком”. Возможность в одном месте видеть, анализировать и оптимизировать таблицы из разных систем (`Hive`, `JDBC`, `REST`) делает его уникальным и крайне полезным инструментом для построения зрелой и управляемой платформы данных на базе Apache Iceberg.&lt;/p&gt;
&lt;p&gt;Кстати, у меня после запуска он сначала жутко тупил, а потом прочихался, на третий день работы в докере))) я уже даже не надеялся, а он смог. ниче не делал) оно само) Но, видимо, если таблиц очень много, то первый запуск надо как то отдельно планировать. В общем зверь интересный и полезный, а запускать не сложно. Ну почти не сложно и баги есть. вот эту нашел например?  &lt;a href="https://github.com/nimtable/nimtable/issues/200"&gt;https://github.com/nimtable/nimtable/issues/200&lt;/a&gt; но это не критично.&lt;/p&gt;
&lt;p&gt;Видосик ниже, компакшен в онлайне не получился, но 5 минут ранее он прошел хорошо. вероятно, что моих локальных ресурсов не хватает для записи видео и этой операции.&lt;/p&gt;
&lt;p&gt;&lt;video controls style="width: 100%; max-width: 1200px; height: auto;"&gt;&lt;br /&gt;
&lt;source src="http://a.gavrilov.info/data/posts/nimtable.mp4" type="video/mp4"&gt;&lt;br /&gt;
Ваш браузер не поддерживает видео.&lt;br /&gt;
&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;Да точно, дело в ресурсах, теперь 16 файлов.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-22.47.50.png" width="1392" height="648" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-22.48.56.png" width="1532" height="1068" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Теперь кстати хочет оптимизации)), хороший тула, можно и сломать табличку им))&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-11-19-v-22.49.46.png" width="1530" height="1060" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Ранее писал о разных каталогах тут: &lt;a href="https://gavrilov.info/all/rukovodstvo-po-rest-katalogam-dlya-trino-i-iceberg/"&gt;https://gavrilov.info/all/rukovodstvo-po-rest-katalogam-dlya-trino-i-iceberg/&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Руководство по REST-каталогам для Trino и Iceberg</title>
<guid isPermaLink="false">263</guid>
<link>https://gavrilov.info/all/rukovodstvo-po-rest-katalogam-dlya-trino-i-iceberg/</link>
<pubDate>Wed, 13 Aug 2025 00:31:21 +0300</pubDate>
<author></author>
<comments>https://gavrilov.info/all/rukovodstvo-po-rest-katalogam-dlya-trino-i-iceberg/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://gavrilov.info/pictures/Snimok-ekrana-2025-08-13-v-00.24.09.png" width="1340" height="494" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;&lt;a href="https://docs.lakekeeper.io"&gt;https://docs.lakekeeper.io&lt;/a&gt; – картинка как у меня не грузится сайт лейкипера. &lt;a href="https://github.com/lakekeeper/lakekeeper/issues/1119"&gt;https://github.com/lakekeeper/lakekeeper/issues/1119&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;В мире современных озер данных (Data Lakehouse) связка Trino и Apache Iceberg стала синонимом производительности и гибкости. Но чтобы эта связка работала по-настоящему эффективно, необходим центральный элемент — каталог метаданных. И если раньше выбор был ограничен Hive Metastore или JDBC, то сегодня стандарт де-факто — это &lt;b&gt;REST Catalog API&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;REST-каталог — это не просто технология, это идеология. Он отделяет движок запросов от хранилища метаданных, позволяя десяткам инструментов (Trino, Spark, Flink, dbt) работать с данными через единый, универсальный и не зависящий от вендора интерфейс.&lt;/p&gt;
&lt;p&gt;Это руководство — погружение во все доступные на рынке REST-каталоги ( почти все ). Мы оценим их готовность к продакшену в Kubernetes, уникальные преимущества и то, как они вписываются в современный стек данных.&lt;/p&gt;
&lt;h4&gt;Почему REST-каталог — это новый стандарт?&lt;/h4&gt;
&lt;ol start="1"&gt;
&lt;li&gt;&lt;b&gt;Централизация и универсальность&lt;/b&gt;: Один каталог для всех. Trino, Spark и Flink видят одно и то же состояние данных. Атомарные коммиты для нескольких таблиц и серверное разрешение конфликтов становятся возможными.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Гибкость развертывания&lt;/b&gt;: REST-сервис — это независимый, stateless-компонент, идеально подходящий для Kubernetes. Его можно легко развернуть, масштабировать и обновлять.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Безопасность на уровне каталога&lt;/b&gt;: Вы можете централизованно управлять доступом, использовать OAuth2 и даже выдавать временные учетные данные для доступа к S3, не прописывая секреты в каждом движке.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Поддержка всех функций Iceberg&lt;/b&gt;: REST API спроектирован для поддержки самых передовых возможностей Iceberg, которые не всегда доступны в старых типах каталогов.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Обзор и рейтинг REST-каталогов: Битва титанов&lt;/h4&gt;
&lt;p&gt;Рассмотрим ключевых игроков, их сильные стороны и готовность к бою в продуктивной среде.&lt;/p&gt;
&lt;h5&gt;1. Project Nessie: Git для ваших данных&lt;/h5&gt;
&lt;p&gt;Nessie — это каталог, построенный вокруг концепции Git. Он позволяет создавать ветки, коммитить и сливать изменения данных так же, как вы это делаете с кодом.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Ключевые преимущества&lt;/b&gt;:
&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;Git-like операции&lt;/b&gt;: Создавайте изолированные ветки для экспериментов (`dev`, `feature-branch`) и сливайте их в основную (`main`) атомарно. Идеально для CI/CD пайплайнов данных.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Декларативные транзакции&lt;/b&gt;: Гарантирует консистентность при одновременных операциях с несколькими таблицами.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Экосистема&lt;/b&gt;: Отличная документация, интеграция с dbt и инструменты для миграции с Hive Metastore.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Готовность к Kubernetes&lt;/b&gt;: &lt;b&gt;Высокая&lt;/b&gt;. Nessie имеет официальный Helm chart, что значительно упрощает развертывание и управление в K8s. Требует отдельного процесса для сборки мусора (Garbage Collection).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Кому подходит&lt;/b&gt;: Командам, которые хотят внедрить DevOps-практики (DataOps) в работу с данными, обеспечивая изоляцию, воспроизводимость и безопасные обновления.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;GitHub&lt;/b&gt;: &lt;a href="https://github.com/projectnessie/nessie"&gt;projectnessie/nessie&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;2. Apache Gravitino (Incubating): Универсальный федеративный мета-каталог&lt;/h5&gt;
&lt;p&gt;Gravitino — это амбициозный проект под эгидой &lt;b&gt;Apache Foundation&lt;/b&gt;, нацеленный на то, чтобы стать единым центром метаданных для всей компании.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Ключевые преимущества&lt;/b&gt;:
&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;Федерация&lt;/b&gt;: Может выступать прокси для существующих каталогов (Hive, JDBC, REST), объединяя их под единым API.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Каскадные запросы в Trino&lt;/b&gt;: Позволяет одному кластеру Trino запрашивать данные из каталогов другого кластера Trino.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Широчайшая экосистема&lt;/b&gt;: Поддерживает не только Iceberg, но и реляционные СУБД, &lt;b&gt;ClickHouse&lt;/b&gt;, и даже &lt;b&gt;каталог для Kafka&lt;/b&gt;, позволяя управлять топиками. Есть планы по управлению метаданными &lt;b&gt;ИИ/ML моделей&lt;/b&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Безопасность&lt;/b&gt;: Поддерживает OAuth2 и Kerberos для бэкенда Hive.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Готовность к Kubernetes&lt;/b&gt;: &lt;b&gt;Средняя&lt;/b&gt;. Проект активно развивается, но требует внимательной конфигурации. Необходимо учитывать требования к версиям Trino (например, 435-439 для некоторых функций).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Кому подходит&lt;/b&gt;: Крупным организациям со сложной, гетерогенной средой, которые стремятся унифицировать управление метаданными из разных источников (Data Lake, DWH, Streaming).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;GitHub&lt;/b&gt;: &lt;a href="https://github.com/apache/gravitino"&gt;apache/gravitino&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;3. Apache Amoro (Incubating, ранее Arctic): Самооптимизирующийся каталог&lt;/h5&gt;
&lt;p&gt;Amoro фокусируется на решении одной из главных проблем озер данных — оптимизации хранения.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Ключевые преимущества&lt;/b&gt;:
&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;Автоматическая оптимизация&lt;/b&gt;: Встроенные механизмы для `compaction` (объединение мелких файлов) и `clustering` для поддержания высокой производительности запросов без ручного вмешательства.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Поддержка смешанных форматов&lt;/b&gt;: Может управлять не только Iceberg, но и Paimon (Flink), а также таблицами смешанного формата.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Экосистема&lt;/b&gt;: Есть интеграция с ClickHouse, Flink, Spark и Trino. Предлагается облачная версия Arctic Cloud.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Готовность к Kubernetes&lt;/b&gt;: &lt;b&gt;Высокая&lt;/b&gt;. Проект нацелен на облачные развертывания и предоставляет инструменты для автоматизации обслуживания.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Кому подходит&lt;/b&gt;: Компаниям с высоконагруженными озерами данных (high-throughput data lakes), где постоянно идет запись данных, и требуется автоматическое поддержание производительности.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Сайт&lt;/b&gt;: ((&lt;a href="https://amoro.apache.org/"&gt;https://amoro.apache.org/&lt;/a&gt; amoro.apache.org)&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;4. Lakekeeper: Крепость безопасности на Rust&lt;/h5&gt;
&lt;p&gt;Lakekeeper — это новый игрок, написанный на Rust, с абсолютным фокусом на безопасности, управлении доступом и интеграции с облаками.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Ключевые преимущества&lt;/b&gt;:
&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;Безопасность во главе угла&lt;/b&gt;: Использует &lt;b&gt;Vended-Credentials&lt;/b&gt; для безопасного доступа к S3, интегрируется с OpenID для аутентификации и OpenFGA для детальной авторизации (Fine Grained Access).&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Нативен для Kubernetes&lt;/b&gt;: Развертывается через Helm chart, может аутентифицировать сервисные аккаунты Kubernetes. Оператор в разработке.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Событийная архитектура&lt;/b&gt;: Генерирует события об изменениях (CloudEvents) в Kafka или NATS, что позволяет строить реактивные пайплайны.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Data Contracts&lt;/b&gt;: Может проверять изменения по внешним системам контрактов данных, чтобы предотвратить нарушение схем.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Легковесность&lt;/b&gt;: Единый бинарный файл без зависимостей от JVM или Python.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Готовность к Kubernetes&lt;/b&gt;: &lt;b&gt;Очень высокая&lt;/b&gt;. Это, возможно, самый “Kubernetes-native” каталог из всех, созданный с нуля для облачных сред.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Кому подходит&lt;/b&gt;: Организациям, для которых безопасность, управление доступом и аудит являются главным приоритетом. Идеален для мульти-облачных и мульти-тенантных сред.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;GitHub&lt;/b&gt;: &lt;a href="https://github.com/lakekeeper/lakekeeper"&gt;lakekeeper/lakekeeper&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;5. Denali: Минималистичная “зверюга” на Go&lt;/h5&gt;
&lt;p&gt;Denali от Bodo.ai — это антитеза сложным enterprise-системам. Его философия — максимальная простота и производительность.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Ключевые преимущества&lt;/b&gt;:
&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;Экстремальная легковесность&lt;/b&gt;: Написан на Go, менее 5000 строк кода, развертывается как один бинарный файл на ~20MB.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Простота развертывания&lt;/b&gt;: Минимальные зависимости (бэкендом может быть SQLite или PostgreSQL). Идеален для быстрых тестов и легковесных продакшен-сред.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Высокая производительность&lt;/b&gt;: Отсутствие оверхеда JVM и компилируемая природа Go.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Готовность к Kubernetes&lt;/b&gt;: &lt;b&gt;Высокая&lt;/b&gt;. Благодаря своей простоте и отсутствию состояния, Denali легко упаковывается в контейнер и управляется в Kubernetes.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Кому подходит&lt;/b&gt;: Командам, которые ценят простоту, производительность и полный контроль над инфраструктурой. Отличный выбор для стартапов и проектов, где не нужна сложная федерация или enterprise-функции.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;GitHub&lt;/b&gt;: [Bodo-inc/denali](&lt;a href="https://github.com/Bodo-inc/denali)"&gt;https://github.com/Bodo-inc/denali)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;6. Tabular: Управляемый сервис от создателей Iceberg&lt;/h5&gt;
&lt;p&gt;Tabular — это не open-source проект, а полностью управляемый SaaS-продукт от сооснователей Apache Iceberg.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Ключевые преимущества&lt;/b&gt;:
&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;Нулевое администрирование&lt;/b&gt;: Вы просто получаете эндпоинт REST-каталога и используете его. Вся инфраструктура, обновления и безопасность — на стороне Tabular.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Надежность и поддержка&lt;/b&gt;: Коммерческая поддержка от экспертов, которые создали Iceberg.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Интеграции&lt;/b&gt;: Глубокая интеграция с dbt, Confluent/Kafka.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Готовность к Kubernetes&lt;/b&gt;: &lt;b&gt;Неприменимо&lt;/b&gt;. Это SaaS-решение, вы не развертываете его самостоятельно.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Кому подходит&lt;/b&gt;: Компаниям любого размера, которые хотят сфокусироваться на аналитике, а не на управлении инфраструктурой.&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;Другие важные игроки&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Apache Polaris (Incubating)&lt;/b&gt;: Официальная реализация REST-каталога от Apache. Цель — стать эталонной. Имеет роли, неймспейсы и документацию для продакшена, но пока менее зрелый, чем конкуренты. [polaris.apache.org](&lt;a href="https://polaris.apache.org/)"&gt;https://polaris.apache.org/)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Databricks Unity Catalog&lt;/b&gt;: Мощнейший каталог, но тесно интегрированный в экосистему Databricks. Поддерживает REST API и уникальную технологию &lt;b&gt;Delta Sharing&lt;/b&gt; для безопасного обмена данными. “Модный, молодежный” выбор для тех, кто уже живет в мире Databricks.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Сводная таблица&lt;/h4&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" class="e2-text-table"&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;Каталог&lt;/td&gt;
&lt;td style="text-align: center"&gt;Стек&lt;/td&gt;
&lt;td style="text-align: center"&gt;Ключевое преимущество&lt;/td&gt;
&lt;td style="text-align: center"&gt;Готовность к PROD в K8s&lt;/td&gt;
&lt;td style="text-align: center"&gt;Лучше всего для...&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;:---&lt;/td&gt;
&lt;td style="text-align: center"&gt;:---&lt;/td&gt;
&lt;td style="text-align: center"&gt;:---&lt;/td&gt;
&lt;td style="text-align: center"&gt;:---&lt;/td&gt;
&lt;td style="text-align: center"&gt;:---&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Project Nessie&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;Java&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Git-версионирование данных&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;✅ Высокая (Helm Chart)&lt;/td&gt;
&lt;td style="text-align: center"&gt;Команд, внедряющих DataOps и CI/CD для данных.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Apache Gravitino&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;Java&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Федерация и универсальность&lt;/b&gt; (ClickHouse, Kafka)&lt;/td&gt;
&lt;td style="text-align: center"&gt;✅ Средняя (требует настройки)&lt;/td&gt;
&lt;td style="text-align: center"&gt;Сложных гетерогенных enterprise-сред.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Apache Amoro&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;Java&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Автоматическая оптимизация&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;✅ Высокая&lt;/td&gt;
&lt;td style="text-align: center"&gt;Высоконагруженных озер данных с постоянной записью.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Lakekeeper&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;Rust&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Безопасность и Governance&lt;/b&gt; (Vended Credentials)&lt;/td&gt;
&lt;td style="text-align: center"&gt;✅✅ Очень высокая (Native K8s)&lt;/td&gt;
&lt;td style="text-align: center"&gt;Компаний с высокими требованиями к безопасности.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: right"&gt;&lt;b&gt;Denali&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;Go&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Простота и производительность&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;✅ Высокая (легковесный контейнер)&lt;/td&gt;
&lt;td style="text-align: center"&gt;Гибких команд, ценящих минимализм и скорость.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: right"&gt;&lt;b&gt;Tabular&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;SaaS&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Нулевое администрирование&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;N/A (SaaS)&lt;/td&gt;
&lt;td style="text-align: center"&gt;Всех, кто хочет готовое решение “под ключ”.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: right"&gt;&lt;b&gt;Apache Polaris&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;---&lt;/td&gt;
&lt;td style="text-align: left"&gt;---&lt;/td&gt;
&lt;td style="text-align: left"&gt;---&lt;/td&gt;
&lt;td style="text-align: left"&gt;---&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: right"&gt;&lt;b&gt;Databricks Unity Catalog&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: left"&gt;---&lt;/td&gt;
&lt;td style="text-align: left"&gt;---&lt;/td&gt;
&lt;td style="text-align: left"&gt;---&lt;/td&gt;
&lt;td style="text-align: left"&gt;---&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;h4&gt;Пример конфигурации Trino&lt;/h4&gt;
&lt;p&gt;Независимо от выбора каталога, конфигурация Trino остается простой и декларативной.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# etc/catalog/my_iceberg_catalog.properties
connector.name=iceberg
iceberg.catalog.type=rest
# URI вашего REST-сервиса
iceberg.rest-catalog.uri=http://lakekeeper-service.default.svc.cluster.local:8181/catalog
# Путь к хранилищу по умолчанию
iceberg.rest-catalog.warehouse=s3://my-warehouse/
# Настройки безопасности (пример для OAuth2)
iceberg.rest-catalog.security=OAUTH2
iceberg.rest-catalog.oauth2.token=&amp;lt;your-token&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;Заключение: Как сделать правильный выбор?&lt;/h4&gt;
&lt;p&gt;Выбор REST-каталога — это стратегическое решение, которое определит гибкость и масштабируемость вашей платформы данных.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;🥇 &lt;b&gt;Для Enterprise с фокусом на безопасность и Kubernetes&lt;/b&gt;: &lt;b&gt;Lakekeeper&lt;/b&gt; — очевидный лидер благодаря нативным K8s-интеграциям и мощным функциям безопасности.&lt;/li&gt;
&lt;li&gt;🥈 &lt;b&gt;Для сложных сред и федерации&lt;/b&gt;: &lt;b&gt;Apache Gravitino&lt;/b&gt; предлагает уникальные возможности по объединению разрозненных источников метаданных.&lt;/li&gt;
&lt;li&gt;🥉 &lt;b&gt;Для чистого DataOps&lt;/b&gt;: &lt;b&gt;Project Nessie&lt;/b&gt; остается лучшим в своем классе для реализации Git-подобных рабочих процессов.&lt;/li&gt;
&lt;li&gt;🚀 &lt;b&gt;Для быстрого старта и простоты&lt;/b&gt;: &lt;b&gt;Denali&lt;/b&gt; позволяет запустить производительный каталог с минимальными усилиями.&lt;/li&gt;
&lt;li&gt;💸 &lt;b&gt;Когда время дороже денег&lt;/b&gt;: &lt;b&gt;Tabular&lt;/b&gt; снимает всю головную боль по администрированию.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Эпоха привязки к одному инструменту прошла, поэтому ждем Cedrus Catalog с батарейками и свистелками 🤪REST-каталоги дают свободу, а Trino, и не только — возможность этой свободой воспользоваться. Выбирайте оружие по своей задаче и стройте по-настоящему открытый и мощный Data Lakehouse 🏡&lt;/p&gt;
&lt;p&gt;ps: Конечно печатала ИИ, может не очень объективно давать оценки, но список хороший. Я ей помогал, как мог.&lt;/p&gt;
&lt;p&gt;Ссылки:&lt;br /&gt;
&lt;a href="https://github.com/projectnessie/nessie"&gt;https://github.com/projectnessie/nessie&lt;/a&gt; – &lt;a href="https://projectnessie.org"&gt;https://projectnessie.org&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/apache/gravitino"&gt;https://github.com/apache/gravitino&lt;/a&gt; – &lt;a href="https://gravitino.apache.org"&gt;https://gravitino.apache.org&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/apache/amoro"&gt;https://github.com/apache/amoro&lt;/a&gt; – &lt;a href="https://amoro.apache.org"&gt;https://amoro.apache.org&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/lakekeeper/lakekeeper"&gt;https://github.com/lakekeeper/lakekeeper&lt;/a&gt; – &lt;a href="https://docs.lakekeeper.io"&gt;https://docs.lakekeeper.io&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/apache/polaris"&gt;https://github.com/apache/polaris&lt;/a&gt; – &lt;a href="https://polaris.apache.org"&gt;https://polaris.apache.org&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/unitycatalog/unitycatalog"&gt;https://github.com/unitycatalog/unitycatalog&lt;/a&gt; – &lt;a href="https://unitycatalog.io"&gt;https://unitycatalog.io&lt;/a&gt;&lt;/p&gt;
</description>
</item>


</channel>
</rss>