La migration des tables Delta Lake vers Lakehouse sans frontières peut être complexe et coûteuse si vous devez déplacer de grands volumes de données. Le générateur de jobs Dataflow fournit une interface à faible code ou sans code pour importer vos tables Delta Lake Cloud Storage directement dans Lakehouse. Les données existantes sont copiées de la table Delta Lake vers la table Lakehouse cible à l'aide d'un job Dataflow qui s'adapte automatiquement en fonction du volume de vos données.
Pour les nouvelles tables, Dataflow crée automatiquement le schéma. Pour les tables existantes, le schéma n'est pas modifié. Par conséquent, le schéma de la table de destination doit correspondre correctement à la table Delta Lake source pour que le job réussisse.
Utilisez les informations de connexion suivantes pour importer des données à partir d'une table Delta Lake stockée dans Cloud Storage.
Une fois ces données importées, vous pouvez activer la migration continue.
Avant de commencer
Pour importer des données de table Delta Lake, vous avez besoin des éléments suivants :
Activez les API Dataflow, BigQuery et Lakehouse, si ce n'est pas déjà fait.
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.Pour obtenir les autorisations nécessaires pour créer les ressources, demandez à votre administrateur de vous accorder les rôles IAM (Identity and Access Management) requis sur votre projet.
Une table Delta Lake existante stockée dans un bucket Cloud Storage. Le répertoire de table doit être une racine de table Delta Lake valide contenant vos fichiers de données Parquet et le répertoire du journal des transactions
_delta_log/.Un catalogue, un espace de noms et une table Lakehouse Iceberg pour importer les données.
Compatibilité et limites
L'importation de données de table Delta Lake dans Lakehouse à l'aide de Dataflow présente les limites suivantes :
- Vous devez utiliser un job de pipeline par lot pour utiliser cette fonctionnalité.
- Pour les tables de destination existantes, le schéma n'est pas modifié. Le schéma de la table de destination doit correspondre correctement au schéma de la table Delta Lake source.
- Les données sources doivent être une table Delta Lake valide stockée dans Cloud Storage. Le répertoire racine de la table doit contenir les fichiers de données Parquet et le répertoire du journal des transactions
_delta_log/(contenant des fichiers journaux JSON ou Parquet) tels qu'ils ont été créés par Delta Lake. - Amazon S3 n'est pas compatible avec les sources de tables Delta Lake.
Importer une table Delta Lake
Pour importer une table Delta Lake dans Lakehouse, procédez comme suit :
Dans la console Google Cloud , accédez à la page Catalogue d'environnements d'exécution Lakehouse.
Sélectionnez le catalogue, l'espace de noms et la table dans lesquels vous souhaitez importer des données.
Sur la page Détails de la table, cliquez sur Importer une table, puis sélectionnez Depuis Delta Lake (lot).
La page Job Builder de Dataflow s'ouvre avec le blueprint Delta Lake to Lakehouse chargé.
Dans la section Sources :
Pour développer le panneau source Table Delta Lake ReadFromDeltaLake, cliquez sur la flèche d'expansion .
Dans le champ Chemin d'accès à la table, saisissez l'URI Cloud Storage du répertoire racine de la table Delta Lake (le répertoire contenant les fichiers de données et le répertoire
_delta_log/). Exemple :gs://BUCKET_NAME/tables/TABLE_NAME.(Facultatif) Dans le champ Propriétés de configuration Hadoop, configurez les propriétés de configuration Hadoop supplémentaires requises pour lire les données depuis Cloud Storage. Exemple :
fs.gs.impl=com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem.Cliquez sur OK.
Dans la section Récepteur :
Facultatif : examinez le panneau de récepteur WriteToIceberg Lakehouse table. Les informations de ce panneau, telles que la table Lakehouse, le nom du catalogue et l'emplacement de l'entrepôt, sont généralement préremplies.
Cliquez sur OK.
Dans la section Options Dataflow, cliquez sur Exécuter le job.
Si vous avez besoin de personnaliser davantage le pipeline Dataflow utilisé pour importer des tables Delta Lake, vous pouvez le faire à l'aide du formulaire du générateur de jobs ou de l'éditeur YAML.
Examiner le résultat du job
Une fois le job terminé, vous pouvez vérifier que les données ont été copiées dans la table Lakehouse en l'interrogeant dans BigQuery.
Dans la liste des jobs Dataflow, vérifiez que l'état du job est Réussie.
Si le job échoue ou comporte des erreurs, consultez les journaux des jobs ou des nœuds de calcul pour en savoir plus.
Dans la console Google Cloud , accédez à la page Studio de BigQuery.
Dans l'éditeur de requête, saisissez une requête SQL pour inspecter la table. Vous pouvez utiliser la convention
PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAMEpour interroger :SELECT * FROM `PROJECT_ID`.`CATALOG`.`NAMESPACE`.`TABLE_NAME` LIMIT 10;Cliquez sur Exécuter.
Examinez les résultats de la requête pour vous assurer que les données ont été traitées correctement.
Facultatif. Activer la migration continue
Pour configurer une migration continue de bout en bout de Delta Lake vers Lakehouse, effectuez les opérations suivantes :
- Activez la propriété
delta.enableChangeDataFeedsur la table Delta Lake d'entrée. - Effectuez une migration initiale des tables vers un ID de commit ou un code temporel après avoir défini la propriété
delta.enableChangeDataFeed. - Exécutez des jobs CDC planifiés pour les données suivantes en utilisant une fréquence (ID de commit ou plage de codes temporels) choisie en fonction des exigences de votre charge de travail.
Pour en savoir plus, consultez Migrer les données de capture des données modifiées (CDC) Delta Lake vers Lakehouse à l'aide de Dataflow.
Étapes suivantes
- Pour en savoir plus, consultez Présentation des tables Lakehouse pour Apache Iceberg dans BigQuery.
- En savoir plus sur la migration périodique des données CDC Delta Lake vers Lakehouse
- Découvrez l'ingestion de la capture des données modifiées dans Lakehouse.
- Découvrez comment créer un job personnalisé avec l'interface utilisateur du générateur de jobs.