Jobs programmatisch ausführen
So führen Sie einen BigQuery-Job mithilfe der REST API oder der Clientbibliotheken programmatisch aus:
- Rufen Sie die Methode
jobs.insertauf. - Fordern Sie regelmäßig die Jobressource an und prüfen Sie das Statusattribut, um festzustellen, ob der Job abgeschlossen ist.
- Prüfen Sie, ob der Job erfolgreich beendet wurde.
Hinweis
Erteilen Sie IAM-Rollen (Identity and Access Management), die Nutzern die erforderlichen Berechtigungen zum Ausführen der einzelnen Aufgaben in diesem Dokument geben.
Erforderliche Berechtigungen
Zum Ausführen eines BigQuery-Jobs benötigen Sie die IAM-Berechtigung bigquery.jobs.create.
Jede der folgenden vordefinierten IAM-Rollen enthält die Berechtigungen, die Sie zum Ausführen eines Jobs benötigen:
roles/bigquery.userroles/bigquery.jobUserroles/bigquery.admin
Wenn Sie einen Job erstellen, erhalten Sie außerdem automatisch die folgenden Berechtigungen für diesen Job:
bigquery.jobs.getbigquery.jobs.update
Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.
Aktive Jobs
So führen Sie einen Job programmatisch aus:
Starten Sie den Job durch einen Aufruf der Methode
jobs.insert. Nehmen Sie in den Aufruf der Methodejobs.inserteine Jobressourcendarstellung auf.Fügen Sie im Abschnitt
configurationder Jobressource ein untergeordnetes Attribut hinzu, das den Jobtyp angibt –load,query,extractodercopy.Prüfen Sie nach dem Aufrufen der Methode
jobs.insertden Jobstatus durch einen Aufruf vonjobs.getmit der Job-ID und dem Standort. Prüfen Sie den Wertstatus.state, um den Jobstatus zu ermitteln. Wenn fürstatus.stateder StatusDONEangezeigt wird, wurde die Ausführung des Jobs beendet. Der StatusDONEbedeutet jedoch nicht, dass der Job erfolgreich abgeschlossen wurde. Er zeigt lediglich an, dass er nicht weiter ausgeführt wird.Prüfen Sie, ob der Job erfolgreich abgeschlossen wurde. Weist der Job das Attribut
errorResultauf, ist er fehlgeschlagen. Das Attributstatus.errorResultenthält dann Informationen über das Fehlschlagen des Jobs. Ist das Attributstatus.errorResultnicht vorhanden, wurde der Job erfolgreich abgeschlossen, obwohl einige nicht schwerwiegende Fehler aufgetreten sein können, z. B. Probleme beim Importieren einiger Zeilen eines Ladejobs. Nicht schwerwiegende Fehler werden in der Listestatus.errorsdes Jobs zurückgegeben.
Jobs mit Clientbibliotheken ausführen
So erstellen und führen Sie einen Job mit den Cloud-Clientbibliotheken für BigQuery aus:
C#
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der C#-Einrichtungsanleitung in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery C# API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Java-Einrichtungsanleitung in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Python-Einrichtungsanleitung in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Python API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.
Joblabels hinzufügen
Mit dem --label-Flag des bq-Befehlszeilentools können Labels zu Abfragejobs über die Befehlszeile hinzugefügt werden. Mit dem bq-Tool können Labels nur Abfragejobs hinzugefügt werden.
Sie können einem Job auch ein Label hinzufügen, wenn er über die API übertragen wird. Geben Sie dazu in der Jobkonfiguration das Attribut labels an, wenn Sie die Methode jobs.insert aufrufen. Über die API können Labels beliebigen Jobtypen hinzugefügt werden.
Sie können keine Labels zu ausstehenden, laufenden oder abgeschlossenen Jobs hinzufügen oder für derartige Jobs aktualisieren.
Wenn Sie einem Job ein Label hinzufügen, wird das Label in Ihre Abrechnungsdaten einbezogen.
Weitere Informationen finden Sie unter Joblabels hinzufügen.
Nächste Schritte
- Unter Abfragen ausführen finden Sie ein Codebeispiel, in dem ein Job gestartet und abgefragt wird.
- Mehr über das Erstellen einer Jobressourcendarstellung auf der Übersichtsseite für Jobs in der API-Referenz erfahren.