首页 > 解决方案 > 如何找到针对数据库/模式运行的 DDL 语句

问题描述

我有特定的要求,我需要在特定时间段内只找到针对我的雪花数据库/模式运行的 DDL,我们如何使用 query_history 或任何其他方法找到,知道吗?

标签: snowflake-cloud-data-platform

解决方案


可以使用QUERY_HISTORY

SELECT *
FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY())
     -- END_TIME_RANGE_START/END_TIME_RANGE_END  to get specific time range
WHERE DATABASE_NAME ILIKE '<db_name>'
  AND SCHEMA_NAME   ILIKE '<schema_name>'
  AND QUERY_TYPE    ILIKE ANY ('CREATE%', 'ALTER%', 'DROP%', 'DESCRIBE%');

QUERY_TYPE列包含更具描述性的值,例如:CREATE_VIEW/CREATE_TABLE_AS_SELECT/CRATE_TABLE/ALTER_TABLE_ADD_COLUMN等。

为了检索整个DDL 命令类,使用了通配符模式CREATE%ALTER%. 可以根据具体需要进一步调整。


推荐阅读