SnowSQL の構成

このトピックでは、接続パラメーター、構成オプション、および変数を使用して SnowSQL を構成する方法について説明します。

このトピックの内容:

SnowSQL config ファイルについて

SnowSQL は、複数の構成ファイルをサポートしているため、組織は接続パラメーター、デフォルト設定、および変数の基本値を定義でき、個々のユーザーは自分の <HOME_DIR>/.snowsql/config ファイルで個人設定をカスタマイズできます。SnowSQL が起動すると、次の構成ファイルの場所から構成パラメーター値が順番にロードされ、以前にロードされたファイルの値が上書きされます。

  • /etc/snowsql.cnf

  • /etc/snowflake/snowsql.cnf

  • /usr/local/etc/snowsql.cnf

  • <HOME_DIR>/.snowsql.cnf (下位互換性のためにのみサポートされています)

  • <HOME_DIR>/.snowsql/config

たとえば、 /etc/snowsql.cnf 構成ファイルで log_level パラメーターが info に設定されている場合は、ファイル <HOME_DIR>/.snowsql/config ファイルでパラメーターを debug に設定すると、これをオーバーライドできます。

snowsql コマンドを初めて実行すると、以下のような構成ファイルが生成されます。

[connections]
# *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*
#
# The Snowflake user password is stored in plain text in this file.
# Pay special attention to the management of this file.
# Thank you.
#
# *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*

#If a connection doesn't specify a value, it will default to these
#
#accountname = defaultaccount
#region = defaultregion
#username = defaultuser
#password = defaultpassword
#dbname = defaultdbname
#schemaname = defaultschema
#warehousename = defaultwarehouse
#rolename = defaultrolename
#proxy_host = defaultproxyhost
#proxy_port = defaultproxyport

[connections.example]
#Can be used in SnowSql as #connect example

accountname = accountname
username = username
password = password1234

[variables]
# SnowSQL defines the variables in this section on startup.
# You can use these variables in SQL statements. For details, see
# https://docs.snowflake.com/en/user-guide/snowsql-use.html#using-variables

# example_variable=27

[options]
# If set to false auto-completion will not occur interactive mode.
auto_completion = True

# main log file location. The file includes the log from SnowSQL main
# executable.
log_file = ~/.snowsql/log

# bootstrap log file location. The file includes the log from SnowSQL bootstrap
# executable.
# log_bootstrap_file = ~/.snowsql/log_bootstrap

# Default log level. Possible values: "CRITICAL", "ERROR", "WARNING", "INFO"
# and "DEBUG".
log_level = INFO

# Timing of sql statments and table rendering.
timing = True

# Table format. Possible values: psql, plain, simple, grid, fancy_grid, pipe,
# orgtbl, rst, mediawiki, html, latex, latex_booktabs, tsv.
# Recommended: psql, fancy_grid and grid.
output_format = psql

# Keybindings: Possible values: emacs, vi.
# Emacs mode: Ctrl-A is home, Ctrl-E is end. All emacs keybindings are available in the REPL.
# When Vi mode is enabled you can use modal editing features offered by Vi in the REPL.
key_bindings = emacs

# OCSP Fail Open Mode.
# The only OCSP scenario which will lead to connection failure would be OCSP response with a
# revoked status. Any other errors or in the OCSP module will not raise an error.
# ocsp_fail_open = True

# Enable temporary credential file for Linux users
# For Linux users, since there are no OS-key-store, an unsecure temporary credential for SSO can be enabled by this option. The default value for this option is False.
# client_store_temporary_credential = True

# Select statement split method (default is to use the sql_split method in snowsql, which does not support 'sql_delimiter')
# sql_split = snowflake.connector.util_text # to use connector's statement_split which has legacy support to 'sql_delimiter'.

# Force the result data to be decoded in utf-8. By default the value is set to false for compatibility with legacy data. It is recommended to set the value to true.
# json_result_force_utf8_decoding = False
Copy

これらの構成ファイルは、 UTF-8エンコードを使用して作成する必要があります。

SnowSQL 構成ファイルを変更する

構成ファイルを変更するには:

  1. テキストエディターで、 SnowSQL 構成ファイル (名前 config) を開きます。ファイルのデフォルトの場所は次のとおりです。

    Linux/macOS:

    ~/.snowsql/

    Windows:

    %USERPROFILE%\.snowsql\

    注釈

    SnowSQL の起動時に、 --config path コマンドラインフラグを指定すると、デフォルトの場所を変更できます。

  2. 次のセクションの設定を変更します。

注意

  • パスワードは、 config ファイルにプレーンテキストで保存されます。アクセスを制限するには、ファイルを明示的に保護する必要があります。たとえば、Linuxまたは macOS で、 chmod を実行することにより、自分のみに読み取り権限を設定できます。

    $ chmod 700 ~/.snowsql/config
    
    Copy

注釈

  • 値に特殊文字(一重引用符または二重引用符以外)が含まれる場合は、一重引用符または二重引用符で囲む必要があります。例:

    password = "my$^pwd"
    
    Copy
  • 値に他の特殊文字 に加えて 引用文字が含まれる場合、バックスラッシュ(\)文字を使用してこれらの引用をエスケープします。例:

    password = "my$^\"\'pwd"
    
    Copy

    引用符文字のエスケープは、囲まれていない値(他の特殊文字を含まない値)ではオプションであることに注意してください。

  • 複数行の値は、3つの一重引用符または二重引用符(''' または """)で囲む必要があります。例:

    prompt_format='''[#FFFF00][user]@[account]
    [#00FF00]> '''
    
    Copy

接続パラメーターセクション

config ファイルの [connections] セクションで、 SnowSQL のデフォルトの接続パラメーター(例: アカウント識別子、ユーザーログイン認証情報、デフォルトのデータベースとウェアハウス)をオプションで設定します。また、 名前付き 接続を定義して、Snowflakeへの複数の同時接続を作成したり、異なる接続構成セットを保存したりすることもできます。

詳細については、 SnowSQL を介した接続 をご参照ください。

構成オプションセクション

config ファイルの [options] セクションに設定を追加して、 SnowSQL の動作を構成します。

[options]
<option_name> = <option_value>
Copy

条件:

  • <オプション名> はオプションの名前です(大文字と小文字は区別されません)。無効な名前が指定された場合、SnowSQLはエラーを表示します。

  • <オプション値> は、以下で説明するように、オプションについてサポートされる値(大文字と小文字を区別しない)を指定します。

+----------------------------+---------------------+------------------------------------------------------------------------------------+
| Name                       | Value               | Help                                                                               |
+----------------------------+---------------------+------------------------------------------------------------------------------------+
| auto_completion            | True                | Displays auto-completion suggestions for commands and Snowflake objects.           |
| client_session_keep_alive  | False               | Keeps the session active indefinitely, even if there is no activity from the user. |
| echo                       | False               | Outputs the SQL command to the terminal when it is executed.                       |
| editor                     | vim                 | Changes the editor to use for the !edit command.                                   |
| empty_for_null_in_tsv      | False               | Outputs an empty string for NULL values in TSV format.                             |
| environment_variables      | ['PATH']            | Specifies the environment variables that can be referenced as SnowSQL variables.   |
|                            |                     | The variable names should be comma separated.                                      |
| execution_only             | False               | Executes queries only.                                                             |
| exit_on_error              | False               | Quits when SnowSQL encounters an error.                                            |
| fix_parameter_precedence   | True                | Controls the precedence of the environment variable and the config file entries    |
|                            |                     | for password, proxy password, and private key phrase.                              |
| force_put_overwrite        | False               | Force PUT command to stage data files without checking whether already exists.     |
| friendly                   | True                | Shows the splash text and goodbye messages.                                        |
| header                     | True                | Outputs the header in query results.                                               |
| insecure_mode              | False               | Turns off OCSP certificate checks.                                                 |
| key_bindings               | emacs               | Changes keybindings for navigating the prompt to emacs or vi.                      |
| log_bootstrap_file         | ~/.snowsql/log_...  | SnowSQL bootstrap log file location.                                               |
| log_file                   | ~/.snowsql/log      | SnowSQL main log file location.                                                    |
| log_level                  | CRITICAL            | Changes the log level (critical, debug, info, error, warning).                     |
| login_timeout              | 120                 | Login timeout in seconds.                                                          |
| noup                       | False               | Turns off auto upgrading SnowSQL.                                                  |
| output_file                | None                | Writes output to the specified file in addition to the terminal.                   |
| output_format              | psql                | Sets the output format for query results.                                          |
| paging                     | False               | Enables paging to pause output per screen height.                                  |
| progress_bar               | True                | Shows progress bar while transferring data.                                        |
| prompt_format              | [user]#[warehou...] | Sets the prompt format. Experimental feature, currently not documented.            |
| sfqid                      | False               | Turns on/off Snowflake query id in the summary.                                    |
| sfqid_in_error             | False               | Turns on/off Snowflake query id in the error message.                              |
| quiet                      | False               | Hides all output.                                                                  |
| remove_comments            | False               | Removes comments before sending query to Snowflake.                                |
| remove_trailing_semicolons | True                | Removes trailing semicolons from SQL text before sending queries to Snowflake.     |
| results                    | True                | If set to off, queries will be sent asynchronously, but no results will be fetched.|
|                            |                     | Use !queries to check the status.                                                  |
| rowset_size                | 1000                | Sets the size of rowsets to fetch from the server.                                 |
|                            |                     | Set the option low for smooth output, high for fast output.                        |
| stop_on_error              | False               | Stops all queries yet to run when SnowSQL encounters an error.                     |
| syntax_style               | default             | Sets the colors for the text of SnowSQL.                                           |
| timing                     | True                | Turns on/off timing for each query.                                                |
| timing_in_output_file      | False               | Includes timing in the output file.                                                |
| variable_substitution      | False               | Substitutes variables (starting with '&') with values.                             |
| version                    | 1.1.70              | Returns SnowSQL version.                                                           |
| wrap                       | True                | Truncates lines at the width of the terminal screen.                               |
+----------------------------+---------------------+------------------------------------------------------------------------------------+
Copy

すべての有効なオプションの説明については、 SnowSQL 構成オプションリファレンス (このトピック)をご参照ください。

注釈

config ファイルの構成オプションの設定に加えて、次のいずれかの方法を使用してオプションを設定できます。

  • Snowflakeへの接続中に、 -o または --option 接続パラメーターを使用してこれらのオプションを設定できます。詳細については、 接続パラメーターリファレンス をご参照ください。

  • Snowflakeに接続した後、 !set コマンドを使用してセッションのこれらのオプションを設定できます。詳細については、 コマンドリファレンス をご参照ください。

変数セクション

config ファイルの [variables] セクションでは、値を変数として格納して再利用できます。この機能により、クエリでユーザー定義値とデータベース値を使用できます。

詳細については、 変数の使用 をご参照ください。

SnowSQL 構成オプションリファレンス

オプションは、デフォルトの SnowSQL 動作を変更します。次のいずれかの方法を使用して、これらのオプションを設定できます。

注釈

オプションの名前と値は大文字と小文字を区別しません。

auto_completion

:

ブール値

説明:

状況依存の自動補完を有効化します。有効化すると、SnowSQL に格納されている関数、テーブル名、変数はインタラクティブモードでオートコンプリートされます。

デフォルト:

auto_completion=True

client_session_keep_alive

:

ブール値

説明:

JDBCまたはODBCセッションで非アクティブな状態が一定時間続いた後に、ユーザーに再度ログインを強制するかかどうかを示します。 True に設定すると、Snowflakeは、ユーザーからのアクティビティがない場合でも、セッションを無期限にアクティブに保ちます。 False に設定すると、非アクティブな状態が4時間続いた後、ユーザーは再度ログインする必要があります。

デフォルト:

client_session_keep_alive=False

echo

:

ブール値

説明:

ローカル入力をエコーします。 True に設定すると、 stdout と出力ファイルの両方にエコーします。

デフォルト:

echo=False

editor

:

文字列(定数)

説明:

SnowSQL で !edit コマンドが発行されたときに呼び出すエディターを指定します。サポートされている値:

  • emacs

  • vi

  • vim

デフォルト:

editor=vim

empty_for_null_in_tsv

:

ブール値

説明:

有効化すると、 output_formatTSV に設定されている場合、SnowSQLはNULL値ごとに空の文字列を出力します。

:

empty_for_null_in_tsv=True

environment_variables

:

リスト

説明:

SnowSQL変数に設定する環境変数を指定します。

:

environment_variables=PATH,USER,AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY

execution_only

:

ブール値

説明:

有効化すると、SnowSQLはデータを取得せずにクエリを実行します。このオプションは、実行時間のみを測定する場合に役立ちます。返される値にはネットワーク遅延が含まれており、純粋なサーバー側の実行時間ではないことに注意してください。

:

execution_only=True

exit_on_error

:

ブール値

説明:

有効化すると、エラー発生時にSnowSQLが終了します。この動作は、エラー発生時にクエリの実行を停止するのに役立ちます。

:

exit_on_error=True

fix_parameter_precedence

:

ブール値

説明:

パスワード、プロキシパスワード、および秘密キーフレーズパラメーターの可能なソース間の優先順位を制御します。

値がTrueの場合、優先順位(最高から最低)は次のとおりです。

  • 環境変数またはSnowSQLコマンドラインパラメーター。

  • 接続固有の接続パラメーター。これは、構成ファイルの名前付き接続セクションのパラメーターです(例: セクション [connections.myconnection])。

  • デフォルトの接続パラメーター。これは、構成ファイルの [connections] セクションのパラメーターです。

値がFalseの場合、優先順位(最高から最低)は次のとおりです。

  • 接続固有の接続パラメーター。これは、構成ファイルの名前付き接続セクションのパラメーターです(例: セクション [connections.myconnection])。

  • 環境変数またはSnowSQLコマンドラインパラメーター。

  • デフォルトの接続パラメーター。これは、構成ファイルの [connections] セクションのパラメーターです。

デフォルト:

True

force_put_overwrite

:

ブール値

説明:

有効化すると、SnowSQLは、PUTコマンドにより、クライアントマシン上のローカルディレクトリ/フォルダーから指定された内部(つまり、Snowflake)ステージにファイルが既に存在するかどうかを確認せずにデータファイルをアップロード(つまり、ステージング)するよう強制します。ファイルが宛先ステージに既に存在する場合、PUTコマンドは既存のファイルを上書きします。

デフォルト:

force_put_overwrite=False

friendly

:

ブール値

説明:

無効化すると、SnowSQLは起動メッセージと終了メッセージを抑制します。

デフォルト:

friendly=True

insecure_mode

:

ブール値

説明:

オンライン証明書ステータスプロトコル(OCSP)を使用した証明書失効チェックをスキップします。このオプションは、OCSP サービスにアクセスできない緊急事態で使用できます。Snowflakeサポートからの指示がない限り、このオプションを 有効化しない ことを強くお勧めします。

デフォルト:

insecure_mode=False

key_bindings

:

文字列(定数)

説明:

使用するキーバインディング。可能な値:

  • emacs: CTRL + a がHomeキー、CTRL + :kbd: e がEndキー。REPL 環境に対するすべてのEmacsキーバインディングが利用可能です。

  • vi: REPL環境では、Viが提供するすべてのモーダル編集機能を使用できます。

注意:

SnowSQL セッション中に !set コマンドで値を変更することはできません。代わりに、Snowflakeへの接続時に構成ファイルまたはコマンドラインで値を設定します。

デフォルト:

key_bindings=vi

log_bootstrap_file

:

文字列(パス)

説明:

ブートストラップログファイルの場所。指定しない場合は、ベース名として log_file が使用され、その後に _bootstrap が続きます。たとえばデフォルトでは、ログファイル名は log_bootstrap です。

デフォルト:

log_bootstrap_file=~/.snowsql/bootlog

log_file

:

文字列(パス)

説明:

log_fileの場所。

注釈

ログファイルの親ディレクトリに書き込むための権限、またはログファイルの場所を変更するための権限が必要です。

デフォルト:

log_file=~/.snowsql/log

log_level

:

文字列(定数)

説明:

デフォルトのログレベル。可能な値: CRITICALERRORWARNINGINFODEBUG

login_timeout

:

説明:

秒単位のログインタイムアウト。

デフォルト:

login_timeout=120

noup

:

ブール値

説明:

True の場合、SnowSQLが新しいバージョンをダウンロードしてインストールするのを防ぎます。デフォルトでは、バージョンが指定されていない場合、SnowSQLは最新バージョンに自動アップグレードします。

デフォルト:

noup=False

output_file

:

文字列(パスとファイル名)

説明:

端末出力に加えて、指定されたファイルに出力を書き込みます。

デフォルト:

なし

output_format

:

文字列(定数)

説明:

端末に表示される結果の形式を指定します。可能な値:

  • csv

  • expanded

  • fancy_grid

  • grid

  • html

  • json

  • latex

  • latex_booktabs

  • mediawiki

  • orgtbl

  • pipe

  • plain

  • psql

  • rst

  • simple

  • tsv

表形式の結果の推奨値: psqlgrid または fancy_grid

データのみの結果の推奨値(headertiming、および friendly と組み合わせて False に設定して使用): plaincsv、または tsv

デフォルト:

output_format=psql

paging

:

ブール値

説明:

有効化すると、画面の高さごとに出力が一時停止します。この機能は、大きな結果セットを閲覧するのに便利です。下にスクロールするには、 [ENTER]/[RETURN] キーを押します。

デフォルト:

paging=False

progress_bar

:

ブール値

説明:

データの転送中に進行状況バーを表示します。

デフォルト:

progress_bar=True

prompt_format

:

文字列

説明:

SnowSQL プロンプトの形式を変更します。

SnowSQL プロンプトは、デフォルトで現在のユーザー、ウェアハウス、データベース、およびスキーマを動的に表示します。動的トークンは、[<トークン>]として記述されます(例: [ユーザー]または[ウェアハウス])。Snowflakeオブジェクトの順序、区切り文字、および色を変更できます。角括弧でピグメントトークンを定義して、オブジェクトの色を変更します。

例えば、オブジェクトの順序をユーザー、データベース、スキーマ、ウェアハウスの順に変更します。区切り文字をピリオドに変更します。[ユーザー] オブジェクト名を赤、[データベース] および [スキーマ] 名を緑、[ウェアハウス] 名を青に変更します。

prompt_format="[#FF0000][user]@[#00FF00][database][schema][#0000FF][warehouse]"
Copy

値の前後に引用符を付けて、「#」文字がコメントの開始として解釈されないようにします。

デフォルト:

None

quiet

:

ブール値

説明:

端末からすべての出力データを削除しますが、エラーメッセージと診断データは引き続き表示されます。

デフォルト:

quiet=True

remove_comments

:

ブール値

説明:

出力からコメントを削除します。

デフォルト:

remove_comments=False

remove_trailing_semicolons

:

ブール値

説明:

Snowflakeにクエリを送信する前に、SQLテキストから後続のセミコロンを削除します。セミコロンを削除すると、 USE_CACHED_RESULT セッションパラメーターが有効化されたときに、Snowflakeで異なるクライアントからのキャッシュされた結果が使用できなくなることに注意してください。

デフォルト:

remove_trailing_semicolons=True

results

:

ブール値

説明:

クエリ結果を返します。 False の場合、クエリは非同期で実行され、エラーメッセージを含む結果は返されません。

デフォルト:

results=True

rowset_size

:

説明:

インタラクティブモードで一度に取得する行の数。その後、結果は一度に1行セットごとに取得され、出力されます。

デフォルト:

rowset_size=1000

sfqid

:

ブール値

説明:

結果の要約にSnowflakeクエリ ID を含めます。

注意: sqfid をスプールファイルに追加するには、 timing_in_output_file=True も設定する必要があります。

デフォルト:

sfqid=False

sfqid_in_error

:

ブール値

説明:

エラーメッセージにSnowflakeクエリIDを含めます。

デフォルト:

sfqid_in_error=False

stop_on_error

:

ブール値

説明:

エラーが発生すると、クエリの実行は停止しますが、終了しません。

デフォルト:

stop_on_error=False

syntax_style

:

文字列(定数)

説明:

SnowSQLのテキストの色を設定します。現在、 default のみがサポートされています。

デフォルト:

syntax_style=default

timing

:

ブール値

説明:

実行されたSQLステートメントの生成された行数と経過時間を表示するかどうかを指定します。この情報は、SnowSQLによってレンダリングされた結果テーブルの下にテキスト行として表示されます。 False に設定すると、結果テーブルの下のテキスト行は表示されません。

header および output_format と併用して、データのみの出力を生成できます。

デフォルト:

timing=True

timing_in_output_file

:

ブール値

説明:

output_file オプションが設定されている場合、出力ファイルに実行時間の詳細を含めるかどうかを指定します。また、 timing オプションを True に設定する必要があります。

False に設定すると、結果テーブルの下のテキスト行は出力ファイルに含まれません。

デフォルト:

timing_in_output_file=False

variable_substitution

:

ブール値

説明:

変数を値で置き換えます。 変数の使用 をご参照ください。

デフォルト:

variable_substitution=False

wrap

:

ブール値

説明:

出力を端末幅で折り返します。 False の場合、出力は切り捨てられます。

デフォルト:

wrap=True