Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Основи Оновлення та Видалення Даних | Основні Концепції Databricks
Databricks: Основи для Початківців

Основи Оновлення та Видалення Даних

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

Note
Визначення

У стандартних Data Lakes оновлення або видалення окремого рядка майже неможливе без переписування всього набору даних. Оскільки Delta Lake використовує журнал транзакцій, він підтримує стандартні SQL-команди UPDATE та DELETE, що дозволяє виконувати точкові зміни у ваших таблицях.

У попередньому розділі розглядалося читання та підсумовування даних. Однак дані рідко залишаються статичними — ви можете виявити, що партія записів про діаманти має некоректні ціни або певний тип "cut" потрібно видалити з ваших звітів.

Оскільки таблиця diamonds є Delta-таблицею, її можна змінювати так само, як і традиційну базу даних.

1. Оновлення записів

Команда UPDATE дозволяє змінювати значення у певних рядках, які відповідають умові. Наприклад, якщо всі діаманти з "Fair" cut отримали підвищення ціни на 10%:

UPDATE workspace.workshop.diamonds
SET price = price * 1.1
WHERE cut = 'Fair'
  • SET — Визначає нове значення для стовпця
  • WHERE — Критично важливо. Без оператора WHERE буде оновлено ціну для кожного діаманта у всій таблиці

2. Видалення записів

Команда DELETE остаточно видаляє рядки з таблиці. Використовується, коли дані більше не актуальні або були завантажені помилково.

DELETE FROM workspace.workshop.diamonds
WHERE carat > 5.0

Ця команда знаходить усі діаманти вагою понад 5 каратів і видаляє їх з актуальної версії таблиці.

3. Перевірка після змін

Після виконання оновлення або видалення завжди слід перевіряти зміни за допомогою простого запиту SELECT count, щоб переконатися, що операція виконана коректно.

-- Verify how many 'Fair' diamonds are left (count should be the same, but prices changed)
SELECT count(*) FROM workspace.workshop.diamonds WHERE cut = 'Fair'

4. Безпека оновлень Delta

Під час виконання DELETE або UPDATE Delta Lake не видаляє дані зі старих файлів безпосередньо. Замість цього використовується трьохетапний процес:

  1. Старі файли позначаються як "недійсні"
  2. Записуються нові файли з оновленими даними
  3. Зміни фіксуються у Transaction Log

Саме тому Time Travel продовжує працювати навіть після видалення — старі дані залишаються у попередніх версіях файлів таблиці, доки історія не буде очищена вручну.

5. Найкраща практика: Тестування за допомогою SELECT

Перед виконанням команди DELETE або UPDATE завжди перевіряйте свій фільтр спочатку за допомогою SELECT.

  • Замість: DELETE FROM diamonds WHERE color = 'J'
  • Спочатку спробуйте: SELECT * FROM diamonds WHERE color = 'J'

Якщо результати SELECT показують саме ті рядки, які ви плануєте видалити, можна безпечно виконувати команду DELETE.

1. Що відбувається, якщо виконати команду UPDATE без WHERE?

2. Чи призводить виконання команди DELETE для Delta-таблиці до миттєвого видалення даних із хмарного сховища назавжди?

question mark

Що відбувається, якщо виконати команду UPDATE без WHERE?

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

question mark

Чи призводить виконання команди DELETE для Delta-таблиці до миттєвого видалення даних із хмарного сховища назавжди?

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

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

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