SQL에서 변수 사용하기¶
참고
변수를 지원하려면 프로젝트 정의 버전 1.1이 필요합니다.
프로젝트 파일을 사용하여 snow sql
같은 다른 명령이 사용할 수 있는 변수를 정의할 수도 있습니다. 프로젝트 정의 파일의 env
섹션(일반적으로 snowflake.yml
)에서 다음과 같이 변수를 정의할 수 있습니다.
definition_version: 2
env:
database: "dev"
role: "eng_rl"
프로젝트 정의 파일에 env
섹션을 추가한 후에는 명령줄에 변수와 값을 지정하는 대신 변수를 snow sql
명령에 전달할 수 있습니다.
대신 다음과 같이 명령줄에 --variable
옵션을 사용하여 데이터베이스와 역할을 지정합니다.
snow sql \
-q "grant usage on database <% database %> to <% role %>" \
-D "database=dev" \
-D "role=eng_rl"
다음와 같이 env
섹션에 정의된 변수를 지정할 수 있습니다.
snow sql -q "grant usage on database <% ctx.env.database %> to <% ctx.env.role %>"
프로젝트 정의 파일에 포함하는 다른 섹션과 함께 env
섹션을 포함할 수 있습니다.
definition_version: 2
entities:
test_function:
type: "function"
stage: "dev_deployment"
artifacts: ["app/"]
handler: "functions.hello_function"
signature: ""
returns: string
hello_procedure:
type: "procedure"
stage: "dev_deployment"
artifacts: ["app/"]
handler: "procedures.hello_procedure"
signature:
- name: "name"
type: "string"
returns: string
env:
database: "dev"
role: "eng_rl"
참고
현재 프로젝트 정의 파일이 definition_version: 1
을 사용하는 경우 변수 기능을 활용하려면 definition_version: 1.1
로 업데이트해야 합니다. 값을 변경하지 않으면 Snowflake CLI 는 env
섹션을 무시하지만 다른 유형의 프로젝트(이 예제에서는 snowpark
)는 여전히 예상대로 작동합니다.
셸 환경 변수를 동일한 이름(대/소문자 구분)으로 설정하여 snowflake.yml
프로젝트 정의 파일에 정의된 모든 변수를 재정의할 수 있습니다. 예를 들어, 예제에서 정의한 database
값을 재정의하려면 다음 셸 명령을 실행하면 됩니다.
export database="other"
env
변수 사용에 대한 자세한 내용은 snowflake.yml 프로젝트 정의 파일에 변수 저장하기 섹션을 참조하십시오.