Importer des fichiers Parquet dans le stockage vers le catalogue d'exécution Lakehouse à 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 ou Amazon S3) à une table Apache Iceberg dans Lakehouse.

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 Lakehouse pour Apache Iceberg pour le catalogue, l'espace de noms et la table dans lesquels importer les données.

  4. Créez un bucket de stockage cloud (Cloud Storage ou Amazon S3) 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 pour Apache Iceberg à 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 ou Amazon S3.
  • 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 dans 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 for Apache Iceberg.

    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 Table details (Détails de la table), cliquez sur Import table (Importer la table).

  4. Dans la boîte de dialogue Import configuration (Configuration de l'importation), sélectionnez Import a table from an Apache Parquet files into Lakehouse (Batch) (Importer une table à partir de fichiers Apache Parquet dans Lakehouse (lot)).

    La page Job builder (Générateur de jobs) Dataflow s'ouvre.

  5. Dans la section Sources :

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

    2. Dans la section de l'éditeur YAML source configuration (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.

  6. Dans la section Transforms (Transformations) :

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

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

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

      1. warehouse : emplacement Cloud Storage de votre catalogue. 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 S3, 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 Dataflow Options (Options Dataflow) pour l'ouvrir.

      1. Cliquez sur add additional pipeline options (Ajouter des options de pipeline supplémentaires) pour fournir des options de pipeline Apache Beam pipeline options liées à S3. Par exemple, s3_region_name, s3_access_key_id, s3_secret_access_key et leurs valeurs correspondantes.
  7. Dans la section Sinks (Récepteurs) :

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

    2. Dans le champ JSON location (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.

  8. Dans la section Dataflow Options (Options Dataflow), cliquez sur Run job (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 Succeeded (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 la 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