Google bigquery 按标签的BigQuery作业筛选器

Google bigquery 按标签的BigQuery作业筛选器,google-bigquery,command-line-interface,Google Bigquery,Command Line Interface,有没有办法过滤带有标签的大查询作业 我创建了一个标签为task\u id:my\u task的作业查询 for i in $(bq ls -j | awk 'NR>2 {print $1}'); do echo "$(bq show -j $i) $i" | awk '/task_id:my_task/ && /SUCCESS/ {print $(NF)}'; done 尝试了所有标签上的工作,但没有一个成功: bq ls -j --filter 'configurati

有没有办法过滤带有标签的大查询作业

我创建了一个标签为task\u id:my\u task的作业查询

for i in $(bq ls -j | awk 'NR>2 {print $1}'); do echo "$(bq show -j $i) $i" | awk '/task_id:my_task/ && /SUCCESS/ {print $(NF)}'; done
尝试了所有标签上的工作,但没有一个成功:

bq ls -j --filter 'configuration.labels(task_id):my_task'
bq ls -j --filter 'configuration.labels.task_id:my_task'
bq ls -j --filter  configuration.labels(task_id):my_task
bq ls -j --filter  labels.task_id:my_task

根据bq ls[1]的文档,-filter列出了与筛选器表达式匹配的数据集。但是对于列出作业,文档[2]提到允许的标志有三个:-j、-a和-n

因此,至少通过Bigquery命令工具,没有一种方法可以过滤作业列表。但作为一种解决方法,您可以使用以下命令获取标记为task\u id的所有作业:my\u task

for i in $(bq ls -j | awk 'NR>2 {print $1}'); do echo "$(bq show -j $i) $i" | awk '/task_id:my_task/ && /SUCCESS/ {print $(NF)}'; done
不过,这个命令可能需要一些时间;因此,考虑添加这样的-N标志:

for i in $(bq ls -j -n 10 | awk 'NR>2 {print $1}'); do echo "$(bq show -j $i) $i" | awk '/task_id:my_task/ && /SUCCESS/ {print $(NF)}'; done
您还可以向BigQuery的问题跟踪器提交功能请求[3]

[1]

[2]

[3]