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 = my_organization-my_account
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 statements 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
UTF-8 인코딩을 사용하여 이러한 구성 파일을 만들어야 합니다.
SnowSQL 구성 파일 수정하기¶
구성 파일을 수정하려면 다음을 수행하십시오.
텍스트 편집기에서 (
config로 명명된) SnowSQL 구성 파일을 엽니다. 이 파일의 기본 위치:- Linux/macOS:
~/.snowsql/- Windows:
%USERPROFILE%\.snowsql\
참고
기본 위치는 SnowSQL을 시작할 때
--config path명령줄 플래그를 지정하여 변경할 수 있습니다.다음 섹션에서 설정을 수정합니다.
주의
비밀번호는
config파일에 일반 텍스트로 저장됩니다. 액세스를 제한하려면 반드시 파일을 명시적으로 보호해야 합니다. 예를 들어, Linux 또는 macOS에서chmod를 실행하여 읽기 권한을 설정할 수 있습니다.$ chmod 700 ~/.snowsql/config
참고
값에 특수 문자(작은 따옴표 또는 큰 따옴표 제외)가 포함된 경우에는 작은 따옴표 또는 큰 따옴표로 묶어야 합니다. 예:
password = "my$^pwd"
값에 다른 특수 문자 및 따옴표 문자가 포함된 경우에는 백슬래시(
\) 문자를 사용하여 해당 따옴표를 이스케이프 처리합니다. 예:password = "my$^\"\'pwd"
묶이지 않은 값(즉, 다른 특수 문자를 포함하지 않는 값)에서 따옴표 문자를 이스케이프하는 것은 선택 사항입니다.
여러 줄로 구성된 값은 작은따옴표 또는 큰따옴표(
'''또는""")를 3개 사용하여 묶어야 합니다.prompt_format='''[#FFFF00][user]@[account] [#00FF00]> '''
연결 매개 변수 섹션¶
config 파일의 [connections] 섹션에서는 계정 식별자, 사용자 로그인 자격 증명, 기본 데이터베이스 및 웨어하우스 등 SnowSQL에 대한 기본 연결 매개 변수를 선택적으로 설정할 수 있습니다. 또한, 명명된 연결을 정의하여 Snowflake에 여러 동시 연결을 생성하거나 다른 연결 구성 세트를 저장할 수도 있습니다.
자세한 내용은 SnowSQL을 통해 연결하기 섹션을 참조하십시오.
구성 옵션 섹션¶
config 파일의 [options] 섹션에 설정을 추가하여 SnowSQL의 동작을 구성합니다.
[options] <option_name> = <option_value>
여기서:
<옵션_이름>은 옵션의 이름(대/소문자 구분)입니다. 유효하지 않은 이름이 지정되면 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. |
+----------------------------+---------------------+------------------------------------------------------------------------------------+
유효한 모든 옵션에 대한 설명은 이 항목의 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_format이TSV로 설정되는 경우 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
header¶
- 타입:
부울
- 설명:
SnowSQL에서 표시하는 결과 테이블에 헤더를 표시합니다. 결과에서 데이터만 검색하려면 이 옵션을 비활성화하는 것이 좋습니다.
output_format및timing과 함께 사용하여 데이터 전용 출력을 생성합니다.- 기본값:
header=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=True
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,timing및friendly조합에서 사용됨):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]"“#” 문자가 주석의 시작으로 해석되지 않도록 값을 따옴표로 묶습니다.
- 기본값:
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로 설정하면 결과 테이블 아래에 텍스트 줄이 표시되지 않습니다.
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