Mises à Jour et Suppressions de Données de Base
Glissez pour afficher le menu
Dans les Data Lakes standards, la mise à jour ou la suppression d'une seule ligne est presque impossible sans réécrire l'ensemble du jeu de données. Comme Delta Lake utilise un journal de transactions, il prend en charge les commandes SQL standard UPDATE et DELETE, permettant des modifications précises de vos tables.
Dans la section précédente, l'accent était mis sur la lecture et la synthèse des données. Cependant, les données sont rarement statiques — il se peut que vous découvriez qu'un lot d'enregistrements de diamants comporte des prix incorrects, ou qu'un type de "cut" spécifique doit être supprimé de vos rapports.
Comme la table diamonds est une table Delta, vous pouvez la modifier comme une base de données traditionnelle.
1. Mise à jour des enregistrements
La commande UPDATE permet de modifier les valeurs dans des lignes spécifiques répondant à une condition. Par exemple, si tous les diamants de coupe "Fair" bénéficient d'une augmentation de prix de 10 % :
UPDATE workspace.workshop.diamonds
SET price = price * 1.1
WHERE cut = 'Fair'
- SET — Définit la nouvelle valeur pour la colonne
- WHERE — Critique. Sans clause
WHERE, vous mettriez à jour le prix de chaque diamant dans toute la table
2. Suppression d'enregistrements
La commande DELETE supprime définitivement les lignes de la table. À utiliser lorsque les données ne sont plus pertinentes ou ont été importées par erreur.
DELETE FROM workspace.workshop.diamonds
WHERE carat > 5.0
Cette commande identifie tous les diamants de plus de 5 carats et les retire de la version active de la table.
3. Vérification après modification
Après avoir exécuté une mise à jour ou une suppression, il est recommandé de vérifier le changement avec un simple SELECT count afin de s'assurer que l'opération s'est déroulée comme prévu.
-- 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. Sécurité des mises à jour Delta
Lorsque vous exécutez une commande DELETE ou UPDATE, Delta Lake n'efface pas directement les données des anciens fichiers. Il suit plutôt un processus en trois étapes :
- Marquage des anciens fichiers comme « invalides »
- Écriture de nouveaux fichiers contenant les données mises à jour
- Enregistrement du changement dans le journal des transactions
C'est pourquoi la fonctionnalité Time Travel reste disponible même après une suppression — les anciennes données continuent d'exister dans les versions précédentes des fichiers de la table jusqu'à ce que l'historique soit purgé manuellement.
5. Bonne pratique : Tester avec SELECT
Avant d'exécuter une commande DELETE ou UPDATE, toujours tester votre filtre avec une commande SELECT d'abord.
- Au lieu de :
DELETE FROM diamonds WHERE color = 'J' - Essayez d'abord :
SELECT * FROM diamonds WHERE color = 'J'
Si les résultats du SELECT affichent exactement ce que vous souhaitez supprimer, vous pouvez procéder en toute sécurité avec la commande DELETE.
1. Que se passe-t-il si vous exécutez une commande UPDATE sans clause WHERE ?
2. L'exécution d'une commande DELETE sur une table Delta efface-t-elle immédiatement et définitivement les données du stockage cloud sous-jacent ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion