TGViewer
дата инженеретта дата инженеретта @data_engineerette · 3.44K subscribers
Post #637 1.07K
Ломаем Iceberg-таблицу🫠

Представьте, у вас есть айсберг таблица из 3 полей, которая управляется HMS. Вы удаляете из середины 2е поле, но вдруг появляется ошибка:

The following columns have types incompatible with the existing columns in their respective positions


Несовместимые типы, но почему? Мы же знаем, что айсберг следит за своими полями по id, и если мы удалили поле с id=2, то поле с id=3 должно таким и остаться. Или нет?

Оказывается, у айсберга и hms разные механизмы эволюции схемы. С айсбергом мы правы, он следит за id самой колонки. Но вот hms проверяет схему на основе индекса🙂

Когда мы удалили столбец из середины, в hms все типы сдвинулись. И если поле2 было int, а поле3 - string, то после удаления hms думает, что мы кастуем string -> int, и падает

Сама оф дока айсберга выделяет этот момент как «Hive Catalog Limitation» и рекомендует отключить свойство:

hive.metastore.disallow.incompatible.col.type.changes=false

Теперь эволюция схемы на совести айсберга, работаем дальше🙌

@data_engineerette
  • ❤ 10
  • 👍 2
More from @data_engineerette
  1. Oct 12, 2026Ну, как вы там? Нашли новые вопросы для собесов на DevOps/SRE: Есть ли у вас опыт тушения…
  2. Oct 12, 2026Clickhouse для программистов, аналитиков и инженеров данных Перестаньте ждать, пока считае…
  3. Oct 10, 2026Сходила на ТехноДень Это бесплатная конфа от Selectel, прошла в кластере «Ломоносов». Наро…
  4. Oct 2, 2026Lance Недавно ковырялась в инструменте для обслуживания таблиц Apache Amoro и наткнулась н…
  5. Sep 25, 2026Как прошла SmartData 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 →