Importer des fichiers Parquet depuis le stockage vers Lakehouse sans bordures à l'aide de Dataflow

Vous pouvez utiliser un blueprint de générateur de jobs Dataflow pour ajouter des fichiers Apache Parquet existants à partir d'un stockage cloud (Cloud Storage, Amazon S3 ou Azure Blob Storage) à une table Apache Iceberg dans Lakehouse sans bordure.

Ce processus utilise la IcebergAddFiles transformation. 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 à partir d'un stockage cloud à une table Apache Iceberg dans Lakehouse.

Avant de commencer

  1. Activez les API Dataflow, BigQuery et Lakehouse.

  2. 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.

  3. Créez un catalogue, un espace de noms et une table Lakehouse dans lesquels importer les données.

  4. Créez un bucket de stockage cloud (Cloud Storage, Amazon S3 ou Azure Blob Storage) et importez-y vos fichiers Parquet.

  5. Si le bucket de stockage cloud que vous utilisez n'est pas Cloud Storage de Google, créez un bucket Cloud Storage pour stocker les journaux d'erreurs de votre job.

Compatibilité et limites

L'importation de fichiers Parquet dans un stockage 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

Procédez comme suit pour importer des fichiers Parquet à partir d'un stockage cloud dans une table Iceberg de Lakehouse à l'aide de l'interface utilisateur du générateur de jobs Dataflow.

  1. Dans la Google Cloud console, accédez à la page Lakehouse.

    Accéder à Lakehouse

  2. Sélectionnez le catalogue, l'espace de noms et la table dans lesquels vous souhaitez importer des données.

  3. Sur la page Détails de la table, cliquez sur Importer la table, puis sélectionnez À partir de fichiers Apache Parquet (lot).

    La page Générateur de jobs Dataflow s'ouvre.

  4. Dans la section Sources :

    1. Ouvrez l'entrée source CreateGlobalInput déjà créée.

    2. 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/*.parquet
      
    3. Cliquez sur OK.

  5. Dans la section Transformations :

    1. Cliquez sur la section de transformation IcebergAddFiles pour l'ouvrir.

    2. Dans le champ Table Iceberg, saisissez l'espace de noms et le nom de la table. Exemple : NAMESPACE .TABLE_NAME .

    3. Sous Propriétés du catalogue, configurez les éléments suivants :

      1. warehouse : emplacement Cloud Storage de votre catalogue. Par exemple, gs://CATALOG_PATH.

      2. header.x-goog-user-project: Votre Google Cloud ID du projet:PROJECT_ID.

      3. Cliquez sur OK.

    4. Si vous effectuez une migration depuis Amazon S3 ou Azure Blob Storage, vous devez fournir des configurations supplémentaires pour copier les fichiers Parquet dans Cloud Storage. Cela n'est pas nécessaire si vos fichiers se trouvent déjà dans Cloud Storage.

      1. Cliquez sur la section de transformation CopyFilesToGCS pour l'ouvrir.

      2. 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.

      3. Cliquez sur OK.

      1 Cliquez sur la section Options Dataflow pour l'ouvrir.

      1. Si vos fichiers Parquet se trouvent dans Amazon S3, cliquez sur Ajouter des options de pipeline supplémentaires pour fournir les options de pipeline Apache Beam liées à S3. Par exemple, s3_region_name, s3_access_key_id, s3_secret_access_key et leurs valeurs correspondantes.

      2. Si vos fichiers Parquet se trouvent dans Azure Blob Storage, cliquez sur Ajouter des options de pipeline supplémentaires pour fournir les options de pipeline Apache Beam liées à Azure. Par exemple, azure_connection_string, blob_service_endpoint, azure_managed_identity_client_id et leurs valeurs correspondantes.

  6. Dans la section Récepteurs :

    1. Cliquez sur le récepteur Écrire les résultats pour l'ouvrir.

    2. Dans le champ Emplacement JSON, spécifiez l'emplacement Cloud Storage et le nom de fichier dans lesquels écrire les résultats d'erreur. Exemple :

      gs://BUCKET_NAME/errors/errors.json
      
    3. Cliquez sur OK.

  7. 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.

  1. Dans la liste des jobs Dataflow, vérifiez que l'état du job est Réussi.

    Accéder aux tâches

  2. Si le job échoue ou comporte des erreurs, consultez le fichier journal d'erreurs JSON dans Cloud Storage pour en savoir plus.

    Accéder à la page "Buckets"

  3. Dans la Google Cloud console, accédez à la page BigQuery Studio.

    Accéder à BigQuery

  4. Dans l'éditeur de requête, saisissez une requête SQL pour inspecter la table. Vous pouvez utiliser PROJECT_ID.CATALOG>NAMESPACE.TABLE_NAME convention pour effectuer une requête.

    SELECT * FROM `PROJECT_ID.CATALOG>NAMESPACE.TABLE_NAME` LIMIT 10
    
  5. Cliquez sur Exécuter.

  6. Consultez les résultats de la requête pour vous assurer que les données ont été traitées correctement.

Étape suivante