Artificial Intelligence (AI)

Guide to Migrating from Databricks Delta Lake to Apache Iceberg

Written by smirow

Introduction

Dans le monde en évolution rapide du traitement et de l’analyse du Big Data, la gestion potentielle d’ensembles de données étendus constitue un pilier fondamental permettant aux entreprises de prendre des décisions éclairées. Cela les aide à extraire des informations utiles de leurs données. Diverses solutions ont vu le jour ces dernières années, telles que Databricks Delta Lake et Apache Iceberg. Ces plates-formes ont été développées pour la gestion des lacs de données et offrent toutes deux des fonctionnalités robustes. Mais pour les organisations il est nécessaire d’appréhender les nuances en termes d’architecture, d’aspects techniques et fonctionnels pour migrer la plateforme existante. Cet article explorera le processus complexe de transition de Databricks Delta Lake vers Apache Iceberg.

Objectifs d'apprentissage

  • Comprendre les fonctionnalités de Databricks et Apache Iceberg.
  • Apprenez à comparer les composants architecturaux entre Databricks et Apache Iceberg.
  • Comprendre les meilleures pratiques pour migrer l'architecture delta Lake vers une plateforme open source comme Iceberg.
  • Utiliser d'autres outils tiers comme alternative à la plateforme delta Lake.

Cet article a été publié dans le cadre du Blogathon sur la science des données.

Comprendre les Databricks Delta Lake

Databricks Delta Lake est essentiellement une couche de stockage sophistiquée construite sur le framework Apache Spark. Il offre des fonctionnalités de données modernes développées pour une gestion transparente des données. Delta Lake possède diverses caractéristiques fondamentales :

  • Transactions ACIDE: Delta Lake garantit les principes fondamentaux d'atomicité, de cohérence, d'isolement et de durabilité pour toutes les modifications des données utilisateur, garantissant ainsi des opérations de données robustes et valides.
  • Évolution du schéma: La flexibilité vient principalement de Delta Lake, car il prend en charge de manière transparente l'évolution des schémas, permettant ainsi aux industries d'effectuer des modifications de schéma sans perturber les pipelines de données existants en production.
  • Voyage dans le temps: Tout comme le voyage dans le temps dans les films de science-fiction, le lac delta offre la possibilité d'interroger des instantanés de données à des moments précis. Ainsi, il permet aux utilisateurs de se plonger en profondeur dans une analyse historique complète des données et des capacités de gestion des versions.
  • Gestion de fichiers optimisée: Delta Lake prend en charge des techniques robustes pour organiser et gérer les fichiers de données et les métadonnées. Il en résulte des performances de requête optimisées et une réduction des coûts de stockage.

Caractéristiques d'Apache Iceberg

Apache Iceberg offre une alternative compétitive aux entreprises à la recherche d'une solution améliorée de gestion des lacs de données. Icebergs bat certains formats traditionnels tels que Parquet ou ORC. Il existe de nombreux avantages distinctifs :

  • Évolution du schéma: L'utilisateur peut tirer parti de la fonctionnalité d'évolution du schéma tout en effectuant les modifications du schéma sans réécriture coûteuse des tables.
  • Isolement des instantanés: Iceberg prend en charge l'isolation des instantanés, garantissant ainsi des lectures et des écritures cohérentes. Il facilite les modifications simultanées dans les tables sans compromettre l'intégrité des données.
  • Gestion des métadonnées: Cette fonctionnalité sépare essentiellement les métadonnées des fichiers de données. Et stockez-le dans un dépôt dédié différent des fichiers de données eux-mêmes. Il le fait ainsi pour améliorer les performances et permettre des opérations de métadonnées efficaces.
  • Élagage de partition: Tirant parti de techniques d'élagage avancées, il optimise les performances des requêtes en réduisant les données analysées lors de l'exécution de la requête.

Analyse comparative des architectures

Approfondissons l'analyse comparative des architectures :

Architecture de Databricks Delta Lake

  • Couche de stockage: Delta Lake profite du stockage cloud, par exemple Amazon S3, Azure Blob comme couche de stockage sous-jacente, qui comprend à la fois des fichiers de données et des journaux de transactions.
  • Gestion des métadonnées: Les métadonnées restent dans un journal de transactions. Cela conduit ainsi à des opérations de métadonnées efficaces et garantit la cohérence des données.
  • Techniques d'optimisation: Delta Lake utilise des tonnes de techniques d'optimisation. Il inclut le saut de données et l'ordre Z pour améliorer radicalement les performances des requêtes et réduire la surcharge lors de l'analyse des données.
Architecture de Databricks Delta Lake

Architecture des icebergs Apache

  • Séparation des métadonnées: Il existe une différence avec la comparaison avec Databricks en termes de séparation des métadonnées des fichiers de données. L'iceberg stocke les métadonnées dans un référentiel distinct des fichiers de données.
  • Prise en charge transactionnelle: Pour garantir l'intégrité et la fiabilité des données, Iceberg dispose d'un protocole de transaction robuste. Ce protocole garantit les opérations de table atomiques et cohérentes.
  • Compatibilité: Les moteurs tels qu'Apache Spark, Flink et Presto sont facilement compatibles avec l'Iceberg. Les développeurs ont la possibilité d'utiliser Iceberg avec ces frameworks de traitement en temps réel et par lots.
Architecture des icebergs Apache

Naviguer dans le paysage migratoire : considérations et bonnes pratiques

La mise en œuvre de la migration de Databricks Delta Lake vers Apache Iceberg nécessite une immense quantité de planification et d'exécution. Certaines considérations doivent être faites, à savoir :

  • Évolution du schéma: Garantir la compatibilité sans faille entre la fonctionnalité d'évolution de schéma de Delta Lake et Iceberg pour préserver la cohérence lors des changements de schéma.
  • Migration de données: Les stratégies doivent être développées et mises en place en tenant compte de facteurs tels que le volume des données, les exigences de temps d'arrêt et la cohérence des données.
  • Compatibilité des requêtes: Il faut vérifier la compatibilité des requêtes entre Delta Lake et Iceberg. Cela permettra une transition en douceur et la fonctionnalité de requête existante sera également intacte après la migration.
  • Performance Essai: lancez des tests approfondis de performances et de régression pour vérifier les performances des requêtes. L'utilisation des ressources devrait également être vérifiée entre Iceberg et Delta Lake. De cette façon, les domaines potentiels d’optimisation peuvent être identifiés.

Pour la migration, les développeurs peuvent utiliser certains squelettes de code prédéfinis de la documentation Iceberg et databricks et les implémenter. Les étapes sont mentionnées ci-dessous et le langage utilisé ici est Scala :

Étape 1 : Créer une table Delta Lake

Dans la première étape, assurez-vous que le compartiment S3 est vide et vérifié avant de procéder à la création de données à l'intérieur. Une fois le processus de création de données terminé, effectuez la vérification suivante :

Étape 1 : Créer une table Delta Lake
val data=spark.range(0,5)
data.write.format("delta").save("s3://testing_bucket/delta-table")

spark.read.format("delta").load("s3://testing_bucket/delta-table")
Créer une table Delta Lake
Créer une table Delta Lake

Ajout d'un code de vide facultatif

#adding optional code for vaccum later
val data=spark.range(5,10)
data.write.format("delta").mode("overwrite").save("s3://testing_bucket/delta-table")

Étape 2 : CTAS et lecture du tableau de Delta Lake

#reading delta lake table
spark.read.format("delta").load("s3://testing_bucket/delta-table")

Étape 3 : Lire Delta Lake et écrire dans la table Iceberg

val df_delta=spark.read.format("delta").load("s3://testing_bucket/delta-table")
df_delta.writeTo("test.db.iceberg_ctas").create()
spark.read.format("iceberg").load("test.db.iceberg.ctas)

Vérifiez les données transférées dans les tables d'iceberg sous S3

Lire Delta Lake et écrire sur la table Iceberg
Lire Delta Lake et écrire sur la table Iceberg

Comparaison des outils tiers en termes de simplicité, de performances, de compatibilité et de support. Les deux outils, c'est-à-dire. AWS Glue DataBrew et Snowflake sont livrés avec leur propre ensemble de fonctionnalités.

AWS Glue DataBrew

Processus de migration :

  • Facilité d'utilisation: AWS Glue DataBrew est un produit sous le cloud AWS et offre une expérience conviviale pour les tâches de nettoyage et de transformation des données.
  • L'intégration: Glue DataBrew peut être intégré de manière transparente à d'autres services cloud Amazon. Les organisations travaillant avec AWS peuvent utiliser ce service.

Jeu de fonctionnalités:

  • Transformation des données: Il est livré avec un large éventail de fonctionnalités pour la transformation des données (EDA). Cela peut s'avérer utile lors de la migration des données.
  • Profilage automatique: Comme les autres outils open source, DataBrew profile automatiquement les données. pour détecter toute incohérence et également recommander des tâches de transformations.

Performances et compatibilité :

  • Évolutivité: Pour traiter les ensembles de données plus volumineux pouvant être rencontrés lors du processus de migration, Glue DataBrew offre également une évolutivité pour gérer cela.
  • Compatibilité: Il offre une compatibilité avec un ensemble plus large de formats et de sources de données, facilitant ainsi l'intégration avec diverses solutions de stockage.

Flocon de neige

Processus de migration :

  • Facilité de migration: Pour plus de simplicité, Snowflake dispose de services de migration qui aident les utilisateurs finaux à passer des entrepôts de données existants vers la plate-forme Snowflake.
  • Documentation complète: Snowflake propose une vaste documentation et une grande quantité de ressources pour démarrer le processus de migration.

Jeu de fonctionnalités:

  • Capacités d'entreposage de données: Il offre un ensemble plus large de fonctionnalités d'entreposage et prend en charge les données semi-structurées, le partage de données et la gouvernance des données.
  • Concurrence: L'architecture permet une concurrence élevée qui convient aux organisations ayant des exigences exigeantes en matière de traitement des données.

Performances et compatibilité :

  • Performance: Snowflake est également efficace en termes de performances en termes d'évolutivité, ce qui permet aux utilisateurs finaux de traiter facilement d'énormes volumes de données.
  • Compatibilité: Snowflake fournit également divers connecteurs pour différentes sources de données, garantissant ainsi une compatibilité croisée avec des écosystèmes de données variés.
"

Conclusion

Pour optimiser les workflows de gestion des lacs de données et des entrepôts et extraire les résultats commerciaux, la transition est vitale pour les organisations. Les industries peuvent exploiter à la fois les plates-formes en termes de capacités et de disparités architecturales et techniques et décider laquelle choisir pour utiliser au maximum le potentiel de leurs ensembles de données. Cela aide également les organisations à long terme. Face à l’évolution dynamique et rapide du paysage des données, des solutions innovantes peuvent maintenir les organisations à la pointe du progrès.

Points clés à retenir

  • Apache Iceberg fournit des fonctionnalités fantastiques telles que l'isolation des instantanés, la gestion efficace des métadonnées et l'élagage des partitions, ce qui conduit à l'amélioration des capacités de gestion des lacs de données.
  • La migration vers Apache Iceberg nécessite une planification et une exécution prudentes. Les organisations doivent prendre en compte des facteurs tels que l'évolution du schéma, les stratégies de migration des données et la compatibilité des requêtes.
  • Databricks Delta Lake exploite le stockage cloud comme couche de stockage sous-jacente, stockant les fichiers de données et les journaux de transactions, tandis qu'Iceberg sépare les métadonnées des fichiers de données, améliorant ainsi les performances et l'évolutivité.
  • Les organisations doivent également prendre en compte les implications financières telles que les coûts de stockage, les frais de calcul, les frais de licence et toutes les ressources ad hoc nécessaires à la migration.

Questions fréquemment posées

T1. Comment se déroule le processus de migration de Databricks Delta Lake vers Apache Iceberg ?

R. Cela implique d'exporter les données depuis Databricks Delta Lake, de les nettoyer si nécessaire, puis de les importer dans les tables Apache Iceberg.

Q2. Existe-t-il des outils automatisés disponibles pour faciliter la migration sans intervention manuelle ?

A. Les organisations exploitent généralement des scripts Python/Scala personnalisés et des outils ETL pour créer ce flux de travail.

Q3. Quels sont les défis courants auxquels les organisations sont confrontées au cours du processus de migration ?

R. Certains défis très susceptibles de se produire sont : la cohérence des données, la gestion des différences d'évolution des schémas et l'optimisation des performances après la migration.

Q4. Quelle est la différence entre Apache Iceberg et d’autres formats de table comme Parquet ou ORC ?

R. Apache Iceberg fournit des fonctionnalités telles que l'évolution du schéma, l'isolation des instantanés et une gestion efficace des métadonnées qui le diffèrent de Parquet et ORC.

Q5. Pouvons-nous utiliser Apache Iceberg avec des solutions de stockage basées sur le cloud ?

R. Absolument, Apache Iceberg est compatible avec les solutions de stockage cloud couramment utilisées telles qu'AWS S3, Azure Blob Storage et Google Cloud Storage.

Les médias présentés dans cet article n'appartiennent pas à Analytics Vidhya et sont utilisés à la discrétion de l'auteur.

About the author

smirow

Leave a Comment