Ломаем 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
Ломаем Iceberg-таблицу🫠 Представьте, у вас есть айсберг таблица из 3 полей,…
Из этого канала
- #636А если я аналитик, но в DE пока вообще ничего не понимаю? 😳 После прошлого…
А если я аналитик, но в DE пока вообще ничего не понимаю? 😳 После прошлого поста про переход из аналитики в дата-инженерию я поймала себя на мысли, что главный…
- #635Lance Недавно ковырялась в инструменте для обслуживания таблиц Apache Amoro и…
Lance Недавно ковырялась в инструменте для обслуживания таблиц Apache Amoro и наткнулась на новый для меня термин - формат данных Lance Lance - это колоночный…
- #6345 октября начнется 19-й поток программы Data Engineer от Newprolab Программа…
5 октября начнется 19-й поток программы Data Engineer от Newprolab Программа для junior- и middle-дата-инженеров, аналитиков, backend-разработчиков, техлидов и…