Gérer les tâches

Après avoir envoyé une tâche BigQuery, vous pouvez afficher les données de la tâche, répertorier les tâches, annuler la tâche ou la relancer.

Une fois envoyée, une tâche peut être déterminée par l'un des trois états suivants :

  • PENDING – planifiée
  • RUNNING
  • DONE – signalée comme SUCCESS ou FAILURE (si la tâche s'est terminée avec des erreurs)

Afficher les données de la tâche

Vous pouvez afficher les données et les métadonnées de la tâche à l'aide de Cloud Console, de l'UI Web classique, de la CLI et de l'API. Ces données incluent des détails comprenant le type de la tâche, l'état de la tâche et l'utilisateur qui a exécuté la tâche.

Autorisations requises

Pour obtenir les données et les métadonnées de la tâche, vous devez au minimum disposer des autorisations bigquery.jobs.get. Le rôle Cloud IAM prédéfini suivant inclut les autorisations bigquery.jobs.get :

  • bigquery.admin

Si vous accordez à un compte le rôle bigquery.admin, l'utilisateur pourra afficher toutes les données de tâche du projet, indépendamment de l'utilisateur ayant envoyé la tâche.

Les rôles suivants disposent des autorisations bigquery.jobs.get pour les tâches créées par vos utilisateurs. Ces utilisateurs ne sont autorisés à afficher les données de tâches que pour les tâches qu'ils envoient :

  • bigquery.user
  • bigquery.jobUser

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Contrôle des accès.

Afficher des informations sur les tâches

Pour afficher des informations sur une tâche, veuillez procéder comme suit :

Console

  1. Dans le volet de navigation, cliquez sur Historique des tâches ou sur Historique des requêtes pour afficher des informations sur les tâches de requête.

  2. Cliquez sur Historique personnel pour afficher les détails de vos tâches. Cliquez sur Historique du projet pour afficher les détails de toutes les tâches exécutées dans le projet.

UI classique

  1. Dans le volet de navigation, cliquez sur Historique des tâches ou sur Historique des requêtes pour afficher des informations sur les tâches de requête.

  2. Dans la section Tâches récentes, cliquez sur la tâche pour en afficher les détails. Pour les tâches de requête, cliquez sur l'onglet Historique des requêtes pour afficher les détails des tâches.

CLI

Exécutez la commande bq show avec l'option -j et le paramètre job_id.

Lorsque vous fournissez l'ID de la tâche, vous pouvez l'utiliser sous sa forme complète ou abrégée. Par exemple, les ID de tâches répertoriés dans l'UI Web de BigQuery sont complets. Ils incluent le projet et l'emplacement :

my-project-1234:US.bquijob_123x456_123y123z123c

Les ID de tâches dans l'outil de ligne de commande sont répertoriés sous forme abrégée. L'ID et l'emplacement du projet ne sont pas inclus :

bquijob_123x456_123y123z123c

Pour spécifier l'emplacement de la tâche, définissez l'option --location sur la valeur correspondant à votre emplacement. Cette option est facultative si vous utilisez l'ID de tâche complet. Si vous incluez l'option --location et que vous utilisez l'ID de tâche complet, l'option --location est ignorée.

La commande suivante demande des informations sur une tâche :

bq --location=location show -j job_id

Où :

  • location est facultatif. Il s'agit du nom de l'emplacement dans lequel la tâche est exécutée. Par exemple, si vous utilisez BigQuery dans la région de Tokyo, vous pouvez définir la valeur de l'option sur asia-northeast1. Vous pouvez définir une valeur par défaut correspondant à l'emplacement en utilisant le fichier .bigqueryrc.
  • job_id est l'ID de la tâche.

Exemples :

La commande suivante permet d'obtenir des informations récapitulatives sur la tâche US.bquijob_123x456_123y123z123c exécutée dans myproject.

bq show -j myproject:US.bquijob_123x456_123y123z123c

La sortie ressemble à ceci :

 Job Type    State      Start Time      Duration      User Email       Bytes Processed   Bytes Billed   Billing Tier   Labels
 ---------- --------- ----------------- ---------- ------------------- ----------------- -------------- -------------- --------
 extract    SUCCESS   06 Jul 11:32:10   0:01:41    user@example.com

Pour afficher tous les détails de la tâche, renseignez la ligne suivante :

bq show --format=prettyjson -j myproject:US.bquijob_123x456_789y123z456c

La sortie ressemble à ceci :

{
  "configuration": {
    "extract": {
      "compression": "NONE",
      "destinationUri": "[URI removed]",
      "destinationUris": [
        "[URI removed]"
      ],
      "sourceTable": {
        "datasetId": "github_repos",
        "projectId": "bigquery-public-data",
        "tableId": "commits"
      }
    }
  },
  "etag": "\"[etag removed]\"",
  "id": "myproject:bquijob_123x456_789y123z456c",
  "jobReference": {
    "jobId": "bquijob_123x456_789y123z456c",
    "projectId": "[Project ID removed]"
  },
  "kind": "bigquery#job",
  "selfLink": "https://www.googleapis.com/bigquery/v2/projects/federated-testing/jobs/bquijob_123x456_789y123z456c",
  "statistics": {
    "creationTime": "1499365894527",
    "endTime": "1499365894702",
    "startTime": "1499365894702"
  },
  "status": {
    "errorResult": {
      "debugInfo": "[Information removed for readability]",
      "message": "Operation cannot be performed on a nested schema. Field: author",
      "reason": "invalid"
    },
    "errors": [
      {
        "message": "Operation cannot be performed on a nested schema. Field: author",
        "reason": "invalid"
      }
    ],
    "state": "DONE"
  },
  "user_email": "user@example.com"
}

API

Appelez jobs.get, puis indiquez les paramètres jobId et projectId. (Facultatif) Fournissez le paramètre location et définissez la valeur sur l'emplacement dans lequel la tâche est exécutée. Ce paramètre est facultatif si vous utilisez l'ID de tâche complet qui inclut l'emplacement, par exemple my-project-1234:US.bquijob_123x456_123y123z123c.

Go

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Go décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API BigQuery Go.

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/bigquery"
)

// getJobInfo demonstrates retrieval of a job, which can be used to monitor
// completion or print metadata about the job.
func getJobInfo(w io.Writer, projectID, jobID string) error {
	// projectID := "my-project-id"
	// jobID := "my-job-id"
	ctx := context.Background()

	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}

	job, err := client.JobFromID(ctx, jobID)
	if err != nil {
		return err
	}

	status := job.LastStatus()
	state := "Unknown"
	switch status.State {
	case bigquery.Pending:
		state = "Pending"
	case bigquery.Running:
		state = "Running"
	case bigquery.Done:
		state = "Done"
	}
	fmt.Fprintf(w, "Job %s was created %v and is in state %s\n",
		jobID, status.Statistics.CreationTime, state)
	return nil
}

Node.js

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Node.js décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery en langage Node.js.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function getJob() {
  // Get job properties.

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const jobId = "existing-job-id";

  // Create a job reference
  const job = bigquery.job(jobId);

  // Retrieve job
  const [jobResult] = await job.get();

  console.log(jobResult.metadata.jobReference);
}

Python

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Python décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery en langage Python.

# TODO(developer): Uncomment the lines below and replace with your values.
# from google.cloud import bigquery
# client = bigquery.Client()
# job_id = 'bq-job-123x456-123y123z123c'  # replace with your job ID
# location = 'us'                         # replace with your location

job = client.get_job(job_id, location=location)  # API request

# Print selected job properties
print("Details for job {} running in {}:".format(job_id, location))
print(
    "\tType: {}\n\tState: {}\n\tCreated: {}".format(
        job.job_type, job.state, job.created
    )
)

Répertorier les tâches dans un projet

Votre projet conserve un historique pour toutes les tâches créées au cours des six derniers mois. Pour demander la suppression automatique des tâches datant de plus de 50 jours, contactez l'assistance.

Vous pouvez afficher l'historique de vos tâches BigQuery par les moyens suivants :

  • En utilisant Google Cloud Console ou l'UI Web classique
  • En utilisant la CLI
  • En appelant la méthode API jobs.list
  • En utilisant les bibliothèques clientes

L'historique des tâches comprend les tâches à l'état RUNNING et DONE (indiqué par le signalement de l'état SUCCESS ou FAILURE).

Autorisations requises

Pour répertorier les tâches, vous devez au minimum disposer des autorisations bigquery.jobs.list. Les rôles Cloud IAM prédéfinis suivants incluent les autorisations bigquery.jobs.list :

  • bigquery.user
  • bigquery.admin

Le rôle suivant ne dispose des autorisations bigquery.jobs.list que pour les tâches que vous avez créées. Les entités auxquelles ce rôle est attribué ne peuvent répertorier que les tâches qu'elles envoient :

  • bigquery.jobUser

Lorsque vous disposez des autorisations bigquery.jobs.list, vous pouvez répertorier toutes les tâches d'un projet. Toutefois, les détails et les métadonnées des tâches envoyées par d'autres utilisateurs sont masqués. Les autorisations bigquery.jobs.list ne vous permettent d'afficher que les détails des tâches que vous avez créées.

Pour répertorier toutes les tâches, y compris les détails de celles créées par d'autres utilisateurs, vous devez disposer des autorisations bigquery.jobs.listAll. Seul le rôle bigquery.admin possède des autorisations bigquery.jobs.listAll.

Pour en savoir plus sur les rôles et les autorisations Cloud IAM dans BigQuery, consultez la page Rôles et autorisations prédéfinis.

Répertorier les tâches

Lorsque vous répertoriez des tâches dans un projet, il est inutile de fournir une zone. Actuellement, les tâches sont répertoriées pour tous les emplacements.

Pour répertorier les tâches dans un projet, veuillez procéder comme suit :

Console

  1. Dans le volet de navigation, cliquez sur Historique des tâches.

  2. Dans la section Historique personnel, vos tâches sont répertoriées par heure de création, les tâches les plus récentes apparaissant en premier. La liste n'inclut que les tâches concernant l'utilisateur actuel. Pour afficher toutes les tâches, cliquez sur Historique du projet. (Si vous n'êtes pas le propriétaire du projet, vous ne disposez peut-être pas de l'autorisation nécessaire pour afficher toutes les tâches d'un projet.)

UI classique

  1. Dans le volet de navigation, cliquez sur Historique des tâches.

  2. Dans la section Tâches récentes, vos tâches sont répertoriées par heure de création, avec les tâches les plus récentes affichées en haut. La liste n'inclut que les tâches concernant l'utilisateur actuel. Pour afficher toutes les tâches, utilisez l'outil de ligne de commande ou l'API.

CLI

Exécutez la commande bq ls avec l'une des options suivantes :

  • -j permet d'identifier les tâches en tant que ressources à répertorier.
  • --all ou -a répertorie les tâches de tous les utilisateurs. Pour afficher les détails complets (non masqués) de toutes les tâches, vous devez disposer des autorisations bigquery.jobs.listAll.
  • --min_creation_time permet de répertorier les tâches après une valeur d'horodatage fournie.
  • --max_creation_time permet de répertorier les tâches avant une valeur d'horodatage fournie.
  • -n limite les résultats. Par défaut, vous êtes limité à 100 000 résultats.
bq ls -j -a \
--min_creation_time integer1 \
--max_creation_time integer2 \
-n integer3 \
project_id

Où :

  • integer1 est un entier représentant un horodatage.
  • integer2 est un entier représentant un horodatage.
  • integer3 est un entier indiquant le nombre de tâches renvoyées.
  • project_id est l'ID du projet contenant les tâches que vous répertoriez. Si vous définissez un projet par défaut, vous n'avez pas besoin de fournir le paramètre project_id.

Exemples :

La commande suivante répertorie toutes les tâches pour l'utilisateur actuel. L'exécution de cette commande nécessite les autorisations bigquery.jobs.list.

bq ls -j myproject

La commande suivante répertorie toutes les tâches pour tous les utilisateurs. L'exécution de cette commande nécessite les autorisations bigquery.jobs.listAll.

bq ls -j -a myproject

La commande suivante répertorie les 10 tâches les plus récentes dans myproject :

bq ls -j -a -n 10 myproject

La commande suivante répertorie toutes les tâches soumises avant le 18 octobre 2018 à 16:04:53. Cet horodatage (en millisecondes) est équivalent à la valeur entière suivante : 1539903893000.

bq ls -j --max_creation_time 1539903893000

API

Appelez jobs.list et spécifiez le paramètre projectId. Pour répertorier les tâches pour tous les utilisateurs, définissez le paramètre allUsers sur true. Pour définir allUsers sur true, vous devez disposer des autorisations bigquery.jobs.listAll.

Go

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Go décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API BigQuery Go.

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/bigquery"
	"google.golang.org/api/iterator"
)

// listJobs demonstrates iterating through the BigQuery jobs collection.
func listJobs(w io.Writer, projectID string) error {
	// projectID := "my-project-id"
	// jobID := "my-job-id"
	ctx := context.Background()

	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}

	it := client.Jobs(ctx)
	// List up to 10 jobs to demonstrate iteration.
	for i := 0; i < 10; i++ {
		j, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return err
		}
		state := "Unknown"
		switch j.LastStatus().State {
		case bigquery.Pending:
			state = "Pending"
		case bigquery.Running:
			state = "Running"
		case bigquery.Done:
			state = "Done"
		}
		fmt.Fprintf(w, "Job %s in state %s\n", j.ID(), state)
	}
	return nil
}

Java

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Java décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Java.

Page<Job> jobs = bigquery.listJobs(JobListOption.pageSize(100));
for (Job job : jobs.iterateAll()) {
  // do something with the job
}

Node.js

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Node.js décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery en langage Node.js.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function listJobs() {
  // Lists all jobs in current GCP project.

  // List the 10 most recent jobs in reverse chronological order.
  //  Omit the max_results parameter to list jobs from the past 6 months.
  const options = {maxResults: 10};
  const [jobs] = await bigquery.getJobs(options);

  console.log('Jobs:');
  jobs.forEach(job => console.log(job.id));
}

Python

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Python décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery en langage Python.

# TODO(developer): Import the client library.
# from google.cloud import bigquery

import datetime

# TODO(developer): Construct a BigQuery client object.
# client = bigquery.Client()

# List the 10 most recent jobs in reverse chronological order.
# Omit the max_results parameter to list jobs from the past 6 months.
print("Last 10 jobs:")
for job in client.list_jobs(max_results=10):  # API request(s)
    print("{}".format(job.job_id))

# The following are examples of additional optional parameters:

# Use min_creation_time and/or max_creation_time to specify a time window.
print("Jobs from the last ten minutes:")
ten_mins_ago = datetime.datetime.utcnow() - datetime.timedelta(minutes=10)
for job in client.list_jobs(min_creation_time=ten_mins_ago):
    print("{}".format(job.job_id))

# Use all_users to include jobs run by all users in the project.
print("Last 10 jobs run by all users:")
for job in client.list_jobs(max_results=10, all_users=True):
    print("{} run by user: {}".format(job.job_id, job.user_email))

# Use state_filter to filter by job state.
print("Last 10 jobs done:")
for job in client.list_jobs(max_results=10, state_filter="DONE"):
    print("{}".format(job.job_id))

Annuler des tâches

Vous pouvez annuler une tâche à l'état RUNNING ou PENDING par l'un des moyens suivants :

  • En utilisant Cloud Console ou l'UI Web classique
  • En utilisant la CLI
  • En appelant la méthode API jobs.cancel
  • En utilisant les bibliothèques clientes

Notez que tous les types de tâches ne peuvent pas être annulés. Si la tâche ne peut pas être annulée, une erreur est affichée.

Même si la tâche peut être annulée, le succès de l'opération n'est pas garanti. La tâche peut se terminer au moment de l'envoi de la demande d'annulation ou se trouver dans une étape ne permettant pas son annulation.

Autorisations requises

Pour annuler une tâche, vous devez au minimum disposer des autorisations bigquery.jobs.update. Le rôle Cloud IAM prédéfini suivant inclut les autorisations bigquery.jobs.update :

  • bigquery.admin

Si vous accordez à un compte le rôle bigquery.admin, l'utilisateur pourra supprimer toutes les tâches éligibles, indépendamment de l'utilisateur qui les a envoyées.

Les rôles suivants permettent d'annuler des tâches créées par vos utilisateurs. Ces utilisateurs ne peuvent annuler que les tâches qu'ils envoient :

  • bigquery.user
  • bigquery.jobUser

Pour en savoir plus sur les rôles et les autorisations Cloud IAM dans BigQuery, consultez la page Rôles et autorisations prédéfinis.

Annuler une tâche

Pour annuler une tâche, veuillez procéder comme suit :

Console

  1. Dans le volet de navigation, cliquez sur Historique des tâches.

  2. Dans la section Historique personnel, cliquez sur la tâche que vous souhaitez annuler. Les tâches les plus récentes apparaissent en haut de la liste.

  3. Dans les détails de la tâche, cliquez sur Annuler la tâche.

UI classique

  1. Dans le volet de navigation, cliquez sur Historique des tâches.

  2. Dans la section Tâches récentes, cliquez sur la tâche à annuler. Les tâches les plus récentes apparaissent en haut de la liste.

  3. Dans les détails de la tâche, cliquez sur Annuler la tâche.

    Annuler la tâche

CLI

Exécutez la commande bq cancel avec le paramètre job_id. Vous pouvez demander une annulation et afficher immédiatement le résultat à l'aide de l'option --nosync. Par défaut, les demandes d'annulation attendent la fin de l'opération.

Lorsque vous fournissez l'ID de la tâche, vous pouvez l'utiliser sous sa forme complète ou abrégée. Par exemple, les ID de tâches répertoriés dans l'UI Web de BigQuery sont complets. Ils incluent le projet et l'emplacement :

my-project-1234:US.bquijob_123x456_123y123z123c

Les ID de tâches dans l'outil de ligne de commande sont répertoriés sous forme abrégée. L'ID et l'emplacement du projet ne sont pas inclus :

bquijob_123x456_123y123z123c

Pour spécifier l'emplacement de la tâche, définissez l'option --location sur la valeur correspondant à votre emplacement. Cette option est facultative si vous utilisez l'ID de tâche complet. Si vous incluez l'option --location et que vous utilisez l'ID de tâche complet, l'option --location est ignorée.

La commande suivante demande l'annulation de la tâche et attend la fin de l'opération. Si l'ID de tâche complet est fourni, l'option --location est ignorée :

bq --location=location cancel job_id

La commande suivante demande l'annulation de la tâche et l'affiche immédiatement. Si l'ID de tâche complet est fourni, l'option --location est ignorée :

bq --location=location --nosync cancel job_id

Où :

  • location est facultatif. Il s'agit du nom de l'emplacement dans lequel la tâche est exécutée. Par exemple, si vous utilisez BigQuery dans la région de Tokyo, définissez la valeur de l'option sur asia-northeast1. Vous pouvez définir une valeur par défaut correspondant à l'emplacement en utilisant le fichier .bigqueryrc.
  • job_id est l'ID de la tâche à annuler. Si vous copiez l'ID de la tâche à partir de l'UI Web de BigQuery, l'ID et l'emplacement du projet sont inclus dans l'ID de la tâche. Exemple :my-project-1234:US.bquijob_123x456_123y123z123c

Exemples :

La commande suivante annule la tâche my-project-1234:US.bquijob_123x456_123y123z123c exécutée dans l'emplacement multirégional US dans my-project-1234 et attend la fin de l'opération. Comme l'ID de tâche complet est utilisé, l'option Emplacement n'est pas fournie.

bq cancel my-project-1234:US.bquijob_123x456_123y123z123c

La commande suivante annule la tâche bquijob_123x456_123y123z123c exécutée dans l'emplacement multirégional US dans my-project-1234 et attend la fin de l'opération. Comme la forme abrégée de l'ID de tâche est utilisée, l'option --location est fournie.

bq --location=US cancel bquijob_123x456_123y123z123c

La commande suivante annule la tâche bquijob_123x456_123y123z123c exécutée dans l'emplacement multirégional US dans my-project-1234 et affiche immédiatement le résultat. Comme l'ID de tâche complet est utilisé, l'option --location n'est pas fournie.

bq --nosync cancel my-project-1234:US.bquijob_123x456_123y123z123c

API

Appelez jobs.cancel, puis indiquez les paramètres jobId et projectId. Fournissez le paramètre location et définissez la valeur sur l'emplacement dans lequel la tâche est exécutée.

Go

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Go décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API BigQuery Go.

import (
	"context"
	"fmt"

	"cloud.google.com/go/bigquery"
)

// cancelJob demonstrates how a job cancellation request can be issued for a specific
// BigQuery job.
func cancelJob(projectID, jobID string) error {
	// projectID := "my-project-id"
	// jobID := "my-job-id"
	ctx := context.Background()

	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}

	job, err := client.JobFromID(ctx, jobID)
	if err != nil {
		return nil
	}
	return job.Cancel(ctx)
}

Node.js

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Node.js décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery en langage Node.js.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function cancelJob() {
  // Attempts to cancel a job.

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const jobId = "existing-job-id";

  // Create a job reference
  const job = bigquery.job(jobId);

  // Attempt to cancel job
  const [apiResult] = await job.cancel();

  console.log(apiResult.job.status);
}

Python

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Python décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery en langage Python.

# TODO(developer): Uncomment the lines below and replace with your values.
# from google.cloud import bigquery
# client = bigquery.Client()
# job_id = 'bq-job-123x456-123y123z123c'  # replace with your job ID
# location = 'us'                         # replace with your location

job = client.cancel_job(job_id, location=location)

Répéter une tâche

Il n'est pas possible de relancer une tâche en utilisant le même ID. À la place, vous devez créer une tâche avec la même configuration. Lorsque vous envoyez la nouvelle tâche dans Cloud Console, l'UI Web classique ou la CLI, un nouvel ID de tâche est attribué. Lorsque vous envoyez la tâche via l'API ou les bibliothèques clientes, vous devez générer un nouvel ID de tâche.

Autorisations requises

Pour exécuter une tâche, vous devez au minimum disposer des autorisations bigquery.jobs.create. Les rôles Cloud IAM prédéfinis suivants incluent les autorisations bigquery.jobs.create :

  • bigquery.user
  • bigquery.jobUser
  • bigquery.admin

Pour en savoir plus sur les rôles et les autorisations Cloud IAM dans BigQuery, consultez la page Rôles et autorisations prédéfinis.

Relancer une tâche

Pour répéter une tâche, veuillez procéder comme suit :

Console

Pour répéter une tâche de requête, veuillez procéder comme suit :

  1. Dans le volet de navigation, cliquez sur Historique des requêtes.

  2. Dans la section Historique personnel ou Historique du projet, cliquez sur la requête à réexécuter, puis sur Ouvrir la requête dans l'éditeur.

  3. Cliquez sur Exécuter.

Pour répéter une tâche de chargement, veuillez procéder comme suit :

  1. Dans le volet de navigation, cliquez sur Historique des tâches.

  2. Dans la section Historique personnel ou Historique du projet, cliquez sur la tâche à répéter. Les tâches les plus récentes apparaissent en haut de la liste.

  3. Dans les détails de la tâche, cliquez sur Répéter la tâche de chargement.

UI classique

Pour répéter une tâche de requête, veuillez procéder comme suit :

  1. Dans le volet de navigation, cliquez sur Historique des requêtes.

  2. Dans la section Requêtes, à droite de la requête, cliquez sur Ouvrir la requête.

  3. Cliquez sur Exécuter la requête.

Pour répéter une tâche de chargement, veuillez procéder comme suit :

  1. Dans le volet de navigation, cliquez sur Historique des tâches.

  2. Dans la section Tâches récentes, cliquez sur la tâche à répéter. Les tâches les plus récentes apparaissent en haut de la liste.

  3. Dans les détails de la tâche, cliquez sur Répéter la tâche de chargement.

CLI

Relancez votre commande pour que BigQuery génère automatiquement une tâche avec un nouvel ID de tâche.

API

Il n'existe pas de méthode d'appel unique pour répéter une tâche. Pour répéter une tâche spécifique, vous devez procéder comme suit :

  1. Appelez jobs.get pour récupérer la ressource de la tâche à répéter.

  2. Supprimez les champs id, status et statistics. Remplacez le champ jobId par une nouvelle valeur générée par votre code client. Modifiez les autres champs si nécessaire.

  3. Appelez jobs.insert avec la ressource modifiée et le nouvel ID de tâche pour démarrer la nouvelle tâche.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.