有没有办法用标签过滤大查询作业?
我创建了一个带有标签的工作(查询) 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] 删除。
我来说两句