Iceberg time travel на собеседовании Data Engineer

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.

Snapshots

Каждое write — новый snapshot. Immutable.

SELECT * FROM iceberg.events.snapshots;
-- shows snapshot_id, parent, operation, ts.

Time travel queries

-- by snapshot ID
SELECT * FROM events VERSION AS OF 1234567;

-- by timestamp
SELECT * FROM events FOR TIMESTAMP AS OF '2026-04-01 12:00:00';

Read data «as it was».

Branches и tags

Iceberg 1.0+. Like Git branches для data.

Branch. Mutable. Dev / staging.

ALTER TABLE events CREATE BRANCH dev_branch;
-- write to branch
INSERT INTO events.branch_dev_branch VALUES (...);

Main untouched. Test changes safely.

Tag. Immutable named snapshot.

ALTER TABLE events CREATE TAG audit_2026_05_07
  AS OF VERSION 1234567
  RETAIN 365 DAYS;

Useful для compliance, regulatory snapshots.

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Применения

Audit / compliance. «Show records на 2026-04-01 для regulator».

ML training reproducibility. Train on specific dataset version.

Debugging. Compare current vs past — what changed?

Rollback. Revert табличку до specific snapshot:

CALL iceberg.system.rollback_to_snapshot('events', 1234567);

Связанные темы

FAQ

Это официальная информация?

Нет. Статья основана на документации Apache Iceberg.


Тренируйте Data Engineering — откройте тренажёр с 1500+ вопросами для собесов.