Présentation des tables Delta Databricks / Blogs / Perficient

Les tables Databricks Delta sont une fonctionnalité avancée de stockage et de gestion des données de Databricks, offrant un cadre unifié pour la gestion et l’optimisation des données. Les tables Delta sont construites sur Apache Spark, améliorant les capacités de Spark en fournissant des transactions ACID pour l’intégrité des données, une gestion évolutive des métadonnées pour une gestion efficace des grands ensembles de données, Time Travel pour interroger les versions précédentes de données et la prise en charge du traitement des données en streaming et par lots dans de manière unifiée.
Principales caractéristiques:
Transactions ACIDE: Prend en charge les transactions d’atomicité, de cohérence, d’isolement et de durabilité (ACID), garantissant l’intégrité et la fiabilité des données.
Gestion évolutive des métadonnées: Gérez efficacement les métadonnées des données à grande échelle, garantissant des performances de requête rapides même lorsque la taille des données augmente.
Application du schéma: Delta applique des schémas pour maintenir la cohérence des données et empêcher leur corruption.
Versionnement des données: versionne automatiquement les données et conserve un historique des modifications, permettant ainsi l’audit et la restauration des données.
Voyage dans le temps: Cette fonctionnalité permet aux utilisateurs d’interroger les versions antérieures des données, ce qui facilite la récupération après des suppressions ou des modifications accidentelles.
Création d’une table Delta :
Le DDL pour table delta est presque similaire au parquet.
Créer une table NomTable (
columns_A chaîne,
colonnes_B int,
horodatage columns_C
) Utilisation de Delta
partitionné par (chaîne columns_D)
Emplacement ‘dbfs:/delta/TableName’
Conversion du parquet en table Delta :
Nous pouvons utiliser la commande ci-dessous pour convertir une table Parquet existante en table Delta.
convertir en nom de table delta partitionné par (chaîne columns_D)
Propriétés supplémentaires de la table Delta :
Il existe plusieurs propriétés de table que nous pouvons utiliser pour modifier l’apparence ou le comportement de la table. nous pouvons définir et supprimer les tables sur la table existante en utilisant les commandes ci-dessous
modifier la table tableName SET TBLPROPERTIES (‘clé’, ‘valeur’);
modifier la table tableName UNSET TBLPROPERTIES (‘clé’);
delta.autoOptimize.autoCompact : Cette propriété nous permet de contrôler la taille du fichier pièce en sortie. Définir la valeur sur « true » active le compactage automatique, qui combine les petits fichiers dans les partitions de la table Delta. Ce compactage automatique réduit les problèmes liés à la présence de nombreux petits fichiers.
delta.autoOptimize.optimizeWrite : Définir la valeur sur « true » active les écritures optimisées, qui améliorent la taille du fichier à mesure que les données sont écrites et améliorent les performances des lectures ultérieures sur la table. Les écritures optimisées sont plus efficaces pour les tables partitionnées, car elles réduisent le nombre de petits fichiers écrits sur chaque partition.
delta.deletedFileRetentionDuration : Nous pouvons utiliser la propriété ‘interval
delta.logRetentionDuration : Cette propriété contrôle la durée de conservation de l’historique de la table, qui correspond essentiellement aux fichiers journaux delta. Nous pouvons définir la durée en utilisant le format ‘intervalle
Il est recommandé d’exécuter les commandes OPTIMIZE et VACUUM après chaque chargement réussi ou à intervalles réguliers pour améliorer les performances de la table et supprimer les anciens fichiers de données du stockage.
Les références:
https://docs.databricks.com/en/delta/index.html
Conclusion:
Les tables Databricks Delta améliorent considérablement les fonctionnalités d’Apache Spark en offrant une intégrité robuste des données via des transactions ACID, une gestion efficace de grands ensembles de données avec une gestion évolutive des métadonnées, la possibilité d’interroger des données historiques avec Time Travel et la commodité d’un traitement unifié des données en continu et par lots.
Source link