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
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 Befehlsnow sql
weiter, etwacat 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"
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();'
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"
Bei der Ausführung ersetzt der Befehl den Wert
dev
in der Variablen<% Datenbank %>
, um den Bezeichnerdev.logs
zu erstellen und sendet dann dieselect * 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