Was macht Snowflake-Automation?
Automatisieren Sie Ihre Snowflake-Data-Warehouse-Workflows – entdecken Sie Datenbanken, durchsuchen Sie Schemata und Tabellen, führen Sie beliebige SQL (SELECT, DDL, DML) aus und integrieren Sie Snowflake-Datenoperationen in plattformübergreifende Pipelines.
Toolkit-Dokumentation: composio.dev/toolkits/snowflake
Einrichtung
- Fügen Sie den Composio MCP-Server zu Ihrem Client hinzu:
https://rube.app/mcp - Verbinden Sie Ihr Snowflake-Konto, wenn Sie dazu aufgefordert werden (Konto-Anmeldedaten oder Schlüsselpaar-Authentifizierung)
- Beginnen Sie mit den untenstehenden Workflows
Kern-Workflows
1. Datenbanken auflisten
Verwenden Sie SNOWFLAKE_SHOW_DATABASES, um verfügbare Datenbanken mit optionaler Filterung und Time Travel-Unterstützung zu entdecken.
Tool: SNOWFLAKE_SHOW_DATABASES
Eingaben:
- like_pattern: string (SQL-Wildcard, z.B. "%test%") -- Groß-/Kleinschreibung wird ignoriert
- starts_with: string (z.B. "PROD") -- Groß-/Kleinschreibung beachten
- limit: integer (max 10000)
- history: boolean (gelöschte Datenbanken innerhalb der Time Travel-Aufbewahrung einschließen)
- terse: boolean (nur eine Teilmenge der Spalten zurückgeben: created_on, name, kind, database_name, schema_name)
- role: string (Rolle, die für die Ausführung verwendet werden soll)
- warehouse: string (optional, nicht erforderlich für SHOW DATABASES)
- timeout: integer (Sekunden)
2. Schemata durchsuchen
Verwenden Sie SNOWFLAKE_SHOW_SCHEMAS, um Schemata innerhalb einer Datenbank oder im gesamten Konto aufzulisten.
Tool: SNOWFLAKE_SHOW_SCHEMAS
Eingaben:
- database: string (Datenbankkontext)
- in_scope: "ACCOUNT" | "DATABASE" | "<spezifischer_datenbankname>"
- like_pattern: string (SQL-Wildcard-Filter)
- starts_with: string (Präfix, Groß-/Kleinschreibung beachten)
- limit: integer (max 10000)
- history: boolean (gelöschte Schemata einschließen)
- terse: boolean (nur Teilmenge der Spalten)
- role, warehouse, timeout: string/integer (optional)
3. Tabellen auflisten
Verwenden Sie SNOWFLAKE_SHOW_TABLES, um Tabellen mit Metadaten wie Zeilenanzahl, Größe und Clustering-Schlüsseln zu entdecken.
Tool: SNOWFLAKE_SHOW_TABLES
Eingaben:
- database: string (Datenbankkontext)
- schema: string (Schematakontext)
- in_scope: "ACCOUNT" | "DATABASE" | "SCHEMA" | "<spezifischer_name>"
- like_pattern: string (z.B. "%customer%")
- starts_with: string (z.B. "FACT", "DIM", "TEMP")
- limit: integer (max 10000)
- history: boolean (gelöschte Tabellen einschließen)
- terse: boolean (nur Teilmenge der Spalten)
- role, warehouse, timeout: string/integer (optional)
4. SQL-Anweisungen ausführen
Verwenden Sie SNOWFLAKE_EXECUTE_SQL für SELECT-Abfragen, DDL (CREATE/ALTER/DROP) und DML (INSERT/UPDATE/DELETE) mit parametrisierten Bindungen.
Tool: SNOWFLAKE_EXECUTE_SQL
Eingaben:
- statement: string (erforderlich) -- SQL-Anweisung(en), durch Semikolon getrennt für mehrere Anweisungen
- database: string (Groß-/Kleinschreibung beachten, fällt auf DEFAULT_NAMESPACE zurück)
- schema_name: string (Groß-/Kleinschreibung beachten)
- warehouse: string (Groß-/Kleinschreibung beachten, erforderlich für compute-intensive Abfragen)
- role: string (Groß-/Kleinschreibung beachten, fällt auf DEFAULT_ROLE zurück)
- bindings: object (parametrisierte Abfragewerte zur Verhinderung von SQL-Injection)
- parameters: object (Snowflake-Sitzungsparameter)
- timeout: integer (Sekunden; 0 = max 604800s)
Beispiele:
"SELECT * FROM my_table LIMIT 100;""CREATE TABLE test (id INT, name STRING);""ALTER SESSION SET QUERY_TAG='mytag'; SELECT COUNT(*) FROM my_table;"
Bekannte Fallstricke
| Fallstrick | Detail |
|---|---|
| Groß-/Kleinschreibung | Datenbank-, Schema-, Warehouse- und Rollennamen sind in SNOWFLAKE_EXECUTE_SQL groß-/kleinschreibungsempfindlich. |
| Warehouse für Berechnungen erforderlich | SELECT- und DML-Abfragen erfordern ein laufendes Warehouse. SHOW-Befehle nicht. |
| Mehrfachanweisungen | Mehrere Anweisungen, die durch Semikolons getrennt sind, werden automatisch nacheinander ausgeführt. |
| SQL-Injection-Prävention | Verwenden Sie immer den bindings-Parameter für benutzergelieferte Werte, um Injection-Angriffe zu verhindern. |
| Paginierung mit LIMIT | SHOW-Befehle unterstützen limit (max 10000) und from_name für cursor-basierte Paginierung. |
| Time Travel | Setzen Sie history: true, um gelöschte Objekte einzuschließen, die sich noch im Aufbewahrungszeitraum befinden. |
Kurzreferenz
| Tool Slug | Beschreibung |
|---|---|
SNOWFLAKE_SHOW_DATABASES | Datenbanken mit Filterung und Time Travel-Unterstützung auflisten |
SNOWFLAKE_SHOW_SCHEMAS | Schemata innerhalb einer Datenbank oder kontoweit auflisten |
SNOWFLAKE_SHOW_TABLES | Tabellen mit Metadaten (Zeilenanzahl, Größe, Clustering) auflisten |
SNOWFLAKE_EXECUTE_SQL | SQL ausführen: SELECT, DDL, DML mit parametrisierten Bindungen |
Bereitgestellt von Composio