如何在BigQuery命令行工具中运行上一个作业的作业ID?

问题描述 投票:0回答:2

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

google-bigquery gcloud gsutil
2个回答
2
投票

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

你可以把它管道到awk

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

bquxjob_69ed4f1_169ba1f5665 SUCCESS

1
投票

查看the docsbq提供了全局标志--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。

© www.soinside.com 2019 - 2024. All rights reserved.