Konfigurieren von Snowflake CLI

Snowflake CLI verwendet eine globale Konfigurationsdatei namens config.toml, um Verbindungen und Protokolle für Snowflake CLI zu konfigurieren. Wenn die Datei nicht existiert, wird bei der ersten Ausführung eines beliebigen snow-Befehls automatisch eine leere config.toml-Datei erstellt, die Sie dann mit den gewünschten Verbindungen füllen können. Weitere Informationen zu toml-Dateiformaten finden Sie unter TOML (Tom’s Obvious Minimal Language). Die Snowflake-Python-Bibliotheken unterstützen derzeit TOML, Version 1.0.0.

Die config.toml unterstützt die folgenden Abschnitte:

  • [Verbindungen] zur Definition und zur Verwaltung von Verbindungen

  • [Protokolle] zum Konfigurieren, welche Arten von Meldungen in den Dateien gespeichert werden

Eine Snowflake CLI-Konfigurationsdatei hat die folgende Struktur:

[connections]
[connections.myconnection]
account = "myaccount"
user = "jdoe"
...

[connections.testingconnection]
account = "myaccount"
user = "jdoe"
...

[cli.logs]
save_logs = true
level = "info"
path = "/home/<username>/.snowflake/logs"
Copy

Speicherort der .toml-Konfigurationsdatei

Standardmäßig sucht Snowflake CLI die Datei config.toml im Verzeichnis ~/.snowflake oder, falls dieses Verzeichnis nicht existiert, an einem systemspezifischen Speicherort, wie unten aufgelistet. Sie können auch mit dem Flag --config-file oder der Umgebungsvariablen SNOWFLAKE_HOME angeben, welche Datei für die Konfiguration verwendet werden soll.

  • Wenn Sie die Option --config-file angeben (z. B. snow --config-file ./my-config-file-path), verwendet Snowflake CLI die angegebene Konfigurationsdatei.

  • Wenn die Umgebungsvariable SNOWFLAKE_HOME eingestellt ist, verwendet Snowflake CLI den durch diese Variable angegebenen Speicherort.

  • Wenn auf Ihrem Computer ein Verzeichnis ~/.snowflake existiert, verwendet Snowflake CLI die Datei ~/.snowflake/config.toml.

  • Andernfalls verwendet die Snowflake CLI die Datei config.toml an einem der folgenden Speicherorte, abhängig von Ihrem Betriebssystem:

    • Linux: ~/.config/snowflake/config.toml, aber Sie können es mit XDG vars aktualisieren

    • Windows: %USERPROFILE%\AppData\Local\snowflake\config.toml

    • Mac: ~/Library/Application Support/snowflake/config.toml

Bemerkung

Bei Snowflake CLI unter MacOS oder Linux muss die Datei config.toml ihre Dateiberechtigungen darauf beschränken, dass das Lesen und Schreiben nur für den Eigentümer der Datei möglich ist. Um die erforderlichen Dateiberechtigungen festzulegen, führen Sie die folgenden Befehle aus:

chown $USER config.toml
chmod 0600 config.toml
Copy

Wählen Sie eine andere Konfigurationsdatei

In manchen Situationen, z. B. in Umgebungen mit kontinuierlicher Integration und kontinuierlicher Bereitstellung (CI/CD), ziehen Sie es vielleicht vor, eigene Konfigurationsdateien für Test- und Bereitstellungspipelines zu erstellen, anstatt alle möglichen Konfigurationen in einer einzelnen Snowflake-Standardkonfigurationsdatei zu definieren.

Um eine andere Konfigurationsdatei als Ihre Standarddatei zu verwenden, können Sie die Option --config-file für den Befehl snow verwenden, wie gezeigt:

snow --config-file="my_config.toml" connection test
Copy

Unterstützung von Systemumgebungsvariablen

Snowflake CLI unterstützt die Verwendung von Systemumgebungsvariablen, um Parameterwerte zu überschreiben, die in Ihrer config.toml-Datei definiert sind, und zwar im folgenden Format:

SNOWFLAKE_<config-section>_<variable>=<value>
Copy

Wobei:

  • <config_section> ist der Name eines Abschnitts in der Konfigurationsdatei, wobei die Zeiträume (.) durch Unterstriche (_) ersetzt werden, z. B. CLI_LOGS.

  • variable ist der Name einer in diesem Abschnitt definierten Variable, z. B. path.

Einige Beispiele sind:

  • Überschreiben Sie den Parameter path im Abschnitt [cli.logs] in der config.toml-Datei:

    export SNOWFLAKE_CLI_LOGS_PATH="/Users/jondoe/snowcli_logs"
    
    Copy
  • Legen Sie das Kennwort für die Verbindung myconnection fest:

    export SNOWFLAKE_CONNECTIONS_MYCONNECTION_PASSWORD="*******"
    
    Copy
  • Legen Sie den Standardnamen für die Verbindung fest:

    export SNOWFLAKE_DEFAULT_CONNECTION_NAME="myconnection"
    
    Copy

Protokollierung konfigurieren

Standardmäßig speichert Snowflake CLI Meldungen der Ebenen INFO, WARNING und ERROR automatisch in Protokolldateien. Um die Protokollierung zu deaktivieren oder anzupassen, erstellen Sie in Ihrer config.toml-Datei einen Abschnitt [cli.logs]:

[cli.logs]
save_logs = true
level = "info"
path = "/home/<username>/.snowflake/logs"
Copy

Wobei:

  • save_logs gibt an, ob die Protokolle in Dateien gespeichert werden sollen. Standard: true.

  • level gibt an, welche Meldungen in den Protokolldateien gespeichert werden sollen. Wählen Sie eine der folgenden Ebenen aus, die alle Ebenen unterhalb der ausgewählten Ebene einschließt:

    • debug

      Warnung

      Das Umschalten auf den Protokolliergrad debug kann sensible Informationen preisgeben, wie z. B. ausgeführte SQL-Abfragen. Seien Sie vorsichtig, wenn Sie diesen Protokolliergrad aktivieren.

    • info

    • warning

    • error

    Standard: info

  • path gibt den absoluten Pfad zum Speichern der Protokolldateien an. Das Format des Pfads variiert je nach Betriebssystem:

    • Linux: path = "/home/<your_username>/.config/snowflake/logs"

    • MacOS: path = "/Users/<your_username>/Library/Application Support/snowflake/logs"

    • Windows: path = "C:\\Users\\<your_username>\\AppData\\Local\\snowflake\\logs"

    Wenn nichts angegeben wird, erstellt der Befehl ein Verzeichnis logs am Standardspeicherort config.toml.

Wenn config.toml automatisch erstellt wurde, enthält Ihre config.toml-Datei den Abschnitt `` |cli.logs| ``, der mit Standardwerten gefüllt ist.

Die Protokolle eines einzelnen Tages werden an die Datei snowflake-cli.log angehängt, die später in snowflake-cli.log.YYYY-MM-DD umbenannt wird, wie gezeigt.

ls logs/
Copy
snowflake-cli.log            snowflake-cli.log.2024-10-22