🗂️ Война каталогов Iceberg: Glue vs Polaris vs Unity vs Nessie - кто держит указатель
#dj_architecture
В посте про Iceberg я закончил вопросом «на каком каталоге сидите?». Ответов от вас не последовало ибо вы походу и не знает что это 🙂
🦖 Быстрое напоминание
Iceberg - это метаданные поверх обычных Parquet. Любая запись = новый metadata.json + атомарная подмена указателя на текущий. Так вот тот, кто хранит этот указатель и атомарно его переключает, и есть каталог. Без него нет ни ACID, ни single source of truth: два движка просто затрут друг друга.
🔑 Почему всё крутится вокруг REST-каталога
Ключевая вещь последних лет - Iceberg REST Catalog spec. Это один HTTP-контракт: движок пишет REST-клиент один раз, каталог — REST-сервер один раз, и дальше все со всеми.
Раньше под каждую пару движок ↔ каталог пилили отдельную интеграцию. Теперь нет. Вот это и есть настоящая смерть vendor lock-in - но уже на уровне метаданных, а не файлов.
⚔️ Игроки (честно, с их дырами)
🟢 Apache Polaris - дорос до top-level проекта Apache, де-факто community-стандарт REST-каталога. Open source + managed-вариант от Snowflake.
🟡 AWS Glue - родной для экосистемы AWS, но REST-полнота хромает (нет UpdateTable, пробелы в v3).
🟢 AWS S3 Tables - Iceberg как first-class ресурс прямо в S3: v3, автокомпакция, высокий tx-rate. По сути managed-каталог из коробки для тех, кто на AWS.
🟡 Unity Catalog (OSS) — Databricks открыли исходники, но он Delta-first: поддержка Iceberg догоняет, gap до managed-версии реальный. Логичен, если живёшь в Databricks.
🔵 Nessie - git-like ветки и теги для метаданных: эксперимент на ветке, мерж как в git. Data CI/CD. Минус - нужен внешний слой авторизации.
🔵 Lakekeeper - лёгкий бинарь на Rust, сильная авторизация (OpenFGA/OPA), k8s-native. Молодой, но интересный, если своё облако и жёсткий RBAC.
⚫ Hive Metastore - легаси на Thrift. Не выбор для нового, а то, с чего мигрируют в день, когда переросли.
Честно я сам половину слов не знаю накопал с помощью ИИ в интернетах для обощревания просто.
🛠 Что это значит для DE
Каталог - это не служебная деталь, а точка governance: кто видит таблицу, кто пишет, как разрулить конкурентную запись.
Выбор по-простому:
весь в AWS без Databricks → S3 Tables / Glue;
хочешь вендор-нейтральный стандарт → Polaris;
нужен git-workflow на данных → Nessie;
своё k8s + жёсткий доступ → Lakekeeper;
в Databricks → Unity.
Правило простое: данные держи в открытом формате (Iceberg на S3), а каталог выбирай так, чтобы в любой момент переключить движок и не переезжать. Lock-in теперь прячется именно в каталоге, а не в формате.
🔮 Мостик к будущему что мне действительно нравится.
Формат-война кончилась, и весь фронт сместился на каталог. Именно он теперь решает не только кто читает таблицу, но и governance для волны ИИ-агентов, которые сами ходят в данные. Каталог = кто и что имеет право сделать с данными: хоть человек, хоть агент.
На каком каталоге сидите в проде — и почему ушли (или наоборот не уходите) с Glue/Hive? 👇
#data_engineering #iceberg #lakehouse #catalog #DataJungle
Post #119
189
- 🔥 1