Vous pouvez utiliser un blueprint de compilateur de job Dataflow pour ajouter des fichiers Apache Parquet existants à partir d'un stockage dans le cloud (Cloud Storage, Amazon S3 ou Azure Blob Storage) à une table Apache Iceberg dans un lakehouse sans bordure.
Ce processus utilise la transformation IcebergAddFiles.
Si vos fichiers Parquet se trouvent dans Cloud Storage, cette transformation les enregistre dans Lakehouse sans déplacer ni réécrire les données sous-jacentes. Si vos fichiers se trouvent dans un système de stockage externe tel qu'Amazon S3, ils sont copiés dans Cloud Storage pour accélérer les requêtes via Lakehouse, puis enregistrés.
Utilisez les informations de connexion suivantes pour ajouter des fichiers Parquet depuis un stockage dans le cloud à une table Apache Iceberg dans Lakehouse.
Avant de commencer
Activez les API Dataflow, BigQuery et Lakehouse.
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.
Créez un catalogue Lakehouse, un espace de noms et une table dans lesquels importer les données.
Créez un bucket de stockage dans le cloud (Cloud Storage, Amazon S3 ou Azure Blob Storage), puis importez-y vos fichiers Parquet.
Si le bucket de stockage dans le cloud que vous utilisez n'est pas Cloud Storage de Google, créez un bucket Cloud Storage pour stocker les journaux d'erreurs de vos jobs.
Compatibilité et limites
L'importation de fichiers Parquet dans un stockage dans le cloud vers Lakehouse à l'aide de Dataflow présente les limites suivantes :
- Les données sources doivent être au format Apache Parquet et stockées dans Cloud Storage, Amazon S3 ou Azure Blob Storage.
- Cette fonctionnalité n'est compatible qu'avec les pipelines par lots.
Importer des fichiers Parquet dans Lakehouse
Suivez les étapes ci-dessous pour importer des fichiers Parquet depuis un stockage dans le cloud vers une table Iceberg dans Lakehouse à l'aide de l'UI du générateur de jobs Dataflow.
Dans la console Google Cloud , accédez à la page 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 des fichiers Apache Parquet (lot).
La page Job Builder Dataflow s'ouvre.
Dans la section Sources :
Ouvrez l'entrée source CreateGlobalInput déjà créée.
Dans la section de l'éditeur Configuration de la source YAML, saisissez un ou plusieurs chemins d'accès à vos fichiers Parquet dans la séquence
elements.Pour améliorer l'efficacité de l'importation, spécifiez plusieurs ensembles de fichiers (globs) lorsque vous enregistrez un grand nombre de fichiers. Exemple :
reshuffle: true elements: - gs://BUCKET_NAME/restaurant-data/2023/*.parquet - gs://BUCKET_NAME/restaurant-data/2024/*.parquetCliquez sur OK.
Dans la section Transformations :
Cliquez sur la section de transformation IcebergAddFiles pour l'ouvrir.
Dans le champ Table Iceberg, saisissez l'espace de noms et le nom de la table. Par exemple : NAMESPACE .TABLE_NAME .
Sous Propriétés du catalogue, configurez les éléments suivants :
warehouse : emplacement Cloud Storage de votre catalogue. Exemple :
gs://CATALOG_PATHheader.x-goog-user-project : ID de votre projet Google Cloud :PROJECT_ID.
Cliquez sur OK.
Si vous migrez depuis Amazon S3 ou Azure Blob Storage, vous devez fournir des configurations supplémentaires pour copier les fichiers Parquet vers Cloud Storage. Cette étape n'est pas nécessaire si vos fichiers se trouvent déjà dans Cloud Storage.
Cliquez sur la section de transformation CopyFilesToGCS pour l'ouvrir.
Définissez la valeur du paramètre de configuration gcs_file_path pour fournir le bucket Cloud Storage complet dans lequel copier les fichiers temporaires. Nous vous recommandons d'utiliser le même bucket Cloud Storage que celui utilisé par l'entrepôt Lakehouse.
Cliquez sur OK.
Cliquez sur la section Options Dataflow pour l'ouvrir.
Si vos fichiers Parquet se trouvent dans Amazon S3, cliquez sur Ajouter des options de pipeline supplémentaires pour fournir à Apache Beam des options de pipeline liées à S3. Par exemple, s3_region_name, s3_access_key_id, s3_secret_access_key et leurs valeurs correspondantes.
Si vos fichiers Parquet se trouvent dans Azure Blob Storage, cliquez sur Ajouter des options de pipeline pour fournir à Apache Beam des options de pipeline liées à Azure. Par exemple, azure_connection_string, blob_service_endpoint, azure_managed_identity_client_id et leurs valeurs correspondantes.
Dans la section Destinations :
Cliquez sur le récepteur Écrire les résultats pour l'ouvrir.
Dans le champ Emplacement du fichier JSON, spécifiez l'emplacement Cloud Storage et le nom du fichier dans lequel écrire les résultats des erreurs. Exemple :
gs://BUCKET_NAME/errors/errors.jsonCliquez sur OK.
Dans la section Options Dataflow, cliquez sur Exécuter le job.
Si vous devez personnaliser davantage le pipeline Dataflow utilisé pour enregistrer les fichiers Parquet, 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é enregistrées dans la table Iceberg 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 le fichier journal des erreurs JSON dans Cloud Storage 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 effectuer des requêtes.SELECT * FROM `PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAME` LIMIT 10Cliquez sur Exécuter.
Examinez les résultats de la requête pour vous assurer que les données ont été traitées correctement.
Étapes suivantes
- Pour en savoir plus, consultez À propos du catalogue d'environnements d'exécution Lakehouse.
- Pour en savoir plus, consultez Présentation de l'UI du générateur de jobs Dataflow.