如何在 BigQuery 命令行工具中获取最后一个作业 运行 的作业 ID?
How to get the job id of the last job run in BigQuery command line tool?
我 运行 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 及其状态部分。
正在查看 the docs, bq
offers the global flag --job_id
, which allows you to set the ID for the job you're launching (in this case, via the extract
command). They even have a section about best practices around generating a job id。
创建作业后,您可以使用 bq show --job MY_JOB_ID_HERE
.
获取该特定作业的详细信息
如果您不想自己生成作业 ID,一个更 hacky 的方法是让 bq
使用全局 --apilog stdout
打印出 API 调用选项,您可能会从中解析作业 ID。
I want only the last job id and it's state part.
您可以将其通过管道传输到 awk
:
bq ls -j -n 1 | awk '{if(NR>2)print}' | awk '{print ,}'
bquxjob_69ed4f1_169ba1f5665 SUCCESS
我 运行 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 及其状态部分。
正在查看 the docs, bq
offers the global flag --job_id
, which allows you to set the ID for the job you're launching (in this case, via the extract
command). They even have a section about best practices around generating a job id。
创建作业后,您可以使用 bq show --job MY_JOB_ID_HERE
.
如果您不想自己生成作业 ID,一个更 hacky 的方法是让 bq
使用全局 --apilog stdout
打印出 API 调用选项,您可能会从中解析作业 ID。
I want only the last job id and it's state part.
您可以将其通过管道传输到 awk
:
bq ls -j -n 1 | awk '{if(NR>2)print}' | awk '{print ,}'
bquxjob_69ed4f1_169ba1f5665 SUCCESS