如何列出Databricks中访问量最高的表?
获取Databricks访问量最高的表清单
你可以通过查询Databricks内置的系统审计日志表,直接统计得到包含数据库名称、表名、累计访问次数字段的高访问量表清单,查询前请确认你的账号已被授予system.access审计日志表的SELECT权限。
可直接运行的统计SQL
在Databricks SQL查询编辑器或者Notebook单元格中运行以下代码即可得到结果:
SELECT request_params.database_name AS `Database Name`, request_params.table_name AS `Table Name`, COUNT(*) AS `Count` FROM system.access.audit_logs WHERE -- 匹配所有表访问类操作事件 action_name IN ( 'getTable', 'loadTable', 'readTable', 'executeQuery', 'createResultDataFrame' ) -- 排除系统库自身的访问记录,避免系统操作干扰统计结果 AND request_params.database_name NOT LIKE 'system%' AND request_params.database_name IS NOT NULL AND request_params.table_name IS NOT NULL GROUP BY request_params.database_name, request_params.table_name -- 按访问次数从高到低排序,需要取TopN可在末尾加LIMIT + 数字 ORDER BY `Count` DESC
补充说明
- 统计结果仅覆盖工作区开启系统审计表之后的访问数据,开启前的历史访问记录不会纳入统计
- 如果查询时提示找不到
system.access.audit_logs表,需要联系工作区/账号管理员先开通系统schema的访问权限 - 如需统计指定时间周期的访问量,可在WHERE子句中增加
event_date BETWEEN '开始日期' AND '结束日期'的时间过滤条件 - 该统计会覆盖所有访问入口的操作,包括Notebook调试、定时作业跑数、SQL查询、第三方BI工具连接访问等场景
内容的提问来源于stack exchange,提问作者Raphael Nascimento Santos
相关产品推荐
相关产品推荐

