TGViewer
Дата Инженер Лаб | Артём Подвальный Дата Инженер Лаб | Артём Подвальный @dataengineerlab · 1.87K subscribers
Post #93 1.58K
Apache Iceberg: почему вокруг него столько шума и зачем он вообще нужен 🧊

Apache Iceberg — это открытый формат таблиц для огромных аналитических наборов данных в data lake.
И если раньше архитектуры на базе Hadoop и Hive нередко превращались в болото данных, то Iceberg придумали как способ сделать такие хранилища более надежными, быстрыми и удобными для аналитики.

Что такое Apache  Iceberg 🤨

Важно сразу понять одну вещь: Iceberg — это не хранилище вроде S3 или HDFS и не движок обработки запросов вроде Spark или Trino.

Это спецификация и набор библиотек, которые отвечают за то, как организованы файлы данных и метаданные. Благодаря этому поверх объектного хранилища можно получить поведение, похожее на работу обычной аналитической базы.

У Iceberg есть несколько сильных сторон 🤔:

ACID-транзакции — читатели не видят частичные или некорректные изменения, а каждое обновление проходит как атомарный коммит.

Time Travel — можно запросить состояние таблицы на конкретный момент времени или по номеру снапшота.

Эволюция схемы без боли — столбцы можно добавлять, переименовывать и удалять без переписывания всей таблицы.

Скрытое партиционирование — Iceberg сам помогает с раскладкой данных по папкам, и не требует вручную постоянно тащить это в запросы.

Главная идея Iceberg — он отслеживает не каталоги, а отдельные файлы данных.
Именно поэтому он так хорошо работает с большими таблицами и сложными сценариями обновлений.


Архитектура Iceberg состоит из трёх слоёв 💠:

1. Catalog layer
Это внешний сервис, который хранит ссылку на текущий файл метаданных таблицы. В этой роли могут выступать Hive Metastore, AWS Glue или REST-каталог подробнее про роль каталога.

2. Metadata layer

Здесь хранится вся логика таблицы:

🔷metadata file — схема, информация о партиционировании и список снапшотов;

🔷manifest list — набор файлов-манифестов для конкретного снапшота;

🔷manifest file — список файлов данных и статистика по ним, включая min/max значения, чтобы движки могли пропускать лишнее при чтении.

3. Data layer

Это сами файлы данных, чаще всего Parquet, которые лежат в объектном хранилище или в HDFS.

Когда Iceberg действительно нужен 🧑‍💻

🔷data lake уже тормозит из-за миллионов файлов;

🔷важна изоляция чтения и записи;

🔷схема таблиц часто меняется;

🔷не хочется каждый раз переписывать терабайты данных из-за очередного изменения структуры.

Проще говоря, Apache Iceberg превращает файловое хранилище в полноценную аналитическую систему, но без потери плюсов object storage — дешевизны и масштабируемости

Вы уже пробовали Iceberg? Как вам?🙂
  • ❤ 7
  • 🔥 3
  • 👏 3
  • 😁 1
More from @dataengineerlab
  1. Sep 20, 2026Как вкатиться в Data Engineering с нуля? 🗺 Самая частая ошибка новичков- пытаться сразу в…
  2. Sep 17, 2026CDC и Debezium: как передавать изменения, а не выгружать всю таблицу заново? Допустим, зак…
  3. Sep 13, 2026Тебе тоже кажется, что забываешь быстрее, чем учишь? Недавно менти поделился проблемой: по…
  4. Sep 10, 2026Мини гайд по ИИ-агентам Агент снова забыл условия задачи, полез менять лишнее или написал…
  5. Sep 3, 2026До конца года 4 месяца. Что можно успеть? 📖 Лето закончили с сильными результатами: 13 ме…
  6. Aug 30, 2026Что такое векторные базы данных? Представим, что пользователь пишет📝: «Не проходит оплата…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →