TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Дата Инженер Лаб | Артём Подвальный

8 May, 16:03

Открыть в Telegram Поделиться Пожаловаться

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? Как вам?🙂

1.5k 0 17 7 14
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot