Automação Snowflake
Automatize seus fluxos de trabalho no data warehouse Snowflake — descubra bancos de dados, navegue por esquemas e tabelas, execute SQL arbitrário (SELECT, DDL, DML) e integre operações de dados do Snowflake em pipelines entre aplicações.
Documentação do toolkit: composio.dev/toolkits/snowflake
Configuração
- Adicione o servidor MCP do Composio ao seu cliente:
https://rube.app/mcp - Conecte sua conta Snowflake quando solicitado (credenciais da conta ou autenticação por par de chaves)
- Comece a usar os fluxos de trabalho abaixo
Fluxos de Trabalho Principais
1. Listar Bancos de Dados
Use SNOWFLAKE_SHOW_DATABASES para descobrir bancos de dados disponíveis com filtragem opcional e suporte a Time Travel.
Ferramenta: SNOWFLAKE_SHOW_DATABASES
Entradas:
- like_pattern: string (curinga SQL, ex.: "%teste%") — insensível a maiúsculas/minúsculas
- starts_with: string (ex.: "PROD") — sensível a maiúsculas/minúsculas
- limit: inteiro (máx. 10000)
- history: booleano (inclui bancos de dados deletados dentro da retenção Time Travel)
- terse: booleano (retorna subconjunto de colunas: created_on, name, kind, database_name, schema_name)
- role: string (função a ser usada na execução)
- warehouse: string (opcional, não necessário para SHOW DATABASES)
- timeout: inteiro (segundos)
2. Navegar por Esquemas
Use SNOWFLAKE_SHOW_SCHEMAS para listar esquemas dentro de um banco de dados ou em toda a conta.
Ferramenta: SNOWFLAKE_SHOW_SCHEMAS
Entradas:
- database: string (contexto do banco de dados)
- in_scope: "ACCOUNT" | "DATABASE" | "<nome_do_banco_específico>"
- like_pattern: string (filtro curinga SQL)
- starts_with: string (prefixo, sensível a maiúsculas/minúsculas)
- limit: inteiro (máx. 10000)
- history: booleano (inclui esquemas deletados)
- terse: booleano (apenas subconjunto de colunas)
- role, warehouse, timeout: string/inteiro (opcionais)
3. Listar Tabelas
Use SNOWFLAKE_SHOW_TABLES para descobrir tabelas com metadados incluindo contagem de linhas, tamanhos e chaves de clustering.
Ferramenta: SNOWFLAKE_SHOW_TABLES
Entradas:
- database: string (contexto do banco de dados)
- schema: string (contexto do esquema)
- in_scope: "ACCOUNT" | "DATABASE" | "SCHEMA" | "<nome_específico>"
- like_pattern: string (ex.: "%cliente%")
- starts_with: string (ex.: "FATO", "DIM", "TEMP")
- limit: inteiro (máx. 10000)
- history: booleano (inclui tabelas deletadas)
- terse: booleano (apenas subconjunto de colunas)
- role, warehouse, timeout: string/inteiro (opcionais)
4. Executar Instruções SQL
Use SNOWFLAKE_EXECUTE_SQL para consultas SELECT, DDL (CREATE/ALTER/DROP) e DML (INSERT/UPDATE/DELETE) com vinculações parametrizadas.
Ferramenta: SNOWFLAKE_EXECUTE_SQL
Entradas:
- statement: string (obrigatório) — instrução(ões) SQL, separadas por ponto e vírgula para múltiplas instruções
- database: string (sensível a maiúsculas/minúsculas, usa DEFAULT_NAMESPACE como fallback)
- schema_name: string (sensível a maiúsculas/minúsculas)
- warehouse: string (sensível a maiúsculas/minúsculas, obrigatório para consultas que exigem computação)
- role: string (sensível a maiúsculas/minúsculas, usa DEFAULT_ROLE como fallback)
- bindings: objeto (valores de consulta parametrizados para prevenir injeção de SQL)
- parameters: objeto (parâmetros de sessão do Snowflake)
- timeout: inteiro (segundos; 0 = máx. 604800s)
Exemplos:
"SELECT * FROM minha_tabela LIMIT 100;""CREATE TABLE teste (id INT, nome STRING);""ALTER SESSION SET QUERY_TAG='minha_tag'; SELECT COUNT(*) FROM minha_tabela;"
Armadilhas Conhecidas
| Armadilha | Detalhe |
|---|---|
| Sensibilidade a maiúsculas/minúsculas | Nomes de banco de dados, esquema, warehouse e função são sensíveis a maiúsculas/minúsculas em SNOWFLAKE_EXECUTE_SQL. |
| Warehouse necessário para computação | Consultas SELECT e DML exigem um warehouse ativo. Comandos SHOW não precisam. |
| Execução de múltiplas instruções | Várias instruções separadas por ponto e vírgula são executadas em sequência automaticamente. |
| Prevenção de injeção de SQL | Sempre use o parâmetro bindings para valores fornecidos pelo usuário para evitar ataques de injeção. |
| Paginação com LIMIT | Comandos SHOW suportam limit (máx. 10000) e from_name para paginação baseada em cursor. |
| Time Travel | Defina history: true para incluir objetos deletados ainda dentro do período de retenção. |
Referência Rápida
| Slug da Ferramenta | Descrição |
|---|---|
SNOWFLAKE_SHOW_DATABASES | Listar bancos de dados com filtragem e suporte a Time Travel |
SNOWFLAKE_SHOW_SCHEMAS | Listar esquemas dentro de um banco de dados ou em toda a conta |
SNOWFLAKE_SHOW_TABLES | Listar tabelas com metadados (contagem de linhas, tamanho, clustering) |
SNOWFLAKE_EXECUTE_SQL | Executar SQL: SELECT, DDL, DML com vinculações parametrizadas |
Desenvolvido por Composio