TGViewer
Архитектор Данных Архитектор Данных @analyticsfromzero · 1.89K subscribers
Post #370 1.08K
Tips & Tricks - Apache Iceberg

Хозяйке на заметку или как я только сейчас понял, что произошло на вебинаре.

Сетап

Есть связка S3 + Iceberg JDBC Catalog + Trino. Облачная связка на платформенных сервисах. Рядом с этим есть Jupyter Notebook, который общаемся с данными в S3 через PyIceberg. JDBC каталог шерится между Trino и PyIceberg.


Кэтч

Я работаю с Трино и создаю несколько таблиц. Потом хочу подключиться к этим же таблицам в PyIceberg, что-то поменять (докинуть колонку) и сразу же увидеть изменения в Трино. Красивая история про мульти-агентный Zero-Copy ETL.

Подключаюсь питоном к каталогу и не вижу в нем таблиц. Хм, каталог-то (JDBC host, login, pass, dbname) точно правильный и ошибок никаких при подключении нет. Что за ерунда? Иду в S3, там объекты точно есть.

Окей, думаю, давай-ка попробуем создать новую таблицу и просто залить туда данные. Создаю питоном схему (Iceberg namespace), создаю табличку, лью туда рандомный датасет. Все замечательно работает. Иду смотреть в S3 - чудо, рядом с Трино схемами по тому же пути в бакете появились новые объекты, созданные из питона!

Иду смотреть в Трино - питонячьих объектов нет. Да что за ерунда тут происходит?


Разгадка

Что происходит, я понял, глядя на таблицы в JDBC Postgres - см. картинку в первом комменте.

В одной инсталляции JDBC каталога - в одной постгресовой БД, схеме, в одной и той же таблице лежат объекты с разными catalog_name! То есть у JDBC каталога фактически имеется слой логического разделения объектов.

Делая в питоне

load_catalog(name='ice')


можно увидеть только часть объектов которые есть на S3.

А сделав

load_catalog(name='i_misprint_my_catalog_name')


вы приземлитесь в новый пустой каталог, и код вам ошибку не кинет! Я бы предпочел чтобы в этом месте мне кинули exception catalog not found, но сделано вот так.

Будьте внимательней и учитывайте при планировании работ

И подписывайтесь на канал в ВК, там в начале следующего года точно будут новые технические вебинары!
VK Видео Больше, чем просто данные в S3: Iceberg как основа архитектуры Next-Gen КХД Регистрируйтесь на вебинар, на котором мы разберем, как Apache Iceberg превращает Data Lake в полноценный Data Lakehouse — с ACID-транзакциями, эволюцией схем, time-travel, snapshot isolation (через Spark/Trino). Вас ждет теоретическая часть, воркшоп и ответы…
  • 👌 9
  • ⚡ 4
  • 😨 4
  • ❤ 2
  • 👍 2
More from @analyticsfromzero
  1. Sep 28, 2026На инфографике вы, дорогие коллеги, можете увидеть наше светлое будущее. График составлен…
  2. Sep 28, 2026Пользовательские соглашения наконец начали читать. Раньше пользовательские соглашения никт…
  3. Sep 27, 2026Когда я даю кандидатам тестовое Даю когда человек без супер скилов и резюме. Тогда ТЗ это…
  4. Sep 26, 2026Отказ по вакансии за использование ИИ в тестовом https://t.me/bdsmmchannel/1365 Не подрыва…
  5. Sep 26, 2026SQLite написал один человек. Написал бы он в одиночку Postgres если бы использовал LLM?
  6. Sep 24, 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 →