Выбор Table Format: Delta Lake vs Iceberg vs Hudi vs Paimon
Все четыре table format’а обеспечивают ACID-транзакции, time travel и schema evolution поверх Parquet-файлов. На уровне feature matrix — они почти одинаковы. Различия — в архитектурных решениях, которые делают каждый формат оптимальным для определённого контекста.
В модулях 11 (Delta Lake), 12 (Iceberg), 13 (Hudi) и 14 (Paimon) мы детально разобрали архитектуру каждого. Здесь — синтез: когда что выбирать и почему.
Этот урок — не пересказ фичей (это есть в модулях 11–14). Мы сравниваем по критериям выбора: экосистемная зрелость, engine-совместимость, стриминг-поддержка, стоимость обслуживания, vendor lock-in, community momentum.
Критерий 1: Engine Compatibility
Самый жёсткий фильтр — какие query engines поддерживают формат в production, а не на уровне “experimental connector”.
Практический вывод по engine compatibility
Критерий 2: Streaming Support
Для стриминг-workload’ов (CDC, event streams) — не все table format’ы одинаково эффективны:
Для CDC с высокочастотным upsert (> 10K upserts/s): Hudi MOR (record-level index) или Paimon (LSM-tree). Delta Lake MERGE и Iceberg row-level deletes работают, но дороже: Delta сканирует файлы для поиска строк, Iceberg создаёт delete files. Подробнее о стоимости MERGE: Delta Lake, урок 02, Iceberg, урок 05.
Критерий 3: Maintenance Overhead
Table format — не “поставил и забыл”. Каждый требует фоновых операций обслуживания:
Критерий 4: Vendor Lock-in
Критерий 5: Community и Momentum
Размер community — прокси для скорости развития, качества документации, доступности помощи и долгосрочной жизнеспособности.
Decision Tree: выбор table format
Какой основной query engine?
Первый вопрос: какой ваш основной query engine? Это самый жёсткий фильтр — engine compatibility определяет, какие форматы вообще рассматривать.Delta Lake (+ UniForm для multi-engine)
Delta Lake — очевидный выбор. UniForm обеспечивает совместимость с Iceberg readers для multi-engine сценариев.Multi-engine нужен?
Нужна ли интеграция с другими engines (Spark, Trino) для аналитики? Если Flink-only — Paimon. Если multi-engine — Iceberg или Hudi.OLAP или CDC?
Доминирующий workload: аналитика (scan-heavy) или CDC (upsert-heavy)?Конвергенция форматов
Форматы конвергируют: каждый новый релиз добавляет фичи, которые были уникальными для конкурентов.
Конвергенция означает: если вы выбираете формат сегодня для нового проекта, через 3 года миграция на другой будет проще, чем кажется сейчас. Delta UniForm уже читается Iceberg readers. Iceberg REST Catalog — открытый стандарт. Не ставьте выбор формата как необратимое решение.
Итоги
В следующем уроке — стратегии миграции между форматами: CSV→Parquet, Hive→Iceberg/Delta, Parquet→Lance.
Lakehouse architecture — system design view REST catalogs — критическая часть выбора