Snowflake의 dbt 프로젝트¶
`dbt Core`_는 SQL 변환을 정의, 테스트, 배포하는 데 사용할 수 있는 오픈 소스 데이터 변환 도구 및 프레임워크입니다.
|sf-dbt|를 사용하면 일반적으로 다음과 같이 익숙한 Snowflake 기능을 사용하여 dbt Core 프로젝트를 생성, 편집, 테스트, 실행, 관리할 수 있습니다.
유효한 dbt 프로젝트로 시작: (
dbt_project.yml,profile.yml,/models/...사용) 이는 |sf-web-interface|의 작업 공간 또는 Snowflake에 연결한 Git 리포지토리에 저장됩니다. :doc:`필요한 권한</user-guide/data-engineering/dbt-projects-on-snowflake-access-control>`이 있는 역할로 데이터베이스, 스키마 및 웨어하우스를 준비합니다.종속성 설치: Snowflake 작업 공간, 로컬 컴퓨터 또는 git 오케스트레이터 내에서
dbt deps명령을 실행하여 dbt 프로젝트의dbt_packages폴더를 채웁니다.자세한 내용은 Snowflake의 dbt 프로젝트에 대한 종속성 이해 섹션을 참조하십시오.
DBT PROJECT 오브젝트 배포: 프로젝트 파일을 해당 오브젝트의 새 버전에 복사하여 스키마 수준 DBT PROJECT 오브젝트를 생성합니다. CREATE OR REPLACE DBT PROJECT … FROM <source> 명령 또는
snow dbt deploySnowflake CLI 명령을 사용하여 이 작업을 수행할 수 있습니다.자세한 내용은 dbt 프로젝트 오브젝트 배포 섹션을 참조하십시오.
Snowflake에서 dbt 프로젝트 실행: EXECUTE DBT PROJECT 명령 또는
snow dbt executeSnowflake CLI 명령을 사용하여 dbt 프로젝트 오브젝트 내에서 dbt Core 프로젝트를 실행합니다. dbt 프로젝트를 실행하면 dbt Core 명령이 호출되어 모델을 빌드하거나 테스트합니다. 이 작업은 예약하고 오케스트레이션할 수 있습니다.For more information, see EXECUTE DBT PROJECT.
Snowflake 작업으로 예약: Snowflake 작업을 사용하여 dbt 프로젝트 실행을 예약하고 오케스트레이션합니다.
자세한 내용은 Snowflake에서 dbt 프로젝트 실행 예약 섹션을 참조하십시오.
CI/CD 통합 설정: Snowflake CLI 명령을 사용하여 배포 및 실행을 CI/CD 워크플로에 통합합니다.
dbt 프로젝트 오브젝트는 명령줄에서 dbt 프로젝트를 만들고 관리하는 데 사용할 수 있는 Snowflake CLI 명령을 지원합니다. 이는 dbt 프로젝트를 데이터 엔지니어링 워크플로 및 CI/CD 파이프라인에 통합하는 데 유용합니다. 자세한 내용은 Snowflake CLI, CI/CD 와 Snowflake CLI 통합하기, snow dbt 명령 를 참조하십시오.
dbt 프로젝트 모니터링: dbt 프로젝트 오브젝트를 수동으로 실행하거나 작업을 사용하여 일정에 따라 dbt 프로젝트 오브젝트를 실행하는 경우, Snowflake 모니터링 기능을 사용하여 dbt 프로젝트 실행을 검사, 관리, 조정할 수 있습니다.
자세한 내용은 Snowflake에서 dbt 프로젝트 모니터링 섹션을 참조하십시오.
핵심 개념¶
dbt project objects: A dbt project is a directory that contains a
dbt_project.ymlfile and a set of files that define dbt assets, such as models and sources. A DBT PROJECT is a schema-level object that contains versioned source files for your dbt project in Snowflake. You can connect a dbt project object to a workspace, or you can create and manage the object independent of a workspace. You can CREATE, ALTER, and DROP dbt project objects like other schema-level objects in Snowflake.dbt 프로젝트 오브젝트는 일반적으로
dbt-project.yml파일이 포함된 dbt 프로젝트 디렉터리를 기반으로 합니다. 이는 작업 공간 내에서 dbt 프로젝트 오브젝트를 배포(생성)할 때 Snowflake가 사용하는 패턴입니다.자세한 내용은 dbt 프로젝트 오브젝트 이해 섹션을 참조하십시오.
스키마 사용자 지정: dbt는 기본 매크로 :code:`generate_schema_name`을 사용하여 모델이 빌드되는 위치를 결정합니다. dbt가 모델, 시드, 스냅샷, 테스트 테이블을 빌드하는 방법을 사용자 지정할 수 있습니다.
자세한 내용은 스키마 생성 및 사용자 지정 이해하기 섹션을 참조하십시오.
작업 공간: Snowflake 웹 인터페이스의 작업 공간은 Git 연결 웹 IDE로, 여기서 하나 이상의 dbt 프로젝트를 시각화, 테스트, 실행 및 스캐폴딩하고, 이를 Snowflake dbt 프로젝트 오브젝트에 연결하여 생성/업데이트하고, 한 곳에서 다른 Snowflake 코드를 편집할 수 있습니다.
자세한 내용은 |sf-dbt|용 작업 공간 사용 섹션을 참조하십시오.
버전 관리: 모든 dbt 프로젝트 오브젝트의 버전이 관리됩니다. 버전은 :samp:`snow://dbt/<db>.<schema>.<project>/versions/…`에 있습니다.
자세한 내용은 dbt 프로젝트 오브젝트 및 파일의 버전 관리 섹션을 참조하십시오.