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.insert
auf. - 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.user
roles/bigquery.jobUser
roles/bigquery.admin
Wenn Sie einen Job erstellen, erhalten Sie außerdem automatisch die folgenden Berechtigungen für diesen Job:
bigquery.jobs.get
bigquery.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.insert
eine Jobressourcendarstellung auf.Fügen Sie im Abschnitt
configuration
der Jobressource ein untergeordnetes Attribut hinzu, das den Jobtyp angibt –load
,query
,extract
odercopy
.Prüfen Sie nach dem Aufrufen der Methode
jobs.insert
den Jobstatus durch einen Aufruf vonjobs.get
mit der Job-ID und dem Standort. Prüfen Sie den Wertstatus.state
, um den Jobstatus zu ermitteln. Wenn fürstatus.state
der StatusDONE
angezeigt wird, wurde die Ausführung des Jobs beendet. Der StatusDONE
bedeutet 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
errorResult
auf, ist er fehlgeschlagen. Das Attributstatus.errorResult
enthält dann Informationen über das Fehlschlagen des Jobs. Ist das Attributstatus.errorResult
nicht 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.errors
des 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.
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.
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.
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.