我正在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,它是状态部分。
答案 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