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 allez apprendre à exécuter l'exemple de workflow export-jobs et à afficher les informations sur le job 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 pour les analyser en dehors de Batch. Si vous souhaitez exporter uniquement les informations sur les changements d'état des tâches et des jobs vers BigQuery, consultez plutôt Surveiller les jobs à l'aide des notifications.
Pour savoir comment exporter les informations sur les tâches stockées dans d'autres servicesGoogle Cloud , consultez la documentation sur l'exportation de ce service. Par exemple, consultez les pages suivantes :
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez Premiers pas avec Batch et activez Batch en remplissant les conditions préalables pour les projets et les utilisateurs.
-
Enable the BigQuery and Workflows APIs.
Facultatif : Identifiez un ensemble de données ou une table BigQuery existants dans votre projet où vous souhaitez stocker les informations sur le job. Une table existante doit avoir un schéma correspondant.
Sinon, vous pouvez utiliser le workflow des tâches d'exportation pour créer un ensemble de données ou une table.
-
Préparez un compte de service pour le workflow d'exportation des jobs en procédant comme suit :
- Créez un compte de service ou identifiez un compte de service existant.
-
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 au compte de service les rôles IAM suivants sur le projet :
-
Écrire des journaux :
Rédacteur de journaux (
roles/logging.logWriter
) -
Créer et modifier des ensembles de données et des tables BigQuery :
Administrateur BigQuery (
roles/bigquery.admin
) -
Afficher et supprimer des jobs Batch :
Éditeur de tâches par lot (
roles/batch.jobsEditor
)
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.
-
Écrire des journaux :
Rédacteur de journaux (
-
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 sur le projet :
-
Afficher les tâches :
Lecteur de tâches par lot (
roles/batch.jobsViewer
) -
Afficher les comptes de service :
Afficher les comptes de service (
roles/iam.serviceAccountViewer
) -
Pour afficher les ensembles de données et les tables BigQuery :
Lecteur de données BigQuery (
roles/bigquery.dataViewer
) -
Créer, déployer et exécuter des workflows :
Éditeur de workflows (
roles/workflows.editor
)
-
Afficher les tâches :
Lecteur de tâches par lot (
-
Assurez-vous que les utilisateurs de votre projet peuvent afficher les informations sur le job exporté.
Pour vous assurer qu'un utilisateur dispose des autorisations nécessaires pour exporter les informations sur les jobs, 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 les informations sur les tâches
Cette section explique comment exporter des informations sur les jobs à l'aide du workflow export-jobs, qui provient de l'exemple de code export-to-bigquery
.
Le workflow export-jobs exporte les informations sur les 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 d'exportation des jobs exporte les informations sur les jobs vers une table spécifiée dans un ensemble de données spécifié. Ces éléments 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 :
- Configurer la définition du workflow.
- Créez et déployez le workflow.
- 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
Téléchargez le fichier
export-to-bigquery-delete-batch-jobs.yaml
depuis GitHub.Ouvrez le fichier
export-to-bigquery-delete-batch-jobs.yaml
dans un éditeur de texte. Ensuite, apportez les modifications suivantes :Remplacez
sys.get_env("GOOGLE_CLOUD_PROJECT_ID")
par l'ID de votre projet au format chaîne, par exemple"my-project-id"
.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"
).Facultatif : Modifiez les critères de filtrage qui spécifient les tâches à exporter.
Par défaut, le workflow export-jobs spécifie les critères de filtre
"(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 à l'étatSUCCEEDED
,FAILED
ouCANCELLED
, et qui ont été créés avant ou à la date et heure2023-05-01T00:00:00Z
du code temporel RFC 3339.Facultatif : Remplacez
default_dataset_id
par un autre nom pour l'ensemble de données que vous souhaitez que le workflow de jobs d'exportation utilise ou crée.Facultatif : Remplacez
default_table_id
par un autre nom de table que vous souhaitez que le workflow des jobs d'exportation utilise ou crée.Si vous ne souhaitez pas que le workflow supprime les jobs exportés, procédez comme suit :
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}
Supprimez
+ " and deleted"
.
Enregistrez le fichier. Laissez le fichier ouvert.
Créer et déployer le workflow
Dans la console Google Cloud , accédez à la page Workflows :
Sur la page Workflows, cliquez sur
Créer.Dans le champ Nom du workflow, saisissez un nom pour le workflow (par exemple,
export-batch-jobs-us-central1
).Dans la liste Compte de service, sélectionnez le compte de service que vous avez préparé.
Cliquez sur Suivant.
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.Cliquez sur Déployer. La page Détails du workflow s'ouvre.
Exécuter le workflow
Sur la page Détails du workflow, cliquez sur
Exécuter. La page Exécuter le workflow s'ouvre.Sur la page Exécuter le workflow qui s'ouvre, cliquez sur Exécuter.
Sur la page Détails de l'exécution qui s'ouvre, attendez que le workflow ait fini de s'exécuter. Par exemple, le temps d'exécution pour exporter et supprimer quelques jobs est généralement de quelques secondes, mais il peut être plus long si vous exportez et supprimez de nombreux jobs.
Une fois le workflow exécuté, le volet Output (Sortie) affiche les résultats.
Afficher les informations sur le job exporté
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 du tableau. Pour savoir comment afficher et utiliser les informations sur les tâches exportées, par exemple pour écrire des requêtes, consultez Gérer les données de table dans la documentation BigQuery.
Dans la console Google Cloud , accédez à la page BigQuery.
Dans le panneau Explorateur, ouvrez le tableau contenant les informations sur votre tâche exportée :
- Dans le champ Rechercher des ressources BigQuery, saisissez le nom de la table issue de votre workflow de tâches d'exportation. Par exemple, le nom de table par défaut est
default_table_id
. - Cliquez sur le nom de la table. La page d'informations sur la table s'ouvre.
Sur la page "Détails de la table", cliquez sur l'onglet Détails.
Dans l'onglet Détails, notez l'horodatage Dernière modification et le Nombre de lignes.
Sur la page "Détails de la table", cliquez sur l'onglet Aperçu.
- Dans le champ Rechercher des ressources BigQuery, saisissez le nom de la table issue de votre workflow de tâches d'exportation. Par exemple, le nom de table par défaut est
Étapes suivantes
- Apprenez-en davantage sur Workflows.
- Obtenez des informations supplémentaires sur BigQuery.
- En savoir plus sur Batch :