BigQuery 作业按标签过滤

姆坎特佩

有没有办法用标签过滤大查询作业?

我创建了一个带有标签的工作(查询) task_id:my_task

bq query --use_legacy_sql=false --label "task_id:my_task"  --project my-project 'SELECT * FROM `dataset.mytable`'

尝试使用标签获得所有工作,但没有一个工作:

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_id:my_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] https://cloud.google.com/bigquery/docs/reference/bq-cli-reference#bq_ls

[2] https://cloud.google.com/bigquery/docs/managing-jobs#listing_jobs

[3] https://issuetracker.google.com/issues/new?component=187149&template=1100108

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章