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.

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.

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.

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.

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.

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.

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.