Cette page explique comment exporter les informations de vos tâches stockées dans Batch vers une table BigQuery à l'aide de workflows. Plus précisément, découvrez comment exécuter l'exemple de workflow export-jobs et afficher les informations de tâche générées dans BigQuery.
L'exportation des informations d'un job est utile lorsque vous souhaitez conserver les informations après la suppression automatique ou manuelle d'un job, ou analyser les informations en dehors de Batch. Si vous exporter uniquement les informations sur le changement d'état des tâches BigQuery, consultez Surveiller les tâches à l'aide de notifications à la place.
Pour savoir comment exporter les informations d'un job stockées dans d'autres services Google 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 auparavant, consultez Premiers pas avec Batch et activez Batch en suivant la 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 existant dans votre projet dans lequel vous souhaitez stocker les informations sur le 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.
-
Préparez un compte de service pour le workflow d'exportation des tâches 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 les 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 tâches par lot :
Éditeur de tâches par lot (
roles/batch.jobsEditor
)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Votre administrateur peut aussi attribuer au compte de service les autorisations requises à l'aide d'outils personnalisés rôles ou autres prédéfinis rôles.
-
Écrire des journaux :
Rédacteur de journaux (
-
Pour obtenir les autorisations nécessaires pour créer, déployer et exécuter le workflow d'exportation des 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
) -
Afficher des ensembles de données et des 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 consulter les informations sur les jobs exportés.
Pour vous assurer qu'un utilisateur dispose des autorisations nécessaires pour exporter des 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.
Informations sur le job d'exportation
Cette section explique comment exporter les informations d'un job à l'aide de la classe
export-jobs, provenant du
Exemple de code export-to-bigquery
.
Le workflow d'exportation des tâches exporte les informations correspondant aux jobs de votre projet qui
se trouvent dans la région spécifiée et répondent aux critères de filtre spécifiés.
Le workflow d'exportation des tâches exporte les informations du job vers une table spécifiée dans un ensemble de données spécifié, qui sont automatiquement créés par le workflow s'ils n'existent pas déjà dans votre projet. Par défaut, le workflow d'exportation de jobs supprime les jobs exportés de Batch, mais vous pouvez éventuellement modifier le workflow d'exportation des jobs pour ne pas supprimer les jobs ;
Pour chaque workflow d'exportation de tâches que vous souhaitez utiliser, procédez comme suit :
- Configurez 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 tâches spécifiées.
Configurer la définition du workflow
Téléchargez le
export-to-bigquery-delete-batch-jobs.yaml
de GitHub.Ouvrez le fichier
export-to-bigquery-delete-batch-jobs.yaml
dans un éditeur de texte. Apportez ensuite 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 tâches que vous souhaitez exporter, au format chaîne (par exemple,"us-central1"
).(Facultatif) Modifiez les critères de filtrage qui spécifient les offres d'emploi à exporter.
Par défaut, le workflow export-jobs spécifie les critères de filtre
"(status.state:SUCCEEDED OR status.state:FAILED) AND create_time<=\"2023-05-01T00:00:00Z\""
Ces critères de filtrage par défaut n'exportent des informations que pour les tâches qui sont dans l'étatSUCCEEDED
ouFAILED
et qui ont été créées avant ou à l'horodatage RFC 33392023-05-01T00:00:00Z
.Facultatif: Remplacez
default_dataset_id
par un autre nom pour le que le workflow d'exportation de tâches doit utiliser ou créer.Facultatif : remplacez
default_table_id
par un autre nom de la table que vous souhaitez que le workflow d'exportation de tâches utilise ou crée.Si vous ne souhaitez pas que les tâches exportées soient supprimées par le workflow, 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 Google Cloud Console, accédez à la page Workflows :
Sur la page Workflows (Workflows), cliquez sur
Create (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 par le contenu de le 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'affiche, cliquez sur Exécuter.
Sur la page Détails de l'exécution qui s'affiche, attendez que le workflow terminer son exécution. Par exemple, l'exécution pour exporter et supprimer quelques tâches prend généralement quelques secondes, mais elle peut prendre plus de temps si vous exportez et supprimez de nombreuses tâches.
Une fois l'exécution du workflow terminée, le volet Output (Sortie) affiche les résultats.
Afficher les informations sur la tâche exportée
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 bien été exécuté et parcourir les données du tableau. Pour en savoir plus sur comment afficher et utiliser les informations de votre job exporté, comme la rédaction de requêtes, consultez Gérer les données de table dans le dans la documentation BigQuery.
Dans la console Google Cloud, accédez à la page BigQuery.
Dans le panneau Explorer, ouvrez le tableau des informations sur les tâches exportées :
- Dans le champ Rechercher des ressources BigQuery, saisissez le nom de la table de votre workflow d'exportation de tâches. Par exemple, la valeur par défaut
nom de la table :
default_table_id
. - Cliquez sur le nom de la table. La page "Détails de la table" s'ouvre.
Sur la page "Détails de la table", cliquez sur l'onglet Details (Détails).
Dans l'onglet Détails, notez le code temporel Dernière modification et le Nombre de lignes.
Sur la page "Détails de la table", cliquez sur l'onglet Preview (Aperçu).
- Dans le champ Rechercher des ressources BigQuery, saisissez le nom de la table de votre workflow d'exportation de tâches. Par exemple, la valeur par défaut
nom de la table :
Étape suivante
- Apprenez-en davantage sur Workflows.
- Obtenez des informations supplémentaires sur BigQuery.
- Apprenez-en davantage sur Batch: