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. 텍스트 편집기에서 (config 로 명명된) SnowSQL 구성 파일을 엽니다. 이 파일의 기본 위치:

    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 파일에서 구성 옵션을 설정하는 방법뿐만 아니라 다음 방법 중 1개를 사용하여 옵션을 설정할 수도 있습니다.

  • Snowflake에 연결하는 동안 -o 또는 --option 연결 매개 변수를 사용하여 이러한 옵션을 설정할 수 있습니다. 자세한 내용은 연결 매개 변수 참조 섹션을 참조하십시오.

  • Snowflake에 연결한 후 !set 명령을 사용하여 세션에 대한 이러한 옵션을 설정할 수 있습니다. 자세한 내용은 명령 참조 섹션을 참조하십시오.

변수 섹션

config 파일의 [variables] 섹션에는 재사용하기 위한 변수로 값을 저장할 수 있습니다. 이 기능을 사용하면 사용자 정의 및 데이터베이스 값을 쿼리에서 사용할 수 있습니다.

자세한 내용은 변수 사용하기 섹션을 참조하십시오.

SnowSQL 구성 옵션 참조

옵션은 기본 SnowSQL 동작을 수정합니다. 다음 방법 중 1개를 사용하여 이러한 옵션을 설정할 수 있습니다.

  • 이 항목에서의 설명과 같이 구성 파일 에서.

  • Snowflake에 연결할 때 -o 또는 --option 매개 변수 를 사용하여.

  • Snowflake에 연결된 후에 !set 명령 을 사용하여.

참고

옵션의 이름과 값에서는 대/소문자를 구분합니다.

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].

  • config 파일의 [connections] 섹션에 있는 매개 변수인 기본 연결 매개 변수.

이 값이 False인 경우의 우선 순위(내림차순)는 다음과 같습니다.

  • 구성 파일의 명명된 연결 섹션에 있는 매개 변수인 연결별 연결 매개 변수, 예: 섹션 [connections.myconnection].

  • 환경 변수 또는 SnowSQL 명령줄 매개 변수.

  • config 파일의 [connections] 섹션에 있는 매개 변수인 기본 연결 매개 변수.

기본값

True

force_put_overwrite

타입

부울

설명

활성화되면, SnowSQL은 파일이 스테이지에 있는지 여부를 확인하지 않고 PUT 명령이 클라이언트 시스템의 로컬 디렉터리/폴더에서 지정된 내부(즉, Snowflake) 스테이지로 데이터 파일을 업로드(즉, 스테이징)하도록 합니다. 파일이 이미 대상 스테이지에 있는 경우, PUT 명령은 기존 파일을 덮어씁니다.

기본값

force_put_overwrite=False

friendly

타입

부울

설명

비활성화되면, SnowSQL은 시작 및 종료 메시지를 표시하지 않습니다.

기본값

friendly=True

insecure_mode

타입

부울

설명

온라인 인증서 상태 프로토콜(OCSP)을 사용하여 인증서 해지 확인을 건너뜁니다. 이 옵션은 OCSP 서비스에 액세스할 수 없는 비상 상황에서 사용할 수 있습니다. Snowflake는 Snowflake 지원에서 지시하는 경우를 제외하고 이 옵션을 활성화하지 않을 것을 강력하게 권장합니다.

기본값

insecure_mode=False

key_bindings

타입

문자열(상수)

설명

사용할 키 바인딩입니다. 가능한 값은 다음과 같습니다.

  • emacs: CTRL + a 는 홈이고 CTRL + e 는 끝입니다. REPL 환경에 대한 모든 Emacs 키 바인딩을 사용할 수 있습니다.

  • vi: REPL 환경에서 vi가 제공하는 모든 모달 편집 기능을 사용할 수 있습니다.

참고

SnowSQL 세션 중에 !set 명령으로는 값을 변경할 수 없습니다. 대신, Snowflake에 연결할 때 구성 파일이나 명령줄에서 값을 설정하십시오.

기본값

key_bindings=vi

log_bootstrap_file

타입

문자열(경로)

설명

부트스트랩 로그 파일 위치입니다. 지정하지 않으면, _bootstrap 이 뒤에 추가되어 log_file 이 기본 이름으로 사용됩니다. 예를 들어, 기본적으로 로그 파일 이름은 log_bootstrap 입니다.

기본값

log_bootstrap_file=~/.snowsql/bootlog

log_file

타입

문자열(경로)

설명

로그_파일 위치입니다.

참고

로그 파일의 상위 디렉터리에 쓰거나 로그 파일의 위치를 수정할 권한이 있어야 합니다.

기본값

log_file=~/.snowsql/log

log_level

타입

문자열(상수)

설명

기본 로그 레벨입니다. 가능한 값: CRITICAL, ERROR, WARNING, INFO, DEBUG.

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

테이블형 결과에 대한 권장 값: psql , grid 또는 fancy_grid

데이터 전용 결과의 권장 값(False 로 설정된 header, timingfriendly 조합에서 사용됨): plain, csv 또는 tsv

기본값

output_format=psql

paging

타입

부울

설명

활성화되면, 화면 높이별로 출력을 일시 중지합니다. 이 기능은 큰 결과 세트를 탐색하기 위한 용도로 유용합니다. 스크롤을 내리려면 [ENTER]/[RETURN] 키를 입력합니다.

기본값

paging=False

progress_bar

타입

부울

설명

데이터를 전송하는 동안 진행률 표시줄을 표시합니다.

기본값

progress_bar=True

prompt_format

타입

문자열

설명

SnowSQL 프롬프트 형식을 변경합니다.

SnowSQL 프롬프트에는 기본적으로 현재 사용자, 웨어하우스, 데이터베이스 및 스키마가 동적으로 표시됩니다. 동적 토큰은 [<토큰>](예: [사용자] 또는 [웨어하우스])으로 작성됩니다. Snowflake 오브젝트의 순서, 구분 기호 및 색상을 변경할 수 있습니다. 대괄호 안에 pygments 토큰을 정의하여 오브젝트 색상을 변경합니다.

예를 들어, 사용자, 데이터베이스, 스키마 및 웨어하우스에 대한 오브젝트 순서를 변경합니다. 구분 기호를 마침표로 변경합니다. [사용자] 오브젝트 이름을 빨간색으로, [데이터베이스] 및 [스키마] 이름을 녹색으로, [웨어하우스] 이름을 파란색으로 변경합니다.

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

《#》 문자가 주석의 시작으로 해석되지 않도록 값을 따옴표로 묶습니다.

기본값

None

quiet

타입

부울

설명

터미널에서 모든 출력 데이터는 제거하지만, 오류 메시지와 진단 데이터는 계속해서 표시합니다.

기본값

quiet=True

remove_comments

타입

부울

설명

출력에서 주석을 제거합니다.

기본값

remove_comments=False

remove_trailing_semicolons

타입

부울

설명

SQL 텍스트에서 후행 세미콜론을 제거한 후 Snowflake로 쿼리를 전송합니다. 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 로 설정하면 결과 테이블 아래에 텍스트 줄이 표시되지 않습니다.

headeroutput_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