如何从BigQuery INFORMATION_SCHEMA获取调度查询的显示名称?
获取BigQuery调度查询的显示名称
方法1:直接查询调度查询专属视图
BigQuery提供了INFORMATION_SCHEMA.SCHEDULED_QUERIES视图,里面直接包含display_name字段,无需通过labels间接识别:
SELECT display_name, query, schedule, state FROM `region-your-region`.INFORMATION_SCHEMA.SCHEDULED_QUERIES;
把region-your-region替换为你的BigQuery资源所在区域(比如region-us)。
方法2:从已执行任务关联获取
如果你的场景是从JOBS表中筛选带指定labels的调度任务,并获取其显示名称,可以通过jobs表的schedule_name字段关联到SCHEDULED_QUERIES视图:
SELECT j.job_id, sq.display_name, j.query, j.start_time FROM `region-your-region`.INFORMATION_SCHEMA.JOBS j JOIN `region-your-region`.INFORMATION_SCHEMA.SCHEDULED_QUERIES sq ON j.schedule_name = sq.name WHERE EXISTS ( SELECT 1 FROM UNNEST(j.labels) l WHERE l.key = "datasource_id" AND l.value = "scheduled_query" );
这里通过调度任务的系统名称(schedule_name)关联,就能拿到对应的显示名称。
注意:访问SCHEDULED_QUERIES视图需要具备bigquery.jobs.list权限,且必须指定正确的区域前缀。
内容的提问来源于stack exchange,提问作者sha
相关产品推荐
相关产品推荐

