Qu'est-ce que Delta Lake dans Databricks ?
Delta Lake est la couche de stockage optimisée qui constitue la base des tables dans un lakehouse sur Databricks. Delta Lake est un logiciel open source qui étend les fichiers de données Parquet avec un journal de transactions basé sur des fichiers pour les transactions ACID et la gestion évolutive des métadonnées. Delta Lake est entièrement compatible avec les APIs Apache Spark et a été développé pour une intégration étroite avec Structured Streaming, vous permettant d'utiliser facilement une seule copie des données pour les opérations batch et streaming, et offrant un traitement incrémentiel à l'échelle.
Delta Lake est le format default pour toutes les Opérations sur Databricks. Sauf indication contraire, toutes les tables sur Databricks sont des tables Delta Lake. Databricks a initialement développé le protocole Delta Lake et continue de contribuer activement au projet open source. De nombreuses optimisations et produits de la plateforme Databricks s'appuient sur les garanties fournies par Apache Spark et Delta Lake. Pour plus d'informations sur les optimisations sur Databricks, consultez les recommandations d'optimisation sur Databricks.
Pour des informations de référence sur les commandes SQL de Delta Lake, consultez Instructions Delta Lake.
Le journal des transactions Delta Lake dispose d'un protocole ouvert bien défini qui peut être utilisé par n'importe quel système pour lire le journal. Consultez le Protocole de journal des transactions Delta.
Démarrer avec Delta Lake
Toutes les tables sur Databricks sont des tables Delta Lake par default. Que vous utilisiez les DataFrames Apache Spark 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 default.
Pour des exemples d'Opérations de base Delta Lake, telles que la création de tables, la lecture, l'écriture et la mise à jour de données, consultez Tutoriel : Créer et gérer des tables Delta Lake.
Pour les recommandations et les bonnes pratiques de Databricks concernant l'utilisation de Delta Lake, consultez Bonnes pratiques : Delta Lake.
Conversion et ingestion de données dans Delta Lake
Databricks dispose de nombreuses fonctionnalités pour accélérer et simplifier le chargement des données dans votre lakehouse.
-
- Didacticiel : Créer un pipeline ETL avec LakeFlow Pipelines
- Créez un pipeline ETL de bout en bout à l'aide de Lakeflow pipelines.
-
- Configurer l'ingestion incrémentielle à partir d'Amazon S3
- Configurez l'ingestion incrémentielle depuis le stockage cloud à l'aide d'Auto Loader et de LakeFlow Pipelines.
-
- Tables de streaming
- Utilisez des tables de streaming pour l'ingestion en mode append-only et le streaming à faible latence dans les LakeFlow Pipelines.
-
- Démarrez en utilisant COPY INTO pour charger des données
- Chargez les données de manière incrémentielle et idempotente à partir du stockage cloud à l'aide de SQL.
-
- Qu'est-ce qu'Auto Loader ?
- Ingérez les fichiers depuis le stockage cloud de manière incrémentielle à mesure qu'ils arrivent.
-
- Créer ou modifier une table à l'aide du fichier upload
- Upload des fichiers et créez des tables depuis l'interface utilisateur de Databricks.
-
- Cloner de manière incrémentielle les tables Parquet et Apache Iceberg vers Delta Lake
- Clonez de manière incrémentielle des tables Parquet ou Apache Iceberg vers Delta Lake.
-
- Convertir en Delta Lake
- Conversion unique des tables Parquet ou Apache Iceberg vers Delta Lake.
-
- Partenaires technologiques
- Connectez des partenaires et des outils tiers à votre lakehouse Databricks.
Pour une liste complète des options d'ingestion, consultez les connecteurs standard dans Lakeflow Connect.
Mise à jour et modification des tables Delta Lake
Les transactions atomiques avec Delta Lake vous permettent d'utiliser de nombreuses options pour la mise à jour des données et des métadonnées. Pour éviter d'altérer vos tables, Databricks vous recommande d'éviter d'interagir directement avec les données et les fichiers journaux de transactions dans les répertoires de fichiers Delta Lake.
-
- Upsert dans une table Delta Lake en utilisant la Merge
- Upsert des données dans une table Delta Lake à l'aide de l'opération de Merge.
-
- Écraser sélectivement les données avec Delta Lake
- Écrasez des sous-ensembles de données en fonction des filtres et des partitions.
-
- Mettre à jour les schémas de table avec l'évolution des schémas
- Mettez à jour manuellement ou automatiquement votre schéma de table sans réécrire les données.
-
- Renommer et supprimer des colonnes avec le mappage de colonnes Delta Lake
- Renommer ou supprimer des colonnes sans réécrire les données.
Charges de travail incrémentielles et de streaming sur Delta Lake
Delta Lake est optimisé pour le Structured Streaming sur Databricks. Les LakeFlow Pipelines étendent les capacités intégrées avec un déploiement d'infrastructure simplifié, une mise à l'échelle améliorée et des dépendances de données gérées.
-
- Lectures et écritures en streaming des tables Delta Lake
- Utilisez les tables Delta Lake comme sources et récepteurs pour Structured Streaming avec
readStreametwriteStream.
-
- Utilisez le flux de données de modification sur Databricks
- Suivez les modifications au niveau des lignes entre les versions d'une table Delta Lake ou Apache Iceberg v3.
Interrogation des versions précédentes d'une table
Chaque écriture dans une table Delta Lake crée une nouvelle version de table. Vous pouvez utiliser le journal des transactions pour examiner les modifications apportées à votre table et interroger les versions précédentes de la table. Consultez Gérer l’historique des tables.
améliorations du schéma Delta Lake
Delta Lake valide le schéma à l'écriture, garantissant que toutes les données écrites dans une table correspondent aux exigences que vous avez définies.
-
- application des schémas
- Validez la qualité des données en appliquant le schéma à l'écriture.
-
- Contraintes sur Databricks
- Appliquez des contraintes d’intégrité forcées et des contraintes informatives de clé primaire, de clé étrangère et uniques.
-
- Colonnes générées par Delta Lake
- Générez automatiquement les valeurs de colonne à l'aide de fonctions spécifiées par l'utilisateur.
-
- Enrichir les tables avec des métadonnées personnalisées
- Ajoutez des commentaires et des métadonnées personnalisées aux tables et aux colonnes pour enrichir la découverte des données.
Gestion des fichiers et indexation des données avec Delta Lake
Databricks définit de nombreux paramètres default pour Delta Lake qui affectent la taille des fichiers de données et le nombre de versions de table conservées dans l’historique. Delta Lake utilise une combinaison d'analyse des métadonnées et de Layout physique des données pour réduire le nombre de fichiers analysés afin de satisfaire toute query.
-
- Utilisez le clustering liquide pour les tables.
- Simplifiez le Layout des données et optimisez les performances des queries sans partitionnement à l'aide du clustering liquide.
-
- Saut de données
- Ignorez les fichiers non pertinents au moment de la query en utilisant les statistiques de colonne, le Z-order et un layout de données optimisé.
-
- Optimisez le Layout des fichiers de données
- Compactez les petits fichiers de données pour améliorer les performances des query.
-
- Supprimez les fichiers de données inutilisés avec vacuum
- Supprimez les fichiers de données obsolètes pour réduire les coûts de stockage.
-
- Suppression automatique des lignes avec durée de vie automatique
- Supprimez automatiquement les lignes des tables gérées après une période configurable.
-
- Contrôler la taille du fichier de données
- Contrôlez manuellement la taille du fichier cible ou activez l'ajustement automatique de la taille des fichiers.
Configuration et examen des paramètres de Delta Lake
Databricks stocke toutes les données et les métadonnées pour les tables Delta Lake dans le stockage d'objets cloud. De nombreuses configurations peuvent être définies au niveau de la table ou au sein de la session Spark. Vous pouvez examiner les détails de la table Delta Lake pour découvrir les options configurées.
-
- Examiner les détails de la table avec describe detail
- Affichez les configurations de table et les métadonnées à l'aide de la commande
DESCRIBE DETAIL.
-
- Référence des propriétés de table
- Liste de référence des propriétés de table disponibles pour les tables Delta Lake.
Pipelines de données utilisant Delta Lake et LakeFlow Pipelines
Databricks encourage les utilisateurs à tirer parti d'une architecture en médaillon pour traiter les données via une série de tables à mesure que les données sont nettoyées et enrichies. LakeFlow Pipelines simplifient les charges de travail ETL grâce à une exécution optimisée et au déploiement et à la mise à l'échelle automatisés de l'infrastructure.
Compatibilité des fonctionnalités Delta Lake
Toutes les fonctionnalités de Delta Lake ne sont pas disponibles dans toutes les versions de Databricks Runtime. Pour plus d'informations sur le contrôle de version de Delta Lake, consultez Compatibilité des fonctionnalités et protocoles Delta Lake.
Documentation de l'API Delta Lake
Pour la plupart des opérations de lecture et d'écriture sur les tables Delta Lake, vous pouvez utiliser Spark SQL ou les API DataFrame Apache Spark.
Pour les instructions SQL spécifiques à Delta Lake, consultez les instructions Delta Lake.
Databricks assure la compatibilité binaire avec les APIs Delta Lake dans Databricks Runtime. Pour afficher la version de l'API Delta Lake incluse dans chaque version de Databricks Runtime, consultez la section System environment de l'article pertinent dans les notes de publication de Databricks Runtime. Pour la documentation sur les APIs Delta Lake pour Python, Scala et Java, consultez la documentation OSS Delta Lake.