Snowflake数据仓库自动化技能Skill SnowflakeAutomation

该技能用于自动化Snowflake数据仓库的操作,包括列出数据库、模式和表,执行SQL查询和DDL/DML语句,管理数据工作流。通过Composio MCP集成,实现跨应用数据管道自动化,提高数据工程和数据分析效率。关键词:Snowflake、数据仓库、自动化、SQL、数据工程、ETL、Composio、云数据库。

数据仓库 1 次安装 3 次浏览 更新于 3/12/2026

name: Snowflake 自动化 description: “自动化Snowflake数据仓库操作 – 列出数据库、模式和表,执行SQL语句,并通过Composio MCP集成管理数据工作流。” requires: mcp: - rube

Snowflake 自动化

自动化您的Snowflake数据仓库工作流 – 发现数据库,浏览模式和表,执行任意SQL(SELECT、DDL、DML),并将Snowflake数据操作集成到跨应用管道中。

工具包文档: composio.dev/toolkits/snowflake


设置

  1. 将Composio MCP服务器添加到您的客户端: https://rube.app/mcp
  2. 提示时连接您的Snowflake账户(账户凭据或密钥对认证)
  3. 开始使用下面的工作流

核心工作流

1. 列出数据库

使用 SNOWFLAKE_SHOW_DATABASES 来发现可用的数据库,支持可选过滤和时间旅行。

工具: SNOWFLAKE_SHOW_DATABASES
输入:
  - like_pattern: 字符串(SQL通配符,例如 "%test%")-- 不区分大小写
  - starts_with: 字符串(例如 "PROD")-- 区分大小写
  - limit: 整数(最大10000)
  - history: 布尔值(包括时间旅行保留期内已删除的数据库)
  - terse: 布尔值(返回列子集:创建时间、名称、类型、数据库名、模式名)
  - role: 字符串(用于执行的角色)
  - warehouse: 字符串(可选,SHOW DATABASES不需要)
  - timeout: 整数(秒)

2. 浏览模式

使用 SNOWFLAKE_SHOW_SCHEMAS 列出数据库内或账户范围内的模式。

工具: SNOWFLAKE_SHOW_SCHEMAS
输入:
  - database: 字符串(数据库上下文)
  - in_scope: "ACCOUNT" | "DATABASE" | "<特定数据库名>"
  - like_pattern: 字符串(SQL通配符过滤)
  - starts_with: 字符串(区分大小写前缀)
  - limit: 整数(最大10000)
  - history: 布尔值(包括已删除的模式)
  - terse: 布尔值(仅列子集)
  - role, warehouse, timeout: 字符串/整数(可选)

3. 列出表

使用 SNOWFLAKE_SHOW_TABLES 发现表,包括行数、大小和聚类键等元数据。

工具: SNOWFLAKE_SHOW_TABLES
输入:
  - database: 字符串(数据库上下文)
  - schema: 字符串(模式上下文)
  - in_scope: "ACCOUNT" | "DATABASE" | "SCHEMA" | "<特定名称>"
  - like_pattern: 字符串(例如 "%customer%")
  - starts_with: 字符串(例如 "FACT", "DIM", "TEMP")
  - limit: 整数(最大10000)
  - history: 布尔值(包括已删除的表)
  - terse: 布尔值(仅列子集)
  - role, warehouse, timeout: 字符串/整数(可选)

4. 执行SQL语句

使用 SNOWFLAKE_EXECUTE_SQL 执行SELECT查询、DDL(创建/修改/删除)和DML(插入/更新/删除),支持参数化绑定。

工具: SNOWFLAKE_EXECUTE_SQL
输入:
  - statement: 字符串(必需)-- SQL语句,多个语句用分号分隔
  - database: 字符串(区分大小写,默认为DEFAULT_NAMESPACE)
  - schema_name: 字符串(区分大小写)
  - warehouse: 字符串(区分大小写,计算密集型查询必需)
  - role: 字符串(区分大小写,默认为DEFAULT_ROLE)
  - bindings: 对象(参数化查询值,防止SQL注入)
  - parameters: 对象(Snowflake会话级参数)
  - timeout: 整数(秒;0 = 最大604800秒)

示例:

  • "SELECT * FROM my_table LIMIT 100;"
  • "CREATE TABLE test (id INT, name STRING);"
  • "ALTER SESSION SET QUERY_TAG='mytag'; SELECT COUNT(*) FROM my_table;"

已知问题

问题 细节
区分大小写 SNOWFLAKE_EXECUTE_SQL 中,数据库、模式、仓库和角色名称区分大小写。
计算必需仓库 SELECT和DML查询需要运行中的仓库。SHOW命令不需要。
多语句执行 多个语句用分号分隔自动顺序执行。
SQL注入预防 始终使用 bindings 参数处理用户提供值以防止注入攻击。
限制分页 SHOW 命令支持 limit(最大10000)和 from_name 用于基于游标的分页。
时间旅行 设置 history: true 以包括保留期内已删除的对象。

快速参考

工具标识 描述
SNOWFLAKE_SHOW_DATABASES 列出数据库,支持过滤和时间旅行
SNOWFLAKE_SHOW_SCHEMAS 列出数据库内或账户范围的模式
SNOWFLAKE_SHOW_TABLES 列出表及其元数据(行数、大小、聚类)
SNOWFLAKE_EXECUTE_SQL 执行SQL:SELECT、DDL、DML,支持参数化绑定

Composio 提供支持