Qu’est-ce que Delta Lake ?
Delta Lake est la couche de stockage optimisée qui fournit la base des tables d’un lakehouse sur Databricks. Delta Lake est un logiciel open source qui étend les fichiers de données Parquet avec un journal des transactions basé sur des fichiers pour les transactions ACID et le traitement évolutif des métadonnées. Delta Lake est entièrement compatible avec les API Apache Spark et a été développé dans une optique d’intégration étroite avec Structured Streaming : vous pouvez facilement utiliser une seule copie de données à la fois pour les opérations de traitement par lots et les opérations de streaming, avec les avantages d’un traitement incrémentiel à grande échelle.
Delta Lake est le format par défaut pour toutes les opérations sur Azure Databricks. Sauf indication contraire, toutes les tables sur Azure Databricks sont des tables Delta. Databricks a initialement développé le protocole Delta Lake et continue de contribuer activement au projet open source. Une large part des optimisations et des produits proposés dans le lakehouse Databricks reposent sur les garanties fournies par Apache Spark et Delta Lake. Pour plus d’informations sur les optimisations sur Azure Databricks, consultez Recommandations en matière d’optimisation sur Azure Databricks.
Pour obtenir des informations de référence sur les commandes SQL Delta Lake, consultez Instructions Delta Lake.
Le journal des transactions Delta Lake possède un protocole ouvert bien défini qui peut être utilisé par n’importe quel système pour lire le journal. Voir Protocole du journal des transactions Delta
Bien démarrer avec Delta Lake
Toutes les tables sur Azure Databricks sont des tables Delta par défaut. Que vous utilisiez Apache Spark DataFrame ou SQL, vous bénéficiez de tous les avantages de Delta Lake simplement en enregistrant vos données dans le lakehouse avec les paramètres par défaut.
Pour obtenir des exemples d’opérations Delta Lake de base telles que la création de tables ou la lecture, l’écriture et la mise à jour de données, consultez Tutoriel : Delta Lake.
Databricks fournit de nombreuses recommandations concernant les bonnes pratiques pour Delta Lake.
Conversion et ingestion de données dans Delta Lake
Azure Databricks fournit plusieurs produits qui permettent d’accélérer et de simplifier le chargement des données dans votre lakehouse.
- Delta Live Tables :
- COPY INTO
- Chargeur automatique
- Ajouter une interface utilisateur de données
- Convertir de manière incrémentielle des données Parquet ou Iceberg en Delta Lake
- Conversion unique de données Parquet ou Iceberg en Delta Lake
- Partenaires tiers
Pour obtenir la liste complète des options d’ingestion, consultez Réception de données dans un lac de données Databricks.
Mise à jour et modification de tables Delta Lake
Les transactions atomiques avec Delta Lake offrent de nombreuses options de mise à jour des données et des métadonnées. Databricks vous recommande de ne pas interagir directement avec les fichiers de données et les fichiers journaux des transactions qui sont stockés dans les répertoires de fichiers Delta Lake, au risque sinon d’altérer vos tables.
- Delta Lake prend en charge les upserts par le biais de l’opération de fusion. Consultez Upsert dans une table Delta Lake à l’aide de la fusion.
- Delta Lake fournit de nombreuses options pour effectuer des remplacements sélectifs sur la base de filtres et de partitions. Consultez Remplacer de manière sélective les données avec Delta Lake.
- Vous pouvez mettre à jour un schéma de table manuellement ou automatiquement sans avoir à réécrire les données. Consultez Mettre à jour un schéma de table Delta Lake.
- Activez le mappage de colonnes pour renommer ou supprimer des colonnes sans réécrire des données. Cf. Renommage et suppression des colonnes avec le mappage de colonnes Delta Lake.
Charges de travail incrémentielles et de streaming sur Delta Lake
Delta Lake est optimisé pour Structured Streaming (streaming structuré) sur Azure Databricks. Delta Live Tables étend les fonctionnalités natives avec un déploiement d’infrastructure simplifié, une mise à l’échelle améliorée et des dépendances de données managées.
- Lectures et écritures en diffusion en continu sur des tables Delta
- Utiliser le flux des changements de données Delta Lake sur Azure Databricks
Interrogation des versions précédentes d’une table
Chaque écriture dans une table Delta crée une nouvelle version de table. Vous pouvez utiliser le journal des transactions pour passer en revue les modifications apportées à votre table et interroger les versions précédentes de la table. Consultez Utiliser l’historique des tables Delta Lake.
Améliorations du schéma Delta Lake
Delta Lake valide le schéma à chaque écriture, en s’assurant que toutes les données écrites dans une table satisfont aux exigences que vous avez définies.
- Application du schéma
- Contraintes sur Azure Databricks
- Colonnes générées par Delta Lake
- Enrichir des tables Delta Lake avec des métadonnées personnalisées
Gestion des fichiers et indexation des données avec Delta Lake
Azure Databricks définit de nombreux paramètres par défaut pour Delta Lake qui impactent la taille des fichiers de données et le nombre de versions de table conservées dans l’historique. Delta Lake combine l’analyse des métadonnées et la disposition des données physiques pour réduire le nombre de fichiers analysés en réponse à une requête.
- Utiliser des clustering liquides pour les tableaux Delta
- Saut de données pour Delta Lake
- Optimiser la disposition des fichiers de données
- Supprimer les fichiers de données inutilisés avec le nettoyage
- Configurer Delta Lake pour contrôler la taille du fichier de données
Configuration et examen des paramètres Delta Lake
Azure Databricks stocke toutes les données et métadonnées des tables Delta Lake dans le stockage d’objets cloud. Beaucoup de configurations peuvent être définies soit au niveau de la table, soit dans la session Spark. Vous pouvez examiner les détails de la table Delta pour voir les options configurées.
- Examiner les détails de la table Delta Lake avec DESCRIBE DETAIL
- Informations de référence sur les propriétés de table Delta
Pipelines de données avec Delta Lake et Delta Live Tables
Azure Databricks encourage les utilisateurs à utiliser une architecture de médaillon pour traiter les données à travers une série de tables à mesure que les données sont nettoyées et enrichies. Delta Live Tables simplifie les charges de travail ETL par l’optimisation de l’exécution et par l’automatisation du déploiement et de la mise à l’échelle de l’infrastructure.
Compatibilité des fonctionnalités Delta Lake
Les fonctionnalités Delta Lake ne sont pas forcément toutes disponibles dans toutes les versions de Databricks Runtime. Pour plus d’informations sur le contrôle de version de Delta Lake, consultez Comment Azure Databricks gère la compatibilité des fonctionnalités Delta Lake ?.
Documentation des API Delta Lake
Pour la plupart des opérations de lecture et d’écriture sur les tables Delta, vous pouvez utiliser les API Spark SQL ou Apache Spark DataFrame.
Pour obtenir des instructions SQL spécifiques à Delta Lake, consultez les instructions Delta Lake.
Azure Databricks assure la compatibilité binaire avec les API Delta Lake dans Databricks Runtime. Pour afficher la version de l’API Delta Lake empaquetée dans chaque version de Databricks Runtime, consultez la section Environnement système de l’article correspondant dans les notes de publication de Databricks Runtime. Pour obtenir de la documentation sur les API Delta Lake pour Python, Scala et Java, consultez la Documentation OSS Delta Lake.