snow sql¶
Snowflake 쿼리를 실행합니다. 쿼리, 파일 이름 또는 입력 옵션을 사용합니다. 실행할 쿼리는 쿼리 옵션, 파일 이름 옵션(파일에서 가져온 모든 쿼리가 실행됨)을 사용하거나 다른 명령의 출력을 파이프로 연결하여 stdin을 통해 지정할 수 있습니다. 예: cat my.sql | snow sql -i
. 이 명령은 클라이언트 측에서 발생하는 변수 대체를 지원합니다.
구문¶
snow sql
--query <query>
--filename <files>
--stdin
--variable <data_override>
--project <project_definition>
--env <env_overrides>
--connection <connection>
--host <host>
--port <port>
--account <account>
--user <user>
--password <password>
--authenticator <authenticator>
--private-key-file <private_key_file>
--token-file-path <token_file_path>
--database <database>
--schema <schema>
--role <role>
--warehouse <warehouse>
--temporary-connection
--mfa-passcode <mfa_passcode>
--enable-diag
--diag-log-path <diag_log_path>
--diag-allowlist-path <diag_allowlist_path>
--format <format>
--verbose
--debug
--silent
인자¶
없음
선택 사항¶
--query, -q TEXT
실행할 쿼리입니다.
--filename, -f FILE
실행할 파일입니다. 기본값: [].
--stdin, -i
표준 입력에서 쿼리를 읽습니다. 이 명령으로 입력을 파이프할 때 사용합니다. 기본값: False.
--variable, -D TEXT
키=값 형식의 문자열. 제공된 경우 SQL 콘텐츠는 템플릿으로 취급되며 제공된 데이터를 사용하여 렌더링됩니다.
-p, --project TEXT
Snowflake 프로젝트가 있는 경로입니다. 기본값은 현재 작업 디렉터리입니다.
--env TEXT
키=값 형식의 문자열. 템플릿에 사용되는 env 섹션의 변수를 재정의합니다. 기본값: [].
--connection, -c, --environment TEXT
config.toml
파일에 정의된 연결의 이름입니다. 기본값:default
.--host TEXT
연결을 위한 호스트 주소입니다. 연결에 지정된 값을 재정의합니다.
--port INTEGER
연결의 포트입니다. 연결에 지정된 값을 재정의합니다.
--account, --accountname TEXT
Snowflake 계정에 할당된 이름입니다. 연결에 지정된 값을 재정의합니다.
--user, --username TEXT
Snowflake에 연결할 사용자 이름입니다. 연결에 지정된 값을 재정의합니다.
--password TEXT
Snowflake 비밀번호입니다. 연결에 지정된 값을 재정의합니다.
--authenticator TEXT
Snowflake 인증자입니다. 연결에 지정된 값을 재정의합니다.
--private-key-file, --private-key-path TEXT
Snowflake 개인 키 파일 경로입니다. 연결에 지정된 값을 재정의합니다.
--token-file-path TEXT
Snowflake에 연결할 때 사용해야 하는 OAuth 토큰이 포함된 파일 경로입니다.
--database, --dbname TEXT
사용할 데이터베이스입니다. 연결에 지정된 값을 재정의합니다.
--schema, --schemaname TEXT
사용할 데이터베이스 스키마입니다. 연결에 지정된 값을 재정의합니다.
--role, --rolename TEXT
사용할 역할입니다. 연결에 지정된 값을 재정의합니다.
--warehouse TEXT
사용할 웨어하우스입니다. 연결에 지정된 값을 재정의합니다.
--temporary-connection, -x
config에서 정의된 연결 대신, 명령줄 매개 변수로 정의된 연결을 사용합니다. 기본값: False.
--mfa-passcode TEXT
다단계 인증(MFA)에 사용할 토큰입니다.
--enable-diag
Python 커넥터 진단 테스트를 실행합니다. 기본값: False.
--diag-log-path TEXT
진단 보고서 경로입니다. 기본값: <temporary_directory>.
--diag-allowlist-path TEXT
선택적 허용 목록에 대한 진단 보고서 경로입니다.
--format [TABLE|JSON]
출력 형식을 지정합니다. 기본값: TABLE.
--verbose, -v
로그 수준
info
이상의 로그 항목을 표시합니다. 기본값: False.--debug
로그 수준
디버그
이상에 대한 로그 항목을 표시하며, 디버그 로그에는 추가 정보가 포함됩니다. 기본값: False.--silent
콘솔로의 중간 출력을 끕니다. 기본값: False.
--help
이 명령에 대한 도움말 텍스트를 표시합니다.
사용법 노트¶
다음 옵션 중 하나를 사용하여 실행할 SQL 쿼리를 지정할 수 있습니다.
--query
옵션을 사용하여 쿼리 문자열을 지정합니다.--filename
옵션을 사용하여 실행할 SQL 쿼리가 포함된 파일을 지정합니다.쿼리를
stdin
으로 지정하고snow sql
명령으로 파이프합니다(예:cat my.sql | snow sql
.).쿼리에 SYSTEM 함수 의 달러 기호 등 셸에서 해석하지 않으려는 특수 문자가 포함되어 있는 경우 다음 중 하나를 수행할 수 있습니다.
다음과 같이 큰따옴표 대신 작은따옴표로 쿼리를 묶습니다.
snow sql -q 'SELECT SYSTEM$CLIENT_VERSION_INFO()'
다음에서와 같이, 특수 문자를 이스케이프합니다.
snow sql -q "SELECT SYSTEM\$CLIENT_VERSION_INFO()"
변수를 사용하여 SQL 쿼리의
<% variable_name %>
자리표시자와-D
명령줄 옵션의 조합으로 SQL 쿼리를 템플릿화할 수 있습니다snow sql -q "select * from my-database order by <% column_name %>" -D "column_name=Country"
참고
현재 템플릿에 SnowSQL
&variable_name
및<% variable_name %>
구문을 사용할 수 있습니다. 그러나 Snowflake는<% variable_name %>
구문을 사용할 것을 권장합니다.
예¶
다음 예제에서는 SQL SYSTEM$CLIENT_VERSION_INFO 시스템 함수를 사용하여 클라이언트 및 드라이버에 대한 버전 정보를 반환합니다.
snow sql --query 'SELECT SYSTEM$CLIENT_VERSION_INFO();'
select current_version(); +-------------------+ | CURRENT_VERSION() | |-------------------| | 8.25.1 | +-------------------+
다음 예제는 클라이언트 측 변수를 사용하여 데이터베이스를 지정하는 방법을 보여줍니다.
snow sql -q "select * from <% database %>.logs" -D "database=dev"
명령이 실행되면
<% database %>
변수의 값dev
를 대체하여dev.logs
식별자를 생성한 다음select * from dev.logs
SQL 쿼리를 처리하기 위해 Snowflake로 보냅니다.참고
현재 템플릿에는 SnowSQL
&variable_name
및 &{ variable_name }
구문을 사용할 수 있습니다. 그러나 Snowflake는<% variable_name %>
구문을 사용할 것을 권장합니다.이 예제에서는
--env
옵션을 사용하여 환경 변수를 전달하는 방법을 보여줍니다.snow sql -q "select '<% ctx.env.test %>'" --env test=value_from_cli