如何查询BigQuery中各数据表的创建用户信息
BigQuery查询数据表创建用户的方案
INFORMATION_SCHEMA.TABLES 视图本身未存储数据表创建用户的相关信息,你可以结合项目作业日志视图来查询对应的创建人记录。
优化查询语句
下面的查询语句可获取每一张表最新创建版本的对应信息,同时仅筛选当前仍存在的数据表结果:
SELECT x.* EXCEPT(is_current) FROM ( SELECT destination_table.dataset_id as table_schema, destination_table.table_id as table_name, user_email, creation_time, CASE WHEN RANK() OVER(PARTITION BY destination_table.dataset_id, destination_table.table_id ORDER BY creation_time DESC) = 1 THEN 1 ELSE 0 END as is_current, FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT WHERE statement_type IN ('CREATE_TABLE', 'CREATE_TABLE_AS_SELECT') ORDER BY creation_time DESC) x INNER JOIN `region-us`.INFORMATION_SCHEMA.TABLES y ON x.table_schema = y.table_schema AND x.table_name = y.table_name WHERE is_current = 1 ORDER BY 1,2;
注意:如果你的BigQuery数据集不在美区(
region-us),需要把语句中的区域标识替换为你实际使用的区域。
内容的提问来源于stack exchange,提问作者Mike Deluca
相关产品推荐
相关产品推荐

