Jobs verwalten

Nachdem Sie einen BigQuery-Job gesendet haben, können Sie Jobdaten aufrufen, Jobs auflisten, den Job abbrechen oder den Job noch einmal ausführen.

Nach dem Senden eines Jobs kann dieser einen von drei Status haben:

  • PENDING – geplant
  • RUNNING
  • DONE – gemeldet als SUCCESS oder (falls der Job mit Fehlern abgeschlossen wurde) FAILURE

Jobdaten anzeigen

Sie können Job- und Metadaten mithilfe der Cloud Console, der klassischen Web-UI, der Befehlszeile und der API aufrufen. Diese Daten enthalten Details wie den Jobtyp, den Jobstatus und den Nutzer, der den Job ausgeführt hat.

Erforderliche Berechtigungen

Zum Abrufen von Jobdaten und Metadaten brauchen Sie mindestens Berechtigungen des Typs bigquery.jobs.get. Diese vordefinierte Cloud IAM-Rolle umfasst Berechtigungen des Typs bigquery.jobs.get:

  • bigquery.admin

Wenn Sie einem Konto die Rolle bigquery.admin gewähren, kann der Nutzer alle Jobdaten im Projekt aufrufen, unabhängig davon, wer den Job gesendet hat.

Den folgenden Rollen werden Berechtigungen des Typs bigquery.jobs.get für selbst erstellte Jobs gewährt. Diese Nutzer können nur Jobdaten für Jobs ansehen, die sie senden:

  • bigquery.user
  • bigquery.jobUser

Weitere Informationen zu Cloud IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Zugriffssteuerung.

Informationen zu Jobs ansehen

So rufen Sie Informationen zu einem Job auf:

Console

  1. Klicken Sie im Navigationsbereich auf Jobverlauf oder auf Abfrageverlauf, um Informationen zu Abfragejobs anzusehen.

  2. Klicken Sie auf Persönliche Geschichte, um Details zu Ihren Jobs aufzurufen. Klicken Sie auf Projektgeschichte, um Details zu allen im Projekt ausgeführten Jobs aufzurufen.

Klassische UI

  1. Klicken Sie im Navigationsbereich auf Jobverlauf oder auf Abfrageverlauf, um Informationen zu Abfragejobs anzusehen.

  2. Klicken Sie im Abschnitt Recent Jobs (Aktuelle Jobs) auf den gewünschten Job, um die Details aufzurufen. Zum Aufrufen von Details zu Abfragejobs klicken Sie auf den Tab Abfrageverlauf.

bq

Führen Sie den Befehl bq show mit dem Flag -j und mit dem Job-ID-Parameter aus.

Wenn Sie die Job-ID angeben, können Sie die vollständig qualifizierte ID oder die Kurzform verwenden. In der BigQuery-Web-UI aufgeführte Job-IDs sind beispielsweise vollständig qualifiziert – sie enthalten das Projekt und den Standort:

my-project-1234:US.bquijob_123x456_123y123z123c

Job-IDs im Befehlszeilentool werden mit der Kurzform aufgelistet – Projekt-ID und Standort sind nicht enthalten:

bquijob_123x456_123y123z123c

Zur Angabe des Jobstandorts geben Sie das Flag --location an und legen als Wert Ihren Standort fest. Dieses Flag ist optional, wenn Sie die vollständig qualifizierte Job-ID verwenden. Wenn Sie das Flag --location und die vollständig qualifizierte Job-ID gemeinsam verwenden, wird das Flag --location ignoriert.

Der folgende Befehl fordert Informationen zu einem Job an:

bq --location=location show -j job_id

Dabei gilt:

  • location ist optional. "location" ist der Name des Standorts, an dem der Job ausgeführt wird. Wenn Sie beispielsweise BigQuery in der Region Tokio verwenden, geben Sie für das Flag den Wert asia-northeast1 an. Mit der Datei .bigqueryrc können Sie einen Standardwert für den Standort festlegen.
  • job_id ist die ID des Jobs.

Beispiele:

Der folgende Befehl ruft zusammenfassende Informationen zum Job US.bquijob_123x456_123y123z123c ab, der in myproject ausgeführt wird.

bq show -j myproject:US.bquijob_123x456_123y123z123c

Die Ausgabe sieht in etwa so aus:

 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

Geben Sie Folgendes ein, um die vollständigen Jobdetails anzuzeigen:

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

Die Ausgabe sieht wie folgt aus:

{
  "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

Rufen Sie jobs.get auf und geben Sie die Parameter jobId und projectId an. Optional: Geben Sie den Parameter location an und legen Sie als Wert den Standort fest, an dem der Job ausgeführt wird. Dieser Parameter ist optional, wenn Sie die vollständig qualifizierte Job-ID verwenden, die den Standort enthält, z. B. my-project-1234:US.bquijob_123x456_123y123z123c.

Go

Bevor Sie dieses Beispiel ausprobieren, folgen Sie den Schritten zur Einrichtung von Go in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Go API.

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)
	}
	defer client.Close()

	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

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Node.js in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Node.js API.

// 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

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur BigQuery Python API.

# 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
    )
)

Jobs in einem Projekt auflisten

Im Jobverlauf Ihres Projekts sind alle Jobs aufgeführt, die in den letzten sechs Monaten erstellt wurden. Wenn Jobs, die mehr als 50 Tage alt sind, automatisch gelöscht werden sollen, wenden Sie sich an den Support.

So können Sie Ihren BigQuery-Jobverlauf aufrufen:

  • Mit der Google Cloud Console oder klassischen Web-UI
  • Mit der Befehlszeile
  • Durch Aufruf der API-Methode jobs.list
  • Mit den Clientbibliotheken

Der Jobverlauf enthält Jobs mit dem Status RUNNING und DONE (dargestellt durch die Statusmeldung SUCCESS oder FAILURE).

Erforderliche Berechtigungen

Zum Auflisten von Jobs brauchen Sie mindestens Berechtigungen des Typs bigquery.jobs.list. Diese vordefinierten Cloud IAM-Rollen umfassen Berechtigungen des Typs bigquery.jobs.list:

  • bigquery.user
  • bigquery.admin

Der im Folgenden aufgeführten Rolle werden Berechtigungen des Typs bigquery.jobs.list nur für selbst erstellte Jobs gewährt. Entitäten, denen diese Rolle gewährt wurde, können nur Jobs auflisten, die sie einreichen:

  • bigquery.jobUser

Wenn Ihnen Berechtigungen vom Typ bigquery.jobs.list gewährt wurden, können Sie alle Jobs in einem Projekt auflisten. Dabei sind jedoch keine Details und keine Metadaten für die Jobs enthalten, die von anderen Nutzern gesendet wurden. Mit bigquery.jobs.list-Berechtigungen können Sie sich alle Details zu von Ihnen erstellten Jobs ansehen.

Zum Auflisten aller Jobs, einschließlich der Details zu Jobs, die von anderen Nutzern erstellt wurden, brauchen Sie Berechtigungen des Typs bigquery.jobs.listAll. Nur die Rolle bigquery.admin umfasst diese Berechtigungen des Typs bigquery.jobs.listAll.

Weitere Informationen zu Cloud IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.

Jobs auflisten

Wenn Sie Jobs in einem Projekt auflisten, brauchen Sie keinen Standort anzugeben. Derzeit werden Jobs für alle Standorte aufgelistet.

So listen Sie Jobs in einem Projekt auf:

Konsole

  1. Klicken Sie im Navigationsbereich auf Jobverlauf.

  2. Im Abschnitt Persönliche Geschichte werden Ihre Jobs nach der Erstellungszeit aufgelistet, wobei sich die aktuellsten Jobs am Anfang befinden. Die Liste enthält nur Jobs für den aktuellen Nutzer. Klicken Sie auf Projektgeschichte, um alle Jobs für ein Projekt aufzurufen. Wenn Sie nicht der Projektinhaber sind, sind Sie möglicherweise nicht berechtigt, alle Jobs für ein Projekt anzeigen zu lassen.

Klassische UI

  1. Klicken Sie im Navigationsbereich auf Jobverlauf.

  2. Ihre Jobs werden im Abschnitt Recent Jobs (Aktuelle Jobs) nach dem Zeitpunkt ihrer Erstellung aufgelistet. Die neuesten Jobs werden am Anfang angezeigt. Die Liste enthält nur Jobs für den aktuellen Nutzer. Zur Anzeige aller Jobs verwenden Sie das Befehlszeilentool oder die API.

bq

Führen Sie den Befehl bq ls mit einem der folgenden Flags aus:

  • Mit -j werden die Jobs ermittelt, die als Ressource aufgelistet werden sollen.
  • Mit --all oder -a werden die Jobs von allen Nutzern angezeigt. Zur ungekürzten Anzeige aller Details für alle Jobs brauchen Sie Berechtigungen des Typs bigquery.jobs.listAll.
  • Mit --min_creation_time werden Jobs nach einem angegebenen Zeitstempelwert aufgelistet.
  • Mit --max_creation_time werden die Jobs vor einem angegebenen Zeitstempelwert aufgeführt.
  • -n begrenzt die Ergebnisse. Es gilt standardmäßig ein Limit von 100.000 Ergebnissen.
bq ls -j -a \
--min_creation_time integer1 \
--max_creation_time integer2 \
-n integer3 \
project_id

Dabei gilt:

  • integer1 ist eine Ganzzahl, die einen Zeitstempel darstellt.
  • integer2 ist eine Ganzzahl, die einen Zeitstempel darstellt.
  • integer3 ist eine Ganzzahl, die die Anzahl der zurückgegebenen Jobs anzeigt.
  • project_id ist die ID des Projekts, das die aufgelisteten Jobs enthält. Wenn Sie ein Standardprojekt festgelegt haben, brauchen Sie den Parameter project_id nicht anzugeben.

Beispiele:

Mit dem folgenden Befehl werden alle Jobs für den aktuellen Nutzer aufgelistet. Zur Ausführung dieses Befehls sind Berechtigungen des Typs bigquery.jobs.list erforderlich.

bq ls -j myproject

Mit dem folgenden Befehl werden alle Jobs für alle Nutzer aufgelistet. Zur Ausführung dieses Befehls sind Berechtigungen des Typs bigquery.jobs.listAll erforderlich.

bq ls -j -a myproject

Mit dem folgenden Befehl werden die zehn letzten Jobs in myproject aufgelistet:

bq ls -j -a -n 10 myproject

Der folgende Befehl listet alle Jobs auf, die vor dem 18. Oktober 2018 um 16:04:53 Uhr gesendet wurden. Dieser Zeitstempel (in Millisekunden) entspricht dem Ganzzahlwert 1539903893000.

bq ls -j --max_creation_time 1539903893000

API

Rufen Sie jobs.list auf und geben Sie dabei den Parameter projectId an. Zum Auflisten der Jobs für alle Nutzer legen Sie für den Parameter allUsers den Wert true fest. Die Festlegung von allUsers auf true erfordert Berechtigungen des Typs bigquery.jobs.listAll.

Go

Bevor Sie dieses Beispiel ausprobieren, folgen Sie den Schritten zur Einrichtung von Go in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Go API.

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)
	}
	defer client.Close()

	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

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur BigQuery Java API.

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

Node.js

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Node.js in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Node.js API.

// 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

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur BigQuery Python API.


from google.cloud import bigquery

import datetime

# 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))

Jobs abbrechen

Sie können Jobs mit dem Status RUNNING oder PENDING mit den folgenden Methoden abbrechen:

  • Mit der Cloud Console oder der klassischen Web-UI
  • Mit der Befehlszeile
  • Durch Aufruf der API-Methode jobs.cancel
  • Mit den Clientbibliotheken

Beachten Sie, dass nicht alle Jobtypen abgebrochen werden können. Wenn der Job nicht abgebrochen werden kann, wird ein Fehler zurückgegeben.

Auch wenn der Job abgebrochen werden kann, ist der Vorgang nicht immer erfolgreich. Der Job kann z. B. abgeschlossen sein, bevor die Anfrage zum Abbrechen gesendet wurde, oder er befindet sich in einer Phase, in der ein Abbrechen nicht möglich ist.

Erforderliche Berechtigungen

Zum Abbrechen eines Jobs brauchen Sie mindestens Berechtigungen des Typs bigquery.jobs.update. Die folgende vordefinierte Cloud IAM-Rolle umfasst Berechtigungen des Typs bigquery.jobs.update:

  • bigquery.admin

Wenn Sie einem Konto die Rolle bigquery.adminzuweisen, kann der jeweilige Nutzer alle entsprechenden Jobs abbrechen, unabhängig davon, wer den Job gesendet hat.

Nutzer mit den im Folgenden aufgeführten Rollen haben die Berechtigung, selbst erstellte Jobs abzubrechen. Diese Nutzer können nur Jobs abbrechen, die sie senden:

  • bigquery.user
  • bigquery.jobUser

Weitere Informationen zu Cloud IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.

Jobs abbrechen

So brechen Sie einen Job ab:

Konsole

  1. Klicken Sie im Navigationsbereich auf Jobverlauf.

  2. Klicken Sie im Abschnitt Persönliche Geschichte auf den Job, den Sie abbrechen möchten. Die aktuellsten Jobs werden ganz oben in der Liste angezeigt.

  3. Klicken Sie in den Jobdetails auf Job abbrechen.

Klassische UI

  1. Klicken Sie im Navigationsbereich auf Jobverlauf.

  2. Klicken Sie im Abschnitt Aktuelle Jobs auf den Job, den Sie abbrechen möchten. Die aktuellsten Jobs werden ganz oben in der Liste angezeigt.

  3. Klicken Sie in den Jobdetails auf Cancel Job (Job abbrechen).

    Job abbrechen

bq

Führen Sie den Befehl bq cancel mit dem Parameter job_id aus. Mit dem Flag --nosync können Sie das Abbrechen anfordern und sofort zurückkehren. Standardmäßig warten Abbruchanfragen auf den Abschluss des Vorgangs.

Wenn Sie die Job-ID angeben, können Sie die vollständig qualifizierte ID oder die Kurzform verwenden. In der BigQuery-Web-UI aufgeführte Job-IDs sind beispielsweise vollständig qualifiziert – sie enthalten das Projekt und den Standort:

my-project-1234:US.bquijob_123x456_123y123z123c

Job-IDs im Befehlszeilentool werden mit der Kurzform aufgelistet – Projekt-ID und Standort sind nicht enthalten:

bquijob_123x456_123y123z123c

Zur Angabe des Jobstandorts geben Sie das Flag --location an und legen als Wert Ihren Standort fest. Dieses Flag ist optional, wenn Sie die vollständig qualifizierte Job-ID verwenden. Wenn Sie das Flag --location und die vollständig qualifizierte Job-ID gemeinsam verwenden, wird das Flag --location ignoriert.

Der folgende Befehl fordert den Jobabbruch an und wartet auf den Abschluss des Vorgangs: Wenn die vollständig qualifizierte Job-ID angegeben ist, wird das Flag --location ignoriert:

bq --location=location cancel job_id

Der folgende Befehl fordert den Jobabbruch an und wird sofort zurückgegeben: Wenn die vollständig qualifizierte Job-ID angegeben ist, wird das Flag --location ignoriert:

bq --location=location --nosync cancel job_id

Dabei gilt:

  • location ist optional. "location" ist der Name des Standorts, an dem der Job ausgeführt wird. Wenn Sie BigQuery z. B. in der Region Tokio verwenden, legen Sie für das Flag den Wert "asia-northeast1" fest. Mit der Datei .bigqueryrc können Sie einen Standardwert für den Standort angeben.
  • job_id ist die ID des Jobs, den Sie abbrechen. Wenn Sie die Job-ID aus der BigQuery-Web-UI kopieren, sind die Projekt-ID und der Standort darin enthalten. Beispiel: my-project-1234:US.bquijob_123x456_123y123z123c

Beispiele:

Mit dem folgenden Befehl wird der Job my-project-1234:US.bquijob_123x456_123y123z123c abgebrochen, der am multiregionalen US-Standort im Projekt my-project-1234 ausgeführt wird, und es wird auf den Abschluss gewartet. Da die vollständig qualifizierte Job-ID verwendet wird, ist das Standort-Flag nicht angegeben.

bq cancel my-project-1234:US.bquijob_123x456_123y123z123c

Mit dem folgenden Befehl wird der Job bquijob_123x456_123y123z123c abgebrochen, der am multiregionalen US-Standort im Projekt my-project-1234 ausgeführt wird, und es wird auf den Abschluss gewartet. Da die Kurzform der Job-ID verwendet wird, ist das Flag --location angegeben.

bq --location=US cancel bquijob_123x456_123y123z123c

Mit dem folgenden Befehl wird der Job bquijob_123x456_123y123z123cabgebrochen, der am multiregionalen US-Standort im Projekt my-project-1234 ausgeführt wird, und es wird sofort zurückgekehrt. Da die vollständig qualifizierte Job-ID verwendet wird, ist das Flag --location nicht angegeben.

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

API

Rufen Sie jobs.cancel auf und geben Sie die Parameter jobId und projectId an. Geben Sie den Parameter location an und legen Sie als Wert den Standort fest, an dem der Job ausgeführt wird.

Go

Bevor Sie dieses Beispiel ausprobieren, folgen Sie den Schritten zur Einrichtung von Go in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Go API.

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)
	}
	defer client.Close()

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

Node.js

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Node.js in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Node.js API.

// 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

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur BigQuery Python API.

# 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)

Job noch einmal ausführen

Ein Job kann mit der gleichen Job-ID nicht noch einmal ausgeführt werden. Stattdessen müssen Sie einen neuen Job mit der gleichen Konfiguration erstellen. Wenn Sie den neuen Job über die Cloud Console, die klassische Web-UI oder die Befehlszeile senden, wird eine neue Job-ID zugewiesen. Wenn Sie den Job mithilfe der API oder der Clientbibliotheken senden, müssen Sie eine neue Job-ID generieren.

Erforderliche Berechtigungen

Zum Ausführen eines Jobs brauchen Sie mindestens Berechtigungen des Typs bigquery.jobs.create. Diese vordefinierten Cloud IAM-Rollen umfassen Berechtigungen des Typs bigquery.jobs.create:

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

Weitere Informationen zu Cloud IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.

Job noch einmal ausführen

So wiederholen Sie einen Job:

Konsole

So wiederholen Sie einen Abfragejob:

  1. Klicken Sie im Navigationsbereich auf Abfrageverlauf.

  2. Klicken Sie im Abschnitt Persönliche Geschichte oder Projektgeschichte auf die Abfrage, die Sie erneut ausführen möchten, und klicken Sie dann auf Abfrage im Editor öffnen.

  3. Klicken Sie auf Ausführen.

So wiederholen Sie einen Ladejob:

  1. Klicken Sie im Navigationsbereich auf Jobverlauf.

  2. Klicken Sie im Abschnitt Persönliche Geschichte oder Projektgeschichte auf den Job, den Sie wiederholen möchten. Die aktuellsten Jobs werden ganz oben in der Liste angezeigt.

  3. Klicken Sie in den Jobdetails auf Ladejob wiederholen.

Klassische UI

So wiederholen Sie einen Abfragejob:

  1. Klicken Sie im Navigationsbereich auf Abfrageverlauf.

  2. Klicken Sie rechts neben der Abfrage im Abschnitt Abfragen auf Abfrage öffnen.

  3. Klicken Sie auf Abfrage ausführen.

So wiederholen Sie einen Ladejob:

  1. Klicken Sie im Navigationsbereich auf Jobverlauf.

  2. Klicken Sie im Abschnitt Aktuelle Jobs auf den zu wiederholenden Job. Die aktuellsten Jobs werden ganz oben in der Liste angezeigt.

  3. Klicken Sie in den Jobdetails auf Ladejob wiederholen.

bq

Führen Sie den Befehl noch einmal aus. BigQuery generiert automatisch einen Job mit einer neuen Job-ID.

API

Ein Job kann nicht mithilfe eines einzelnen Aufrufs noch einmal ausgeführt werden. Gehen Sie stattdessen so vor:

  1. Rufen Sie jobs.get auf, um die Ressource für den Job abzurufen, der noch einmal ausgeführt werden soll.

  2. Entfernen Sie die Felder id, status und statistics. Ändern Sie das Feld jobId in einen neuen Wert, der von Ihrem Clientcode generiert wird. Ändern Sie die anderen Felder nach Bedarf.

  3. Rufen Sie jobs.insert mit der geänderten Ressource und mit der neuen Job-ID auf, um den neuen Job zu starten.