Замена show partitions Часто бывает, что нужно найти последнюю партицию и начать грузить данные со следующей. Пройдемся от банальных вариантов до особенно интересных 1️⃣ `max(date)` - самое ресурсозатратное, потому что нужно пробежаться по всей таблице 2️⃣ `show partitions` - отличный способ, пробегаемся только по метаданным Другие 2 варианта подойдут для айсберга: 3️⃣ `raw.my_table.partitions` - в айсберге есть много системных мета-таблиц, таблица с партициями выглядит так: ``` -RECORD 0------------------------------------------- partition | {2025-03-29 00:00:00} spec_id | 0 record_count | 7251 file_count | 1 total_data_file_size_in_bytes | 91062 position_delete_record_count | 0 position_delete_file_count | 0 equality_delete_record_count | 0 equality_delete_file_count | 0 last_updated_at | 2025-11-20 12:25:48.678 last_updated_snapshot_id | 5910543042911865752 only showing top 1 row ``` Это как аналог show partitions: идем в табличку и отбираем max(partition) 4️⃣ `TBLPROPERTIES` - тут обсудим подробнее Пусть таблица партицируется по другим полям или не партицируется вообще. Тогда в момент загрузки можно проставить любое свойство: ``` ALTER TABLE raw.my_table SET TBLPROPERTIES ('raw.last-date' = '2025-12-05');``` Их может быть несколько, посмотрим на текущий список: ``` SHOW TBLPROPERTIES raw.my_table ``` Сюда добавилось наше кастомное свойство: ``` +-------------------------------+-----------------+ |key |value | +-------------------------------+-----------------+ |current-snapshot-id |63675018113182479| |format |iceberg/PARQUET | |format-version |2 | |raw.last-date |2025-12-05 | |write.format.default |PARQUET | |write.parquet.compression-codec|zstd | +-------------------------------+-----------------+``` Убрать свойство можно так: ``` ALTER TABLE raw.my_table UNSET TBLPROPERTIES('raw.last-date');``` Каждое изменение свойства будет создавать новый файл с метой - а это доп расходы на хранение и куча разных версий одной и той же таблицы. Поэтому сначала проанализируйте, какой метод будет подходить именно для ваших данных и ресурсов @data_engineerette
Замена show partitions Часто бывает, что нужно найти последнюю партицию и…
Из этого канала
- #536Поделилась тут интересной историей🤗
Поделилась тут интересной историей🤗
- #537HARD SKILLS🫥 Сегодня разбираем реальный кейс о том, как один файл и смена…
HARD SKILLS🫥 Сегодня разбираем реальный кейс о том, как один файл и смена инфраструктуры положили Nexus и остановили релизы👩💻 Делитесь этим постом с друзьями…
- #543IPv4 vs IPv6 👀 Я раньше очень часто смотрела на таблицу с событиями…
IPv4 vs IPv6 👀 Я раньше очень часто смотрела на таблицу с событиями пользователей из яндекс метрики.
- #532"Двойные эмоциональные качели Эта история случилась, которая я устраивалась в…
"Двойные эмоциональные качели Эта история случилась, которая я устраивалась в Сбер.
- #531Удаляем дубли в ClickHouse без ReplacingMergeTree У меня была задачка настроить…
Удаляем дубли в ClickHouse без ReplacingMergeTree У меня была задачка настроить создание табличек через фреймворк.