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
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=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
,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