Snowflake의 dbt 프로젝트

`dbt Core`_는 SQL 변환을 정의, 테스트, 배포하는 데 사용할 수 있는 오픈 소스 데이터 변환 도구 및 프레임워크입니다.

dbt Projects on Snowflake 를 사용하면 일반적으로 다음과 같이 익숙한 Snowflake 기능을 사용하여 dbt Core 프로젝트를 생성, 편집, 테스트, 실행, 관리할 수 있습니다.

  1. 유효한 dbt 프로젝트로 시작: (dbt_project.yml, profile.yml, /models/... 사용) 이는 Snowsight 의 작업 공간 또는 Snowflake에 연결한 Git 리포지토리에 저장됩니다. :doc:`필요한 권한</user-guide/data-engineering/dbt-projects-on-snowflake-access-control>`이 있는 역할로 데이터베이스, 스키마 및 웨어하우스를 준비합니다.

  2. 종속성 설치: Snowflake 작업 공간, 로컬 컴퓨터 또는 git 오케스트레이터 내에서 dbt deps 명령을 실행하여 dbt 프로젝트의 dbt_packages 폴더를 채웁니다.

    자세한 내용은 Snowflake의 dbt 프로젝트에 대한 종속성 이해 섹션을 참조하십시오.

  3. DBT PROJECT 오브젝트 배포: 프로젝트 파일을 해당 오브젝트의 새 버전에 복사하여 스키마 수준 DBT PROJECT 오브젝트를 생성합니다. CREATE OR REPLACE DBT PROJECT … FROM <source> 명령 또는 snow dbt deploy Snowflake CLI 명령을 사용하여 이 작업을 수행할 수 있습니다.

    자세한 내용은 dbt 프로젝트 오브젝트 배포 섹션을 참조하십시오.

  4. Snowflake에서 dbt 프로젝트 실행: EXECUTE DBT PROJECT 명령 또는 snow dbt execute Snowflake CLI 명령을 사용하여 dbt 프로젝트 오브젝트 내에서 dbt Core 프로젝트를 실행합니다. dbt 프로젝트를 실행하면 dbt Core 명령이 호출되어 모델을 빌드하거나 테스트합니다. 이 작업은 예약하고 오케스트레이션할 수 있습니다.

    자세한 내용은 EXECUTE DBT PROJECT 섹션을 참조하십시오.

  5. Snowflake 작업으로 예약: Snowflake 작업을 사용하여 dbt 프로젝트 실행을 예약하고 오케스트레이션합니다.

    자세한 내용은 Snowflake에서 dbt 프로젝트 실행 예약 섹션을 참조하십시오.

  6. CI/CD 통합 설정: Snowflake CLI 명령을 사용하여 배포 및 실행을 CI/CD 워크플로에 통합합니다.

    dbt 프로젝트 오브젝트는 명령줄에서 dbt 프로젝트를 만들고 관리하는 데 사용할 수 있는 Snowflake CLI 명령을 지원합니다. 이는 dbt 프로젝트를 데이터 엔지니어링 워크플로 및 CI/CD 파이프라인에 통합하는 데 유용합니다. 자세한 내용은 Snowflake CLI, CI/CD 와 Snowflake CLI 통합하기, snow dbt 명령 를 참조하십시오.

  7. dbt 프로젝트 모니터링: dbt 프로젝트 오브젝트를 수동으로 실행하거나 작업을 사용하여 일정에 따라 dbt 프로젝트 오브젝트를 실행하는 경우, Snowflake 모니터링 기능을 사용하여 dbt 프로젝트 실행을 검사, 관리, 조정할 수 있습니다.

    자세한 내용은 Snowflake에서 dbt 프로젝트 모니터링 섹션을 참조하십시오.

핵심 개념

  • dbt 프로젝트 오브젝트: *dbt 프로젝트*는 dbt_project.yml 파일과 모델 및 소스와 같은 dbt 자산을 정의하는 파일 세트가 포함된 디렉터리입니다. DBT PROJECT는 Snowflake의 dbt 프로젝트에 대한 버전이 지정된 소스 파일을 포함하는 스키마 수준 오브젝트입니다. dbt 프로젝트 오브젝트를 작업 공간에 연결하거나 작업 공간과 독립적으로 오브젝트를 생성하고 관리할 수 있습니다. Snowflake의 다른 스키마 수준 오브젝트와 같이 dbt 프로젝트 오브젝트를 CREATE, ALTER 및 DROP할 수 있습니다.

    dbt 프로젝트 오브젝트는 일반적으로 dbt-project.yml 파일이 포함된 dbt 프로젝트 디렉터리를 기반으로 합니다. 이는 작업 공간 내에서 dbt 프로젝트 오브젝트를 배포(생성)할 때 Snowflake가 사용하는 패턴입니다.

    자세한 내용은 dbt 프로젝트 오브젝트 이해 섹션을 참조하십시오.

  • 스키마 사용자 지정: dbt는 기본 매크로 :code:`generate_schema_name`을 사용하여 모델이 빌드되는 위치를 결정합니다. dbt가 모델, 시드, 스냅샷, 테스트 테이블을 빌드하는 방법을 사용자 지정할 수 있습니다.

    자세한 내용은 스키마 생성 및 사용자 지정 이해하기 섹션을 참조하십시오.

  • 작업 공간: Snowflake 웹 인터페이스의 작업 공간은 Git 연결 웹 IDE로, 여기서 하나 이상의 dbt 프로젝트를 시각화, 테스트, 실행 및 스캐폴딩하고, 이를 Snowflake dbt 프로젝트 오브젝트에 연결하여 생성/업데이트하고, 한 곳에서 다른 Snowflake 코드를 편집할 수 있습니다.

    자세한 내용은 dbt Projects on Snowflake 용 작업 공간 사용 섹션을 참조하십시오.

  • 버전 관리: 모든 dbt 프로젝트 오브젝트의 버전이 관리됩니다. 버전은 :samp:`snow://dbt/<db>.<schema>.<project>/versions/…`에 있습니다.

    자세한 내용은 dbt 프로젝트 오브젝트 및 파일의 버전 관리 섹션을 참조하십시오.