You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:08:24