|sf-cli|를 사용하여 |sf-dbt| 관리하기¶
dbt Projects on Snowflake 기능을 사용하여 Snowflake CLI 설치하기¶
snow dbt
명령이 포함된 Snowflake CLI 공개 미리 보기 버전을 설치하려면, 먼저 Snowflake CLI 버전 3.9.0 이상을 설치해야 합니다. 자세한 내용은 Snowflake CLI 설치하기 섹션을 참조하십시오.
|sf-cli|에서 |sf-dbt| 기능 활성화하기¶
미리 보기 중에 다음 메서드 중 하나를 사용하여 새 snow dbt
명령을 활성화해야 합니다.
SNOWFLAKE_CLI_FEATURES_ENABLE_DBT
환경 변수를 설정합니다.export SNOWFLAKE_CLI_FEATURES_ENABLE_DBT=true
config.toml
구성 파일에서 명령을 활성화합니다.[cli.features] enable_dbt = true
명령을 사용할 수 있는지 확인하려면
snow --help
명령을 실행합니다.snow --help dbt should appear in the list of commands, as shown:
Usage: snow [OPTIONS] COMMAND [ARGS]... Snowflake CLI tool for developers [v3.9.0] ... ╭─ Commands ────────────────────────────────────────── │ app Manages a Snowflake Native App │ │ connection Manages connections to Snowflake. │ │ cortex Provides access to Snowflake Cortex │ │ dbt Manages dbt on Snowflake projects │ │ ... │ ╰─────────────────────────────────────────────────────
연결 관리¶
Snowflake CLI가 Snowflake와 상호 작용하려면 작동하는 연결이 필요합니다. 연결 관리에 대한 자세한 내용은 Snowflake 연결 관리하기 섹션을 참조하세요.
dbt 프로젝트를 지원하는 Snowflake CLI 명령¶
|sf-cli|는 다음과 같은 dbt 프로젝트 명령을 제공합니다.
snow dbt deploy
snow dbt list
snow dbt execute
dbt 프로젝트 오브젝트 배포¶
snow dbt deploy
명령은 로컬 파일을 임시 스테이지에 업로드한 후 새 dbt 프로젝트 오브젝트를 만들거나, 새 버전을 만들어서 업데이트하거나, 완전히 다시 만듭니다. 유효한 dbt 프로젝트에는 다음의 두 파일이 포함되어야 합니다.
dbt_project.yml
: 사용할 프로필을 지정해야 하는 표준 dbt 구성 파일.profiles.yml
: :file:`dbt_project.yml`에서 참조되는 dbt 연결 프로필 정의. :file:`profiles.yaml`은 데이터베이스와 역할, 웨어하우스, 스키마를 정의해야 합니다. 다음 예제와 같이 나머지 값을 비워 둘 수 있습니다.<profile_name>: outputs: dev: account: '' database: <database_name> role: <role_name> schema: <schema_name> type: snowflake user: '' warehouse: <warehouse_name> target: dev
사용법¶
snow dbt deploy [--source <path>] [--profiles-dir <path>] [--force] NAME
여기서,
예¶
사용 가능한 모든 dbt 프로젝트 오브젝트 나열하기¶
snow dbt list
명령은 Snowflake에서 사용 가능한 모든 dbt 프로젝트 오브젝트를 나열합니다.
사용법¶
snow dbt list [--like <string>] [--in <string>]
여기서,
예¶
사용 가능한 모든 dbt 프로젝트 오브젝트를 나열합니다.
snow dbt list
이름이
JAFFLE`로 시작하는 dbt 프로젝트 오브젝트를 :codenowrap:`product
데이터베이스에 나열합니다.snow dbt list --like JAFFLE% --in database product
dbt 프로젝트 오브젝트 명령 실행하기¶
snow dbt execute
명령은 Snowflake dbt 프로젝트 오브젝트에서 다음과 같은 `dbt 명령<https://docs.getdbt.com/reference/dbt-commands>`_ 중 하나를 실행합니다.
`compile<https://docs.getdbt.com/reference/commands/compile>`_
`run-operation<https://docs.getdbt.com/reference/commands/run -operation>`_
`snapshot<https://docs.getdbt.com/reference/commands/snapshot>`_
dbt 명령 사용에 대한 자세한 내용은 `dbt 명령 참조<https://docs.getdbt.com/reference/dbt-commands>`_ 섹션을 참조하세요.
사용법¶
snow dbt execute [snowflake-cli-options] NAME [dbt-command-and-options]
여기서,
:samp:`NAME`은 dbt 프로젝트 오브젝트의 이름입니다.
:samp:`[snowflake-cli-options]`는 다음을 포함한 Snowflake CLI 옵션 목록입니다.
:codenowrap:`–run-async`는 dbt 명령을 비동기적으로 실행하고 진행 상황을 추적하는 데 사용할 수 있는 쿼리를 즉시 반환합니다.
모든 전역 Snowflake CLI 옵션(예:
--help
또는--connection
)
[dbt-command-and-options]`는 dbt 명령의 이름과 해당 옵션(예: :codenowrap:`run --target dev
)입니다.
예¶
dbt
test
명령을 실행합니다.snow dbt execute jaffle_shop test
run
dbt 명령을 비동기적으로 실행합니다.snow dbt execute --run-async jaffle_shop run --select @source:snowplow,tag:nightly models/export
CI/CD 워크플로에 snow dbt
명령 사용하기¶
참고
CI/CD워크플로를 빌드할 때 Github와 Snowflake CLI 같은 git 서버만 필요합니다. Git 리포지토리 오브젝트는 필요하지 않습니다.
|sf-cli|를 사용해 dbt 명령을 실행하여 CI/CD 파이프라인을 빌드할 수 있습니다. 이러한 파이프라인은 일반적으로 새 풀 요청과 같은 새 코드를 테스트하거나, 기본 분기에 병합될 때마다 프로덕션 애플리케이션을 업데이트하는 데 사용됩니다.
snow dbt
명령을 사용하여 CI/CD 워크플로를 빌드하려면 다음 단계를 따르세요.
dbt 프로젝트를 준비합니다.
Snowflake CLI GitHub 작업을 설정합니다.
지침에 따라 :doc:`Snowflake CLI에 대한 GitHub 작업을 설정 </developer-guide/snowflake-cli/cicd/integrate-ci-cd>`하고, Snowflake에 대한 :ref:`연결을 확인<label-cli_test_connection>`하세요.
워크플로를 정의합니다.
조직의 요구 사항에 따라 워크플로에서 실행해야 하는 명령을 결정합니다. 다음 예제에서는 :codenowrap:`product_pipeline`이라는 dbt 프로젝트 오브젝트 버전을 새 파일로 업데이트하는 CI 워크플로를 설명하고, 변환 작업을 실행하며, 마지막으로 테스트를 실행합니다.
- name: Execute Snowflake CLI command run: | snow dbt deploy product_pipeline snow dbt execute product_pipeline run snow dbt execute product_pipeline test