TGViewer
Я – Дата Инженер | Евгений Виндюков Я – Дата Инженер | Евгений Виндюков @halltape_data · 5.91K subscribers
Post #823 4.26K
Iceberg для БАБУШЕК!

Очень коротко и прямо, чтобы даже ваш сосед-алкаш понял.

Айсберг это надстройка над S3 хранилищем. Само S3 считайте это как Яндекс Диск, куда мы складываем файлики и папочки. Можно зайти и посмотреть, что у нас там хранится.

Например когда мы записываем данные в S3, то это просто создается папочка и туда складываются CSV, Parquet и так далее.

А когда мы настроим над S3 еще и Iceberg, то у нас создается папки data и metadata. В папку data складываются сами данные. В папку metadata складываются файлики с метаинформацией.

Что за метаинформация?
Там есть три вида файликов: один .json и два файлика .avro. Они просто описывают, из чего состоит наша таблица (схема, снепшоты, изменения и так далее).

По факту, когда мы записываем все новые данные в таблицу, то в папке metadata постоянно создаются новые файлики меты. Т.е. буквально "чихнули в таблицу — получили три файлика".

Зачем так много файликов?
Фишка айсберга в том, что он записывает себе в метаданные вообще все изменения. Записали данные, удалили, изменили — все это он знает. Поэтому мы можем в любой момент откатиться на предыдущую версию таблицы или вообще на любую другую, которая когда-либо была. Это буквально путешествие во времени. Ну например вы что-то не то удалили из таблицы.. Можно откатиться.

А что еще?
Как вы знаете, если просто записывать в голый S3 паркеты, то операции DELETE или UPDATE там не работают. Либо ты перезаписываешь целый файл, либо придумывай что-то другое. А в айсберге можно писать, как в SQL методы UPDATE и DELETE.
Ведь, как я сказал, он запоминает любой чих и вздох и просто делает у себя пометочки, что такие-то строчки были удалены и изменены.

Какие есть проблемы?
Ну раз он такой крутой и класный, то есть и нюансы. Например если мы часто делаем вставки, обновления и удаления из таблицы, то копится много метаинформации + при удалении у нас добавляются, так называемые, "delete файлики". Они там используются, чтобы при чтении данных вычеркивать те строки, которые мы когда-то удалили. И В ЧЕМ ПРОБЛЕМА? (на самом деле там есть два вида хранения CopyOnWrite и MergeOnRead — это для душнил)

Короче проблема в том, что копится реально куча мелких файликов. Это все потом влияет на скорость чтения. Поэтому в айсберге придумали всякие фишки, которые позволяют удалять и компактить файлы с данными и метой. Главное про это не забывать!

Что еще?
В айсберге можно, как в гитхабе создавать ветки. Т.е. буквально ветка main это ваша главная версия таблицы. А можно создать ветку рядом и работать с таблицей, как угодно ее менять и это никак не будет аффектить на главную ветку. Ну и дальше по аналогии с гитом.

Конечно есть еще больше функционала, но он уже слишком для этого поста.
———
Мы в Bootcamp уже настроили Iceberg в S3 и даже есть ГОТОВЫЙ Jupyter Notebook, чтобы протестировать!
Записаться и попасть уже в чат можно тут - @bootcampych_bot
  • 👍 25
  • 🔥 16
  • 😁 6
  • ❤ 3
  • 🤔 1
More from @halltape_data
  1. Oct 1, 202610 вопросов по SQL для дата инженера https://www.threads.com/share/_vojZtIpk/ Этот пост на…
  2. Sep 27, 2026Собес на 320к на руки на Дата Инженера! ▶️ https://youtu.be/lZKqJ978e1I Выложил собес. Все…
  3. Sep 26, 2026Накрутчики! Написал в Threads пост о том, как расти в ЗП в ДЕ. В комменты пришел человек,…
  4. Sep 25, 2026Это последний поток BootCamp. ВСЁ. После Нового года мы будем поднимать цену. Поэтому нояб…
  5. Sep 23, 2026Если тебе до 25 и ты уже в IT В промежутке между 17 и 23 годами я учился на инженера в уни…
  6. Sep 20, 2026Собес на Дата Инженера + Лайвкодинг! (Middle) ▶️ https://youtu.be/fypWIMVBKxg На самом дел…
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 →