Exporter les informations sur les tâches

Cette page explique comment exporter les informations de vos jobs stockées dans Batch vers une table BigQuery à l'aide de Workflows. Plus précisément, vous découvrirez comment exécuter l'exemple de workflow export-jobs et comment afficher les informations de job résultantes dans BigQuery.

L'exportation des informations d'un job est utile lorsque vous souhaitez les conserver après la suppression automatique ou manuelle d'un job ou les analyser en dehors de Batch. Si vous ne souhaitez exporter que les informations sur les modifications d'état des tâches et des jobs vers BigQuery, consultez Surveiller les jobs à l'aide de notifications plutôt.

Pour savoir comment exporter des informations de job stockées dans d'autres Google Cloud services, consultez la documentation d'exportation de ce service. Par exemple, consultez les pages suivantes :

Avant de commencer

  1. Si vous n'avez jamais utilisé Batch, consultez Premiers pas avec Batch et activez Batch en remplissant les prérequis pour les projets et les utilisateurs.
  2. Activez les API BigQuery et Workflows.

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    Activer les API

  3. Facultatif : identifiez un ensemble de données ou une table BigQuery existant dans votre projet dans lequel vous souhaitez stocker les informations du job. Une table existante doit avoir un schéma correspondant.

    Sinon, vous pouvez utiliser le workflow export-jobs pour créer un ensemble de données ou une table.

  4. Préparez un compte de service pour le workflow export-jobs en procédant comme suit :

    1. Créez un compte de service ou identifiez-en un existant.
    2. Pour vous assurer que le compte de service dispose des autorisations nécessaires pour exécuter le workflow export-jobs, demandez à votre administrateur d'accorder les rôles IAM suivants au compte de service dans le projet :

      Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

      Votre administrateur peut également attribuer au compte de service les autorisations requises à l'aide de rôles personnalisés ou d'autres rôles prédéfinis.

  5. Pour obtenir les autorisations nécessaires pour créer, déployer et exécuter le workflow export-jobs, demandez à votre administrateur de vous accorder les rôles IAM suivants dans le projet :

  6. Assurez-vous que les utilisateurs de votre projet peuvent afficher les informations de job exportées.

    Pour vous assurer qu'un utilisateur dispose des autorisations nécessaires pour exporter des informations de job, demandez à votre administrateur de lui accorder le rôle IAM Lecteur de données BigQuery (roles/bigquery.dataViewer) sur la table, l'ensemble de données ou le projet.

Exporter des informations de job

Cette section explique comment exporter des informations de job à l'aide du workflow export-jobs, qui provient de l'exemple de code export-to-bigquery. Le workflow export-jobs exporte les informations des jobs de votre projet qui se trouvent dans la région spécifiée et qui répondent aux critères de filtrage spécifiés.

Le workflow export-jobs exporte les informations de job vers une table spécifiée dans un ensemble de données spécifié, qui sont créés automatiquement par le workflow s'ils n'existent pas déjà dans votre projet. Par défaut, le workflow export-jobs supprime également les jobs exportés de Batch, mais vous pouvez éventuellement modifier le workflow export-jobs pour ne pas supprimer les jobs.

Pour chaque workflow export-jobs que vous souhaitez utiliser, procédez comme suit :

  1. Configurez la définition du workflow.
  2. Créez et déployez le workflow.
  3. Exécutez le workflow. Répétez cette étape chaque fois que vous souhaitez exporter les jobs spécifiés.

Configurer la définition du workflow

  1. Téléchargez le export-to-bigquery-delete-batch-jobs.yaml fichier depuis GitHub.

  2. Ouvrez le fichier export-to-bigquery-delete-batch-jobs.yaml dans un éditeur de texte. Effectuez ensuite les modifications suivantes :

    1. Remplacez sys.get_env("GOOGLE_CLOUD_PROJECT_ID") par l'ID de votre projet au format chaîne, par exemple "my-project-id".

    2. Remplacez sys.get_env("GOOGLE_CLOUD_LOCATION") par la région contenant les jobs que vous souhaitez exporter, au format chaîne, par exemple "us-central1".

    3. Facultatif : modifiez les critères de filtrage qui spécifient les jobs à exporter.

      Par défaut, le workflow export-jobs spécifie les critères de filtrage "(status.state:SUCCEEDED OR status.state:FAILED OR status.state:CANCELLED) AND create_time<=\"2023-05-01T00:00:00Z\"". Ces critères de filtrage par défaut n'exportent des informations que pour les jobs dont l'état est SUCCEEDED, FAILED ou CANCELLED, et qui ont été créés avant ou par le 2023-05-01T00:00:00Z code temporel RFC 3339.

    4. Facultatif : remplacez default_dataset_id par un autre nom pour l'ensemble de données que vous souhaitez que le workflow export-jobs utilise ou crée.

    5. Facultatif : remplacez default_table_id par un autre nom pour la table que vous souhaitez que le workflow export-jobs utilise ou crée.

    6. Si vous ne souhaitez pas que les jobs exportés soient supprimés par le workflow, procédez comme suit :

      1. Supprimez les lignes suivantes :

                - log_delete_step:
                    call: sys.log
                    args:
                      text: ${"Deleting Batch job " + j.name}
                      severity: NOTICE
                - delete_job:
                    call: googleapis.batch.v1.projects.locations.jobs.delete
                    args:
                      name: ${j.name}
        
      2. Supprimez + " and deleted".

    7. Enregistrez le fichier. Laissez le fichier ouvert.

Créer et déployer le workflow

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

    Accéder à "Workflows"

  2. Sur la page Workflows, cliquez sur Créer.

  3. Dans le champ Nom du workflow, saisissez un nom pour le workflow, par exemple export-batch-jobs-us-central1.

  4. Dans la liste Compte de service, sélectionnez le compte de service que vous avez préparé.

  5. Cliquez sur Suivant.

  6. Dans l'éditeur de workflow, remplacez l'exemple de workflow par le contenu du fichier export-to-bigquery-delete-batch-jobs.yaml. Vous pouvez ensuite fermer le fichier.

  7. Cliquez sur Déployer. La page Détails du workflow s'ouvre.

Exécuter le workflow

  1. Sur la page Détails du workflow, cliquez sur Exécuter. La page Exécuter le workflow s'ouvre.

  2. Sur la page Exécuter le workflow qui s'ouvre, cliquez sur Exécuter.

  3. Sur la page Détails de l'exécution qui s'ouvre, attendez que le workflow ait terminé son exécution. Par exemple, le temps d'exécution pour exporter et supprimer quelques jobs est généralement de quelques secondes, mais l'exécution peut prendre plus de temps si vous exportez et supprimez de nombreux jobs.

    Une fois l'exécution du workflow terminée, le volet Output (Sortie) affiche les résultats.

Afficher les informations de job exportées

Cette section explique comment afficher les données de table créées par le workflow export-jobs. Par exemple, vous pouvez suivre les étapes ci-dessous pour vérifier que le workflow a été exécuté correctement et parcourir les données de la table. Pour en savoir plus sur l'affichage et l'utilisation des informations de job exportées, par exemple pour écrire des requêtes, consultez Gérer les données de table dans la documentation BigQuery.

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

    Accéder à BigQuery

  2. Dans le panneau Explorateur, ouvrez la table contenant les informations de job exportées :

    1. Dans le champ Rechercher des ressources BigQuery, saisissez le nom de la table de votre workflow export-jobs. Par exemple, le nom de table par défaut est default_table_id.
    2. Cliquez sur le nom de la table. La page des détails de la table s'ouvre.
    3. Sur la page des détails de la table, cliquez sur l'onglet Détails.

      Dans l'onglet Détails, notez le code temporel Dernière modification et le Nombre de lignes.

    4. Sur la page des détails de la table, cliquez sur l'onglet Aperçu.

Étape suivante