Перейти к содержанию

Iceberg vs Delta Lake vs Hudi

Сравнения · Раздел 02

Тип материала: инженерное сравнение; выводы зависят от требований и условий эксплуатации. Схемы и примеры иллюстративны.

Область: Iceberg1.9.2 / Delta3.3.x; Hudi1.0.2. Численные latency/TPS/cost требуют измерений на сопоставимом workload с одинаковыми гарантиями.

Критерии выбора

Критерий Iceberg1.9.2 / Delta3.3.x Hudi1.0.2
Workload Iceberg: multi-engine snapshots/evolution; Delta: Spark-centric batch/stream MERGE Hudi: record-key upsert и incremental/table-service design
Consistency Atomic table snapshots при корректном catalog/commit protocol; engine isolation отдельно Timeline/concurrency/merger; snapshot и read-optimized различаются
Latency File pruning/statistics/delete processing; engine implementation решает Index lookup + base/log merge; query type влияет на freshness
Throughput Small files, metadata commits и update rewrite/delete vectors File groups, index, COW rewrite либо MOR compaction
Cost Object bytes/requests, catalog, compute и maintenance Те же статьи плюс table services/index; дешевизна не универсальна
Scalability Compute distributed engines; format не server/sharding service Writer parallelism и file layout; hot partitions/task skew
Operational complexity Catalog/protocol/features, expire/VACUUM safety, reader compatibility Timeline, locks, cleaner, compaction/clustering и query-mode compatibility
flowchart LR
  Requirements --> Engines[Required engines and versions]
  Engines --> Protocol[Supported table protocol and features]
  Protocol --> Writers[Commit and concurrency design]
  Writers --> Maintenance[Cleanup compaction and restore]

Конкретные сценарии

Несколько аналитических engines и partition evolution → исследовать Iceberg support matrix. Existing Spark streaming/MERGE pipeline → Delta при совместимых storage protocol и readers. Frequent keyed corrections + incremental consumers → Hudi с явной COW/MOR и record merger policy.

Ограничения и отказы

Нет единого winner: сначала выписать required deletes/CDC/incremental semantics, engines, object backend и concurrent writers. Iceberg v2 delete support различается по reader; Delta features меняют protocol; Hudi MOR read-optimized может быть stale. Ни один формат не заменяет wallet OLTP.

Как принять и проверить решение

Зафиксировать query mix, data distribution/skew, payload, working set, retention, concurrency, authoritative boundary и допустимую stale-read policy. Проверять steady state и maintenance, lost ACK, node loss, replay и restore. Сопоставлять total cost при одинаковых durability/replication requirements. Не объявлять универсального победителя по одному среднему времени запроса.

Типичные ошибки проектирования

Сравнивать default eventual/cache path с durable transactional commit; игнорировать operations/recovery; переносить benchmark другого dataset; выбирать продукт до определения access pattern.

Вопросы на собеседовании

Можно ли использовать варианты вместе? Да, если роли, data contracts и способы reconciliation определены. Дополнительная projection добавляет lag, replay и ownership, поэтому её польза должна покрывать эту сложность.

Практические упражнения

Для одного сценария выше составьте ADR: invariant, выбранный вариант, отклонённая альтернатива, failure outcomes и план измерений. Не задавайте придуманные TPS/SLA; перечислите входные данные, необходимые для sizing.

Дополнительные источники