我在bq
中运行一些命令,将数据从BigQuery提取到GCS。我能够达到目标结果。
我能够查询数据并能够以所需的格式将数据放入GCS。我只是想知道是否有任何可能的方法来获得上一份工作的工作ID和状态。我知道我们可以使用bq
作业列表方法获取所有作业详细信息,但它给了我一整套结果集。我只想获得那份工作的状态。
bq --location = US extract --destination_format CSV --compression GZIP dataset_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,它只是状态部分。
我只想要最后一个工作ID,它只是状态部分。
你可以把它管道到awk
:
bq ls -j -n 1 | awk '{if(NR>2)print}' | awk '{print $1,$3}'
bquxjob_69ed4f1_169ba1f5665 SUCCESS
查看the docs,bq
提供了全局标志--job_id
,它允许您为正在启动的作业设置ID(在本例中,通过extract
命令)。他们甚至有a section about best practices around generating a job id。
创建作业后,您可以使用bq show --job MY_JOB_ID_HERE
获取该特定作业的详细信息。
如果您不想自己生成作业ID,那么更糟糕的方法是让bq
使用全局--apilog stdout
选项打印出API调用,并且您可以从中解析作业ID。