如何获取BigQuery命令行工具中最后运行的作业的作业ID?

时间:2019-03-30 08:59:12

标签: google-bigquery gcloud gsutil

我正在bq中运行一些命令,以将数据从BigQuery提取到GCS。我能够达到目标结果。

我能够查询数据并将数据以所需格式放入GCS中。我只是想知道是否有任何可能的方法来获取上一份工作的工作ID,并且它是状态。我知道我们可以使用bq作业列表方法获取所有作业详细信息,但这给了我一个完整的结果集。我只是想了解工作的状态。

bq --location = US提取文件--destination_format CSV-压缩GZIPdataset_id.table_name gs://bucket_name/table.csv

bq ls -j -n 1

jobId          Job Type    State      Start Time      Duration
job_id         extract    FAILURE   30 Mar 13:36:54   0:00:29

我只想要最后一个工作ID,它是状态部分。

2 个答案:

答案 0 :(得分:1)

the docs处,bq提供了全局标志--job_id,它使您可以为正在启动的作业设置ID(在这种情况下,通过{{1 }}命令)。他们甚至有a section about best practices around generating a job id

创建作业后,您可以使用extract获取该特定作业的详细信息。

如果您不想自己生成工作ID,则更棘手的方法是使用全局bq show --job MY_JOB_ID_HERE选项让bq打印出API调用,并且可能从中解析作业ID。

答案 1 :(得分:1)

  

我只想要最后一个工作ID,它是状态部分。

您可以将其通过管道传输到awk

bq ls -j -n 1 | awk '{if(NR>2)print}' | awk '{print $1,$3}'

bquxjob_69ed4f1_169ba1f5665 SUCCESS