Перегляд Історії Таблиці (Основи Подорожей у Часі)
Свайпніть щоб показати меню
Time Travel — це функція Delta Lake, яка дозволяє виконувати запити до попередніх версій таблиці. Використовуючи журнал транзакцій (Transaction Log), Databricks може відновити стан ваших даних на будь-який момент їхньої зафіксованої історії.
Однією з найпотужніших "страховок" у Databricks є можливість точно бачити, хто змінив таблицю, коли це було зроблено та як виглядали дані до цієї зміни.
Для нашої таблиці diamonds у workspace.workshop.diamonds кожне оновлення або видалення відстежується автоматично.
1. Команда DESCRIBE HISTORY
Щоб побачити повну хронологію ваших даних, використовуйте команду DESCRIBE HISTORY — вона надає детальний журнал усіх версій таблиці.
DESCRIBE HISTORY workspace.workshop.diamonds
Після виконання цієї команди ви побачите таблицю з такими основними стовпцями:
- version: ціле число, що починається з 0 (перше створення таблиці);
- timestamp: точна дата й час, коли відбулася зміна;
- userName: користувач, який виконав дію;
- operation: що сталося (наприклад,
WRITE,UPDATE,DELETEабоMERGE); - operationParameters: технічні деталі зміни.
2. Запит до конкретної версії
Якщо нещодавнє оновлення пошкодило стовпець "Price", можна виконати запит до певної старої версії, щоб переглянути початкові значення, використовуючи синтаксис VERSION AS OF.
-- Look at the diamonds table exactly as it was in Version 0
SELECT * FROM workspace.workshop.diamonds VERSION AS OF 0
3. Запит за часовою міткою
Якщо номер версії невідомий, але відомо, що дані були коректними у певний момент часу, можна "повернутися" назад за допомогою TIMESTAMP AS OF.
-- Look at the data as it existed at a specific time
SELECT * FROM workspace.workshop.diamonds TIMESTAMP AS OF '2026-02-11 09:00:00'
4. Чому це важливо
У традиційних базах даних, якщо випадково виконати команду DELETE без WHERE, доведеться звертатися до адміністратора бази даних для відновлення резервної копії — процес може зайняти години.
Завдяки Delta Lake Time Travel можна самостійно виправити помилку за кілька секунд, вибравши дані з попередньої версії та перезаписавши поточну пошкоджену таблицю коректними історичними даними.
5. Керування історією
За замовчуванням Delta Lake зберігає 30 днів історії. Хоча це дуже корисно, зберігання історії вимагає зберігання старих файлів даних, але базові файли даних видалених/перезаписаних версій зберігаються лише 7 днів (delta.deletedFileRetentionDuration), перш ніж команда VACUUM може їх очистити.
У професійному середовищі інженери даних використовують команду VACUUM для очищення дуже старих файлів і зменшення витрат на зберігання. Для цього курсу ваша історія безпечна та готова до дослідження.
VACUUM — це команда очищення, яка остаточно видаляє старі файли даних, які Delta Lake більше не потребує — ті, що залишилися після оновлень, видалень або перезапису.
VACUUM workspace.workshop.diamonds
За замовчуванням Delta зберігає 30 днів історії файлів для Time Travel. VACUUM видаляє файли, старші за цей поріг, щоб зекономити місце для зберігання.
Також можна встановити власне вікно збереження:
VACUUM workspace.workshop.diamonds RETAIN 7 HOURS
1. Яка SQL-команда дозволяє побачити список усіх попередніх версій і операцій, виконаних над таблицею?
2. Ви випадково оновили таблицю diamonds і хочете побачити дані за 10 хвилин тому. Який синтаксис слід використати?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат