snow sql

Führt eine Snowflake-Abfrage aus. Verwenden Sie entweder die Option Abfrage, Dateiname oder Eingabe. Die auszuführende Abfrage kann mit der Option „query“, der Option „filename“ (alle Abfragen aus der Datei werden ausgeführt) oder über „stdin“ durch Weiterleiten der Ausgabe eines anderen Befehls angegeben werden. Beispiel: cat my.sql | snow sql -i. Der Befehl unterstützt die clientseitige Variablenersetzung.

Syntax

snow sql
  --query <query>
  --filename <files>
  --stdin
  --variable <data_override>
  --project <project_definition>
  --env <env_overrides>
  --connection <connection>
  --host <host>
  --port <port>
  --account <account>
  --user <user>
  --password <password>
  --authenticator <authenticator>
  --private-key-file <private_key_file>
  --token-file-path <token_file_path>
  --database <database>
  --schema <schema>
  --role <role>
  --warehouse <warehouse>
  --temporary-connection
  --mfa-passcode <mfa_passcode>
  --enable-diag
  --diag-log-path <diag_log_path>
  --diag-allowlist-path <diag_allowlist_path>
  --format <format>
  --verbose
  --debug
  --silent
Copy

Argumente

Keine

Optionen

--query, -q TEXT

Auszuführende Abfrage.

--filename, -f FILE

Auszuführende Datei. Standard: [].

--stdin, -i

Abfrage wird von der Standardeingabe gelesen. Verwenden Sie diese Option, wenn Sie Eingaben an diesen Befehl weiterleiten. Standard: false

--variable, -D TEXT

Zeichenfolge im Format von Schlüssel=Wert. Falls angegeben, wird der SQL-Inhalt als Vorlage behandelt und mit den bereitgestellten Daten gerendert.

-p, --project TEXT

Pfad, in dem sich das Snowflake-Projekt befindet. Standardmäßig wird das aktuelle Verzeichnis verwendet.

--env TEXT

Zeichenfolge im Format von Schlüssel=Wert. Überschreibt Variablen aus dem env-Abschnitt, die für Vorlagen verwendet werden. Standard: [].

--connection, -c, --environment TEXT

Name der Verbindung, wie in Ihrer config.toml-Datei definiert. Standard: Standard.

--host TEXT

Host-Adresse für die Verbindung. Überschreibt den für die Verbindung angegebenen Wert.

--port INTEGER

Port für die Verbindung. Überschreibt den für die Verbindung angegebenen Wert.

--account, --accountname TEXT

Name, der Ihrem Snowflake-Konto zugewiesen wurde. Überschreibt den für die Verbindung angegebenen Wert.

--user, --username TEXT

Benutzername für die Verbindung zu Snowflake. Überschreibt den für die Verbindung angegebenen Wert.

--password TEXT

Snowflake-Kennwort. Überschreibt den für die Verbindung angegebenen Wert.

--authenticator TEXT

Snowflake-Authentifikator. Überschreibt den für die Verbindung angegebenen Wert.

--private-key-file, --private-key-path TEXT

Dateipfad zum privaten Snowflake-Schlüssel. Überschreibt den für die Verbindung angegebenen Wert.

--token-file-path TEXT

Pfad zur Datei mit einem OAuth-Token, das bei der Verbindung mit Snowflake verwendet werden soll.

--database, --dbname TEXT

Zu verwendende Datenbank. Überschreibt den für die Verbindung angegebenen Wert.

--schema, --schemaname TEXT

Zu verwendendes Datenbankschema. Überschreibt den für die Verbindung angegebenen Wert.

--role, --rolename TEXT

Zu verwendende Rolle. Überschreibt den für die Verbindung angegebenen Wert.

--warehouse TEXT

Zu verwendendes Warehouse. Überschreibt den für die Verbindung angegebenen Wert.

--temporary-connection, -x

Verwendet eine mit Befehlszeilenparametern definierte Verbindung anstelle einer in config definierten. Standard: false

--mfa-passcode TEXT

Für die mehrstufige Authentifizierung (MFA) zu verwendendes Token.

--enable-diag

Führt den Python-Konnektor-Diagnosetest aus. Standard: false

--diag-log-path TEXT

Pfad des Diagnoseberichts. Standard: <temporary_directory>.

--diag-allowlist-path TEXT

Pfad des Diagnoseberichts zur optionalen Zulassungsliste.

--format [TABLE|JSON]

Gibt das Ausgabeformat an. Standard: TABLE.

--verbose, -v

Zeigt Protokolleinträge für die Protokolliergrade info und höher an. Standard: false

--debug

Zeigt Protokolleinträge für die Protokollebenen debug und höher an; Debug-Protokolle enthalten zusätzliche Informationen. Standard: false

--silent

Schaltet Zwischenausgaben auf der Konsole aus. Standard: false

--help

Zeigt den Hilfetext für diesen Befehl an.

Nutzungshinweise

Sie können für die SQL-Abfrage, die ausgeführt werden soll, eine der folgenden Optionen angeben:

  • Geben Sie die Zeichenfolge für die Abfrage mit der Option --query an.

  • Verwenden Sie die Option --filename, um eine Datei anzugeben, die die auszuführende(n) Abfrage(n) SQL enthält.

  • Geben Sie die Abfrage als stdin an und leiten Sie sie an den Befehl snow sql weiter, etwa cat my.sql | snow sql.

  • Wenn Ihre Abfrage Sonderzeichen enthält, wie z. B. das Dollarzeichen in den SYSTEM-Funktionen, die die Shell nicht interpretieren soll, können Sie eine der folgenden Möglichkeiten nutzen:

    • Schließen Sie die Abfrage in einfache Anführungszeichen statt in doppelte Anführungszeichen ein, wie in:

      snow sql -q 'SELECT SYSTEM$CLIENT_VERSION_INFO()'

    • Verwenden Sie ein Escape-Zeichen für das Sonderzeichen aus, wie in:

      snow sql -q "SELECT SYSTEM\$CLIENT_VERSION_INFO()"

  • Verwenden Sie Variablen für die Erstellung von SQL-Abfragen mit einer Kombination aus einem <% variable_name %>-Platzhalter in Ihren SQL Abfragen und einer -D-Befehlszeilenoption im Format:

    snow sql -q "select * from my-database order by <% column_name %>" -D "column_name=Country"
    
    Copy

    Bemerkung

    Sie können derzeit die Syntax SnowSQL &variable_name und <% variable_name %> für Vorlagen verwenden. Snowflake empfiehlt jedoch die Verwendung der <% variable_name %>-Syntax.

Beispiele

  • Das folgende Beispiel verwendet die SQL-Systemfunktion SYSTEM$CLIENT_VERSION_INFO, um Versionsinformationen zu Clients und Treibern zurückzugeben.

    snow sql --query 'SELECT SYSTEM$CLIENT_VERSION_INFO();'
    
    Copy
    select current_version();
    +-------------------+
    | CURRENT_VERSION() |
    |-------------------|
    | 8.25.1            |
    +-------------------+
    
  • Das folgende Beispiel zeigt, wie Sie eine Datenbank mithilfe einer clientseitigen Variablen angeben können:

    snow sql -q "select * from <% database %>.logs" -D "database=dev"
    
    Copy

    Bei der Ausführung ersetzt der Befehl den Wert dev in der Variablen <% Datenbank %>, um den Bezeichner dev.logs zu erstellen und sendet dann die select * from dev.logs SQL-Abfrage zur Verarbeitung an Snowflake.

    Bemerkung

    Sie können derzeit die SnowSQL &variable_name und & { variable_name }-Syntax für Vorlagen verwenden. Snowflake empfiehlt jedoch die Verwendung der <% variable_name %>-Syntax.

  • Dieses Beispiel zeigt, wie Sie Umgebungsvariablen mit der Option --env übergeben können:

    snow sql -q "select '<% ctx.env.test %>'" --env test=value_from_cli
    
    Copy