Intégrité des données avec Delta Lake

Effectué

L’intégrité des données dans Delta Lake est un aspect essentiel qui garantit l’exactitude, la cohérence et la fiabilité des données tout au long de leur cycle de vie. Delta Lake fournit plusieurs mécanismes pour maintenir l’intégrité des données, en particulier dans les environnements avec des pipelines de données complexes et plusieurs utilisateurs simultanés.

Les principales fonctionnalités et techniques utilisées par Delta Lake pour maintenir l’intégrité des données sont les suivantes :

  • Transactions ACID
  • Application du schéma
  • Évolution du schéma
  • Opérations de fusion
  • Voyage dans le temps
  • Écritures simultanées
  • Gestion et compactage des fichiers
  • Vérifications de cohérence
  • Implémentation de contrôles d’intégrité des données

Transactions ACID

Delta Lake prend en charge les transactions ACID (Atomicité, Cohérence, Isolation, Durabilité). Cela signifie que chaque opération sur une table Delta est traitée comme une transaction, qui se termine entièrement ou qui ne se produit pas du tout, ce qui empêche les mises à jour partielles des données pouvant entraîner une altération des données.

  • Atomicité : Garantit que chaque transaction est traitée comme une seule « unité » qui réussit entièrement ou échoue entièrement.
  • Cohérence : Garantit que seules des données valides qui respectent toutes les règles et contraintes définies sont écrites dans la base de données.
  • Isolation : Maintient les performances et l’intégrité en isolant virtuellement chaque transaction, ce qui garantit que les transactions n’interfèrent pas entre elles.
  • Durabilité : Garantit qu’une fois qu’une transaction est validée, elle le reste, même s’il y a un incident, une perte de l’alimentation ou une autre défaillance du système.

Application du schéma

Delta Lake applique une validation du schéma sur les opérations d’écriture. Cela signifie que les données écrites dans une table Delta doivent correspondre au schéma de la table, sans quoi l’opération d’écriture échoue. Ceci évite les types de données incorrects ou les modifications de schéma inattendues qui peuvent entraîner des incohérences des données.

Évolution des schémas

Delta Lake permet également l’évolution des schémas sans temps d’arrêt lors de l’application de schémas. Cela signifie que vous pouvez ajouter de nouvelles colonnes ou modifier des types de données dans le schéma à mesure que vos données évoluent. L’évolution des schémas garantit que toutes les données restent accessibles et cohérentes avec les nouvelles définitions des schémas.

Opérations de fusion

Delta Lake prend en charge les opérations de fusion avancées, qui sont cruciales pour les upserts (mise à jour d’enregistrements existants et insertion simultanée de nouveaux enregistrements) dans des pipelines ETL (extraction, transformation et chargement) complexes. L’opération de fusion est transactionnelle et conserve l’intégrité des données en garantissant que chaque enregistrement est mis à jour ou inséré correctement en fonction de conditions spécifiées.

Voyage dans le temps

Le voyage dans le temps est une fonctionnalité qui vous permet d’accéder aux versions antérieures de vos données. Ceci est utile pour l’audit, le débogage et la restauration après des modifications indésirables, ce qui vous permet de restaurer l’intégrité des données si des mises à jour récentes endommagent ou altèrent involontairement des données. Voici un exemple d’interrogation des données historiques.

df = spark.read.format("delta").option("versionAsOf", 3).load("/FileStore/tables/table")

Écritures simultanées

Delta Lake gère les écritures simultanées en utilisant un modèle de concurrence optimiste. Quand plusieurs transactions se produisent, il sérialise ces transactions pour faire en sorte qu’elles ne provoquent pas de conflits. Si un conflit est détecté, Delta Lake retente ou fait échouer la transaction, selon le scénario.

Gestion et compactage des fichiers

Delta Lake optimise la gestion des fichiers via des mécanismes tels que le compactage (bin packing) et le saut de données. Ces fonctionnalités réduisent le nombre de petits fichiers et améliorent l’efficacité des lectures, ce qui permet de maintenir des performances élevées et de réduire les risques d’incohérences des données lors des lectures et des écritures.

Vérifications de cohérence

Delta Lake fournit des utilitaires pour vérifier les incohérences dans la couche de stockage des données, ce qui garantit que les fichiers de données et leurs métadonnées correspondantes sont toujours synchronisés. Ces vérifications sont cruciales après la récupération après une défaillance du système ou dans des environnements distribués.