Snowflake CLI の構成

Snowflake CLI は、 config.toml というグローバル・構成ファイルを使って、 Snowflake CLI の接続とログを構成します。このファイルが存在しない場合、何らかの:codenowrap:snow コマンドを初めて実行すると、自動的に空の config.toml ファイルが作成され、そのファイルに目的の接続を入力できるようになります。 toml ファイルフォーマットの詳細については、 TOML (Tom's Obvious Minimal Language) をご参照ください。Snowflake Pythonライブラリは現在、 TOML バージョン1.0.0をサポートしています。

config.toml は次の設定をサポートしています。

  • [コネクション] コネクションの定義と管理

  • [ログ]どのタイプのメッセージをログファイルに保存するかを構成する

Snowflake CLI 構成ファイルの構造は以下の通りです。

[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

.toml 構成ファイルの場所

デフォルトでは、 Snowflake CLI は、 ~/.snowflake ディレクトリにある config.toml ファイルを探すか、このディレクトリが存在しない場合は、以下に示すシステム固有の場所にある ファイルを探します。また、--config-file フラグまたは:codenowrap:SNOWFLAKE_HOME 環境変数を使用して、どの構成ファイルを使用するかを指定することもできます。

  • --config-file オプションを指定すると(snow --config-file ./my-config-file-path のように)、 Snowflake CLI は指定された構成ファイルを使用します。

  • SNOWFLAKE_HOME 環境変数が設定されている場合、 Snowflake CLI はこの変数で指定された場所を使用します。

  • マシンに ~/.snowflake ディレクトリが存在する場合、 Snowflake CLI は ~/.snowflake/config.toml ファイルを使用します。

  • そうでない場合、 Snowflake CLI はオペレーティングシステムに応じて、次のいずれかの場所にある config.toml ファイルを使用します。

    • Linux: ~/.config/snowflake/config.toml、ただし、 XDG 変数で更新可

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

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

注釈

MacOS およびLinuxシステムの場合、 Snowflake CLI は、 config.toml ファイルの権限を、ファイル所有者のみが読み取りおよび書き込みできるように制限する必要があります。ファイルに必要なファイル権限を設定するには、次のコマンドを実行します。

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

別の構成ファイルを選択する

継続的インテグレーション、継続的デプロイメント(CI/CD)環境などの状況によっては、Snowflakeのデフォルト構成ファイルで可能なすべての構成を定義する代わりに、テストおよびデプロイメントパイプライン専用の構成ファイルを作成する方がよい場合があります。

デフォルト・ファイルとは異なる構成ファイルを使用するには、次のように:codenowrap:snow コマンドの:codenowrap:--config-file オプションを使用します。

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

システム環境変数のサポート

Snowflake CLI は、システム環境変数を使用して、 config.toml ファイルで定義されたパラメータ値を以下の形式で上書きすることをサポートしています:

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

条件:

  • <config_section> は、構成ファイルのセクション名で、ピリオド (.) をアンダースコア(_) に置き換えたものです。例:CLI_LOGS

  • 変数は、このセクションで定義された変数の名前です。 例えば:codenowrap:パス です。

例は次のとおりです:

  • config.toml ファイルの:codenowrap:[cli.logs] セクションの path パラメーターをオーバーライドします。

    export SNOWFLAKE_CLI_LOGS_PATH="/Users/jondoe/snowcli_logs"
    
    Copy
  • myconnection 接続のパスワードを設定します。

    export SNOWFLAKE_CONNECTIONS_MYCONNECTION_PASSWORD="*******"
    
    Copy
  • デフォルトの接続名を設定する:

    export SNOWFLAKE_DEFAULT_CONNECTION_NAME="myconnection"
    
    Copy

ログの構成

デフォルトでは、 Snowflake CLI は自動的に INFOWARNINGERROR レベルのメッセージをログファイルに保存します。ログを無効化またはカスタマイズするには、 config.toml ファイルに [cli.logs] セクションを作成します。

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

条件:

  • save_logs は、ログをファイルに保存するかどうかを示します。デフォルト: true

  • level はログファイルに保存するメッセージのレベルを指定します。次のレベルから選択します。選択したレベル以下のすべてのレベルが含まれます。

    • debug

      警告

      ログレベルを debug に切り替えると、実行された SQL クエリなどの機密情報が公開される可能性があります。このレベルを有効にする場合は注意してください。

    • info

    • warning

    • error

    デフォルト: info

  • path はログファイルを保存する絶対パスを指定します。パスの形式は、次に示されるようにオペレーティングシステムに応じて異なります。

    • 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"

    指定しない場合は、デフォルトの config.toml ファイルの場所に logs ディレクトリを作成します。

config.toml が自動的に作成された場合、 config.toml ファイルにはデフォルト値が入力された `` |cli.logs| `` セクションが含まれます。

1日のログがファイル snowflake-cli.log に追加され、後で snowflake-cli.log.YYYY-MM-DD に名前が変更されます。

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