ALTER DBT PROJECT¶
기존 dbt 프로젝트 오브젝트 의 속성을 수정합니다.
- 참고 항목:
CREATE DBT PROJECT, EXECUTE DBT PROJECT, DESCRIBE DBT PROJECT, DROP DBT PROJECT, SHOW DBT PROJECTS
구문¶
ALTER DBT PROJECT [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER DBT PROJECT [ IF EXISTS ] ADD VERSION [ <version_name_alias> ]
FROM '<source_location>'
ALTER DBT PROJECT [ IF EXISTS ] <name> SET
[ DEFAULT_VERSION = { FIRST | LAST | VERSION$<num> } ]
[ DEFAULT_ARGS = '<string_literal>' ]
[ COMMENT = '<string_literal>' ]
ALTER DBT PROJECT [ IF EXISTS ] <name> UNSET
[ DEFAULT_ARGS ]
[ COMMENT ]
매개 변수¶
name
변경할 dbt 프로젝트 오브젝트의 식별자를 지정합니다.
식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
RENAME TO new_name
dbt 프로젝트 오브젝트의 이름을
new_name
으로 변경합니다. 새 식별자는 스키마에 대해 고유한 식별자여야 합니다.식별자에 대한 자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
선택적으로 오브젝트의 이름을 바꾸는 동안 오브젝트를 다른 데이터베이스 및/또는 스키마로 이동할 수 있습니다. 그러려면 각각
db_name.schema_name.object_name
또는schema_name.object_name
형식으로 새 데이터베이스 및/또는 스키마 이름을 포함하는 정규화된new_name
값을 지정하십시오.참고
대상 데이터베이스 및/또는 스키마가 이미 있어야 합니다. 또한, 새 위치에 이름이 같은 오브젝트가 있으면 안 됩니다. 그렇지 않으면 문이 오류를 반환합니다.
오브젝트 소유자(즉, 오브젝트에 대한 OWNERSHIP 권한이 있는 역할) 역시 대상 스키마를 소유하지 않는 한 오브젝트를 관리되는 액세스 스키마로 이동하는 것은 금지됩니다.
오브젝트의 이름이 바뀌면 그 오브젝트를 참조하는 다른 오브젝트도 새 이름으로 업데이트해야 합니다.
ADD VERSION [ version_name_alias ]
현재 버전 식별자를 1씩 증분하여 새 버전을 만듭니다(예:
version$2`~:code:`version$3
).version name alias
는 선택 사항이며 새로 생성된 버전 식별자에 해당하는 사용자 지정 식별자입니다.version name alias
는 식별자 요구 사항 을 따라야 합니다.FROM 'source_location'
버전이 생성될 dbt 프로젝트의 소스 파일의 위치와 버전을 지정하는 문자열입니다.
dbt 프로젝트 원본 파일은 다음 위치 중 하나에 있을 수 있습니다.
Git 리포지토리 스테이지, 예를 들면 다음과 같습니다.
'@my_db.my_schema.my_git_repository_stage/branches/my_branch/path/to/dbt_project_or_projects_parent'
Snowflake에서 |sf-dbt|용 워크스페이스에 Git 리포지토리를 연결하는 Git 리포지토리 오브젝트를 생성하는 방법에 대한 자세한 내용은 Git 리포지토리에 연결된 작업 공간 만들기 섹션을 참조하세요. 워크스페이스를 사용하지 않고 Git 리포지토리 오브젝트 및 스테이지를 생성하고 관리하는 방법에 대한 자세한 내용은 Snowflake에서 Git 리포지토리 사용하기 및 CREATE GIT REPOSITORY 섹션을 참조하세요.
기존 dbt 프로젝트 스테이지, 예를 들면 다음과 같습니다.
'snow://dbt/my_db.my_schema.my_existing_dbt_project_object/versions/last'
버전 지정자는 필수이며
last
(이전 예제에 표시),first
또는version$<num>
형식의 기존 버전에 대한 지정자일 수 있습니다. 자세한 내용은 dbt 프로젝트 오브젝트 및 파일의 버전 관리 섹션을 참조하십시오.명명된 내부 스테이지, 예를 들면 다음과 같습니다.
'@my_db.my_schema.my_internal_named_stage/path/to/dbt_projects_or_projects_parent'
내부 사용자 스테이지 및 테이블 스테이지는 지원되지 않습니다.
Snowflake의 dbt를 위한 워크스페이스, 예를 들면 다음과 같습니다.
'snow://workspace/user$.public."my_workspace_name"/versions/live/path/to/dbt_projects_or_projects_parent'
워크스페이스 이름은 대소문자를 구분하고 특수 문자를 포함할 수 있으므로 워크스페이스 이름을 큰따옴표로 묶는 것이 좋습니다.
버전 지정자는 필수이며
last
,first
,live
또는version$<num>
형식의 기존 버전에 대한 지정자일 수 있습니다. 자세한 내용은 dbt 프로젝트 오브젝트 및 파일의 버전 관리 섹션을 참조하십시오.
SET ...
dbt 프로젝트 오브젝트에 대해 하나 이상의 지정된 속성 또는 매개 변수를 설정합니다.
DEFAULT_VERSION = { FIRST | LAST | VERSION$num }
EXECUTE DBT PROJECT 에서 사용할 dbt 프로젝트 오브젝트의 기본 버전을 지정합니다. 자세한 내용은 dbt 프로젝트 오브젝트 및 파일의 버전 관리 섹션을 참조하십시오.
DEFAULT_ARGS = 'string_literal'
EXECUTE DBT PROJECT 가 명령을 지정하지 않는 경우 사용할 기본 dbt 명령 및 명령줄 옵션 을 지정하는 문자열입니다.
중요
EXECUTE DBT PROJECT 명령에서 명시적으로 지정하는 인자는 DBT PROJECT 정의에 지정된 모든 DEFAULT_ARGS를 덮어씁니다.
COMMENT = 'string_literal'
dbt 프로젝트 오브젝트에 대한 설명을 추가하거나 기존 설명을 덮어씁니다.
UNSET ...
dbt 프로젝트 오브젝트에 대해 하나 이상의 지정된 속성 또는 매개 변수를 NULL 또는 값 없음으로 설정 해제합니다.
DEFAULT_VERSION
DEFAULT_ARGS
COMMENT
단일 ALTER 문으로 여러 속성 또는 매개 변수의 설정을 해제하려면 각 속성 또는 매개 변수를 쉼표로 구분합니다.
속성이나 매개 변수를 설정 취소할 때는 속성이나 매개 변수 이름만 지정하십시오(위의 구문에서 값을 지정해야 한다고 명시된 경우는 제외). 값을 지정하면 오류가 반환됩니다.
액세스 제어 요구 사항¶
이 SQL 명령을 실행하는 데 사용되는 역할 에는 다음 권한 중 최소한 하나 이상 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
---|---|---|
OWNERSHIP |
dbt 프로젝트 |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
스키마의 모든 오브젝트에 대해 작업을 수행하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한.
사용법 노트¶
메타데이터 관련:
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
예¶
다음 예제에서는 Snowflake에서 Git 리포지토리 오브젝트를 업데이트하여 Git 리포지토리에서 최신 코드를 가져온 다음, 새 버전을 추가하여 dbt 프로젝트 오브젝트의 내용을 업데이트합니다.
-- Update the Git repository object to fetch the latest code
ALTER GIT REPOSITORY sales_db.integrations_schema.sales_dbt_git_stage FETCH;
-- Add a new version to the dbt project object based on the updated Git repository object
ALTER DBT PROJECT sales_db.dbt_projects_schema.sales_model
ADD VERSION
FROM '@sales_db.integrations_schema.sales_dbt_git_stage/branches/main/sales_dbt_project';
다음 예제에서는 prod
대상에서 실행할 dbt 프로젝트 오브젝트의 기본 인자를 설정합니다. 이 인자는 프로젝트 정의에서 이전에 설정된 기본 인자를 덮어씁니다.
ALTER DBT PROJECT sales_db.dbt_projects_schema.sales_model
SET DEFAULT_ARGS = 'run --target prod';