Skip to content

Instantly share code, notes, and snippets.

@ivan-loh
Created December 14, 2018 03:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ivan-loh/5a7337ce9f664701209ba76d250fe6bc to your computer and use it in GitHub Desktop.
Save ivan-loh/5a7337ce9f664701209ba76d250fe6bc to your computer and use it in GitHub Desktop.
golang google bigquery check for job error
package main
import (
"cloud.google.com/go/bigquery"
"context"
"log"
)
func main () {
var err error
project := "project id here"
client, err := bigquery.NewClient(context.Background(), project)
if err != nil {
log.Fatal("Error Creating Client: ", err)
return
}
jobID := "job id here"
err = getJobInfo(client, jobID)
if err != nil {
log.Fatal(err)
}
}
func getJobInfo(client *bigquery.Client, jobID string) error {
job, err := client.JobFromID(context.Background(), 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"
}
log.Printf("Job %s was created %v and is in state %s\n", jobID, status.Statistics.CreationTime, state)
if status.Errors != nil {
log.Fatal("Job Has Errors")
for index, errors := range status.Errors {
log.Fatal(index, errors)
}
}
return nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment