能否在Snowsight中编写查询获取文件夹内工作表的使用统计?
可以在Snowsight中通过查询系统视图获取指定文件夹内工作表的使用统计
你可以通过组合查询Snowflake的账户级系统视图,获取指定文件夹下工作表的使用统计信息。以下是具体的SQL查询语句,涵盖你需要的所有字段:
WITH worksheet_base AS ( SELECT ws.WORKSHEET_ID, ws.NAME AS WORKSHEET_NAME, ws.FOLDER_PATH, ws.LAST_UPDATED AS LAST_UPDATE_DATE FROM SNOWFLAKE.ACCOUNT_USAGE.WORKSHEETS ws WHERE ws.FOLDER_PATH = '/你的指定文件夹路径/' -- 替换为目标文件夹路径,格式需首尾带斜杠 ), worksheet_usage AS ( SELECT qh.WORKSHEET_ID, COUNT(DISTINCT qh.QUERY_ID) AS RUN_COUNT, MAX(qh.START_TIME) AS LAST_RUN_DATE, ARRAY_AGG(DISTINCT qh.USER_NAME) WITHIN GROUP (ORDER BY qh.USER_NAME) AS USERS_WHO_RAN FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY qh WHERE qh.QUERY_TYPE = 'WORKSHEET_RUN' GROUP BY qh.WORKSHEET_ID ) SELECT wb.WORKSHEET_NAME, wb.FOLDER_PATH, wb.LAST_UPDATE_DATE, COALESCE(wu.RUN_COUNT, 0) AS RUN_COUNT, wu.LAST_RUN_DATE, wu.USERS_WHO_RAN FROM worksheet_base wb LEFT JOIN worksheet_usage wu ON wb.WORKSHEET_ID = wu.WORKSHEET_ID ORDER BY wb.LAST_UPDATE_DATE DESC;
关键说明:
- 文件夹路径筛选:在
worksheet_base子查询的WHERE子句中,替换'/你的指定文件夹路径/'为实际路径,比如'/Sales/Quarterly Analysis/',确保路径格式正确。 - 权限要求:执行该查询需要拥有
ACCOUNT_USAGE视图的访问权限,通常需使用ACCOUNTADMIN角色,或被授予MONITOR USAGE权限。 - 字段细节:
LAST_UPDATE_DATE:工作表最后被编辑或保存的日期RUN_COUNT:工作表被运行的总次数(按查询ID去重)LAST_RUN_DATE:工作表最近一次被运行的时间USERS_WHO_RAN:所有运行过该工作表的用户列表(数组格式)
如果需要单独统计每个用户的运行次数,可使用以下调整后的查询:
WITH worksheet_base AS ( SELECT ws.WORKSHEET_ID, ws.NAME AS WORKSHEET_NAME, ws.FOLDER_PATH FROM SNOWFLAKE.ACCOUNT_USAGE.WORKSHEETS ws WHERE ws.FOLDER_PATH = '/你的指定文件夹路径/' ), user_usage AS ( SELECT qh.WORKSHEET_ID, qh.USER_NAME, COUNT(qh.QUERY_ID) AS USER_RUN_COUNT, MAX(qh.START_TIME) AS USER_LAST_RUN_DATE FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY qh WHERE qh.QUERY_TYPE = 'WORKSHEET_RUN' GROUP BY qh.WORKSHEET_ID, qh.USER_NAME ) SELECT wb.WORKSHEET_NAME, uu.USER_NAME, uu.USER_RUN_COUNT, uu.USER_LAST_RUN_DATE, ws.LAST_UPDATED AS WORKSHEET_LAST_UPDATE_DATE FROM worksheet_base wb JOIN user_usage uu ON wb.WORKSHEET_ID = uu.WORKSHEET_ID JOIN SNOWFLAKE.ACCOUNT_USAGE.WORKSHEETS ws ON wb.WORKSHEET_ID = ws.WORKSHEET_ID ORDER BY wb.WORKSHEET_NAME, uu.USER_NAME;
内容的提问来源于stack exchange,提问作者dnaeye
相关产品推荐
相关产品推荐

