Understand dbt project objects¶
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 independently of a workspace.
dbt 프로젝트 오브젝트는 일반적으로 dbt-project.yml 파일이 포함된 dbt 프로젝트 디렉터리를 기반으로 합니다. 이는 작업 공간 내에서 dbt 프로젝트 오브젝트를 :doc:`배포</user-guide/data-engineering/dbt-projects-on-snowflake-deploy>`(생성)할 때 Snowflake가 사용하는 패턴입니다.
dbt 프로젝트 오브젝트는 RBAC(역할 기반 액세스 제어)를 지원합니다. Snowflake의 다른 스키마 수준 오브젝트와 같이 dbt 프로젝트 오브젝트를 CREATE, ALTER 및 DROP할 수 있습니다. Snowflake Warehouse에서 EXECUTE DBT PROJECT 명령을 사용하여 test 및 ``run``과 같은 dbt 명령을 실행할 수 있습니다. :doc:`작업</user-guide/tasks-intro>`을 사용하여 이러한 명령의 실행을 예약할 수도 있습니다.
dbt 프로젝트 오브젝트가 업데이트되는 방법¶
dbt 프로젝트 오브젝트는 작업 공간을 편집할 때 자동으로 업데이트되지 않습니다. 따라서 오브젝트가 코드 변경 사항을 선택하도록 할 때마다 배포(즉, 새 버전을 추가)해야 합니다.
프로덕션 파이프라인을 생성하려면 dbt 프로젝트 오브젝트를 생성하고 :doc:`작업을 사용하여 실행을 예약</user-guide/data-engineering/dbt-projects-on-snowflake-schedule-project-execution>`하는 것이 좋습니다. 각 dbt 프로젝트 오브젝트 버전은 변경할 수 없으므로 누군가가 새 버전을 명시적으로 추가하지 않는 한, 실행 사이에 아무 것도 변경되지 않습니다.
dbt 프로젝트의 파일을 업데이트하려면 작업 공간에 새 버전을 추가해야 합니다. 예를 들면 다음과 같습니다.
ALTER DBT PROJECT testdbt.public.my_dbt_project_object
ADD VERSION FROM 'snow://workspace/user$.public."all_my_dbt_projects"/versions/last';
Git에서 dbt 프로젝트를 지원하고 테스트 및 배포를 자동화하려면 다음 예와 같이 --force 옵션을 지정하여 Snow CLI snow dbt deploy 명령을 실행하세요.
snow dbt deploy --source 'snow://workspace/user$.public."all_my_dbt_projects"/versions/last' --force my_dbt_project;
:code:`–force`를 사용하면 버전을 추가할 수 있습니다. 이 옵션을 사용하지 않을 경우 이미 생성된 오브젝트에 대해 CREATE DBT PROJECT를 실행하는 것과 같게 되며 실패합니다.
For more information about versioning, see dbt 프로젝트 오브젝트 및 파일의 버전.