Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Перегляд Історії Таблиці (Основи Подорожей у Часі) | Основні Концепції Databricks
Databricks: Основи для Початківців

Перегляд Історії Таблиці (Основи Подорожей у Часі)

Свайпніть щоб показати меню

Note
Визначення

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 хвилин тому. Який синтаксис слід використати?

question mark

Яка SQL-команда дозволяє побачити список усіх попередніх версій і операцій, виконаних над таблицею?

Виберіть правильну відповідь

question mark

Ви випадково оновили таблицю diamonds і хочете побачити дані за 10 хвилин тому. Який синтаксис слід використати?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 5. Розділ 3
some-alt