Как получить идентификатор задания последнего запуска задания в инструменте командной строки BigQuery? - PullRequest
0 голосов
/ 30 марта 2019

Я запускаю несколько команд в bq для извлечения данных из BigQuery в GCS.Я могу достичь целевого результата.

Я могу запрашивать данные и помещать данные в GCS в желаемых форматах.Мне просто интересно, есть ли какой-нибудь возможный способ получить идентификатор последней работы и ее состояние.Я знаю, что мы можем получить все детали заданий, используя bq методы списка заданий, но это дает мне полный набор результатов.Я просто хочу получить только состояние этой работы.

bq --location = US извлечение --destination_format CSV - сжатие 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

Мне нужен только последний идентификатор задания и его часть состояния.

Ответы [ 2 ]

2 голосов
/ 30 марта 2019

Мне нужен только последний идентификатор задания и его часть.

Вы можете передать это awk:

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

bquxjob_69ed4f1_169ba1f5665 SUCCESS
1 голос
/ 30 марта 2019

Глядя на документы , bq предлагает глобальный флаг --job_id, который позволяет вам установить идентификатор для запускаемой вами работы (в данном случае, с помощью команды extract).У них даже есть раздел с рекомендациями по созданию идентификатора задания .

После того, как вы создали задание, вы можете получить информацию об этом конкретном задании, используя bq show --job MY_JOB_ID_HERE.

Если вы не хотите самостоятельно генерировать идентификатор задания, более хакерский подход заключается в том, чтобы bq распечатывал вызовы API с использованием глобальной опции --apilog stdout, и вы могли бы потенциально проанализировать идентификатор заданияиз этого.

...