DCM Projects 에서 지원되는 오브젝트 유형

DEFINE 문은 DCM project 정의 파일에서만 사용되는 특수 명령입니다. 구문은 CREATE OR ALTER 명령과 유사하지만, 다음과 같은 주요 차이점이 있습니다.

  • DEFINE 문의 순서와 위치는 중요하지 않습니다. Snowflake는 프로젝트 실행 중에 모든 정의 파일에서 모든 문을 수집하고 정렬합니다.

  • 이전에 배포된 DEFINE 문을 제거하는 경우 Snowflake는 다음에 프로젝트를 배포할 때 해당 오브젝트를 삭제합니다. 이는 이전에 배포된 후 제거된 GRANT 및 ATTACH 문에도 동일하게 적용됩니다.

  • Snowflake 오브젝트 유형의 하위 세트만 지원됩니다.

  • 모든 오브젝트는 정규화된 이름(database.schema.object_name)으로 정의해야 합니다.

  • 다른 오브젝트에 대한 참조는 정규화된 이름을 사용해야 합니다.

DEFINE, GRANT, ATTACH 문이 있는 DCM Projects 정의 파일에서 기본적으로 지원되는 오브젝트 유형은 다음과 같습니다.

데이터베이스

제한 사항:

모든 CREATE OR ALTER DATABASE 제한 사항 적용(다음 포함):

  • 데이터베이스 이름 바꾸기

스키마

제한 사항:

모든 CREATE OR ALTER SCHEMA 제한 사항 적용(다음 포함):

  • 스키마 이름 바꾸기

테이블

제한 사항:

모든 CREATE OR ALTER TABLE 제한 사항 적용(다음 포함):

  • 테이블 이름 바꾸기

  • 열 이름 바꾸기

  • 열 재정렬하기

  • 열 유형을 호환되지 않는 유형으로 변경하기

  • 테이블 또는 열에 검색 최적화 추가하기

  • 테이블 또는 열에 태그 및 정책 추가하기

제한 사항:

모든 CREATE OR ALTER VIEW 제한 사항 적용(다음 포함):

  • 뷰 이름 바꾸기

  • 열 재정렬하기

동적 테이블

지원되는 변경 사항:

전체 새로 고침을 사용하지 않는 경우:

  • 웨어하우스

  • 목표 지연

다시 초기화 또는 전체 새로 고침을 사용하는 경우:

  • 새로 고침 모드

  • 다음을 포함한 본문의 모든 변경 사항:

    • 열 삭제하기

    • 끝에 열 추가하기

불변 인자:

  • INITIALIZE

제한 사항:

모든 CREATE OR ALTER DYNAMIC TABLE 제한 사항 적용(다음 포함):

  • 열 재정렬하기

  • 동적 테이블 이름 바꾸기

작업

이미 시작된 작업에 대해 정의 변경 사항이 배포되면 Snowflake는 해당 작업(또는 루트 작업)을 자동으로 일시적으로 중단하고 변경 사항을 적용한 다음 다시 시작합니다.

새로 배포된 작업은 기본적으로 일시 중단됩니다.

제한 사항:

파일 형식

제한 사항:

내부 스테이지

지원되는 변경 사항:

  • 디렉터리 테이블

  • 설명

불변 속성:

  • 암호화 유형

제한 사항:

SQL 함수

제한 사항:

데이터 메트릭 함수

데이터 메트릭 함수(DMFs)를 사용하면 데이터 품질 기대치를 정의하고 해당 기대치를 테이블에 첨부할 수 있습니다. 기존 시스템 DMFs에서 선택하거나 사용자 정의 데이터 메트릭 함수(UDMFs)를 직접 쓸 수 있습니다. 그런 다음 다대다 관계로 테이블, 뷰 및 동적 테이블에 첨부할 수 있습니다. 자세한 내용은 SQL을 사용하여 데이터 메트릭 함수 설정 섹션을 참조하십시오.

데이터 메트릭 함수를 첨부하려면 먼저 각 테이블, 동적 테이블 또는 뷰 정의에 DATA_METRIC_SCHEDULE``을 추가해야 합니다. 예를 들어 ``DATA_METRIC_SCHEDULE = TRIGGER_ON_CHANGES 과 같습니다. TRIGGER_ON_CHANGES 일정은 뷰에 사용할 수 없습니다.

기대치의 사용자 정의 이름은 프로젝트 및 첨부 파일마다 고유해야 합니다.

기대치를 정의하는 것은 선택 사항이지만 DMFs를 테이블 열에 첨부할 때는 권장됩니다. 기대치를 설정하지 않고 첨부한 DMFs는 ``EXECUTE DCM PROJECT <my_project> TEST ALL``을 실행할 때 고려되지 않습니다.

지원되는 변경 사항:

  • UDMFs(사용자 정의 데이터 메트릭 함수) 정의하기

  • 시스템 DMFs 및 UDMFs를 DCM project 내부 및 외부의 테이블, 뷰, 동적 테이블에 첨부하기

  • 테이블 열에 대한 데이터 기대치 정의하기

예:

UDMF를 정의하는 예제:

DEFINE DATA METRIC FUNCTION DCM_DEMO.TESTS.INVENTORY_SPREAD(
  TABLE_NAME TABLE(
    COLUMN_VALUE number
  )
)
  RETURNS number
AS
$$
  SELECT
    MAX(COLUMN_VALUE) - MIN(COLUMN_VALUE)
  FROM
    TABLE_NAME
  WHERE
    COLUMN_VALUE IS NOT NULL
$$;

시스템 DMF를 기대치에 첨부하는 예제:

ATTACH DATA METRIC FUNCTION SNOWFLAKE.CORE.MIN
  TO TABLE DCM_PROJECT_{{db}}.RAW.INVENTORY
  ON (IN_STOCK)
  EXPECTATION MIN_10_ITEMS_INVENTORY (value > 10);

UDMF를 기대치에 첨부하는 예제:

ATTACH DATA METRIC FUNCTION DCM_DEMO.TESTS.INVENTORY_SPREAD
  TO TABLE DCM_PROJECT_{{db}}.RAW.INVENTORY
  ON (IN_STOCK)
  EXPECTATION EVEN_ITEM_INVENTORY (VALUE < 50);

사용 가능한 모든 시스템 DMFs를 보려면 ``SHOW DATA METRIC FUNCTIONS IN DATABASE SNOWFLAKE``를 쿼리합니다.

웨어하우스

불변 속성:

  • INITIALLY_SUSPENDED

제한 사항:

역할 및 데이터베이스 역할

지원되지 않는 유형:

  • 애플리케이션 역할

권한 부여

각 오브젝트가 DCM Projects 에서 한 번만 정의될 수 있는 것처럼, 각 권한-피부여자 관계는 모든 DCM Projects 에서 한 번만 정의할 수 있습니다.

이전에 배포된 GRANT OWNERSHIP 문을 제거하는 경우 DCM Projects 는 현재 소유자 역할을 사용하여 DCM project 소유자에게 소유권을 다시 부여하려고 시도합니다. 프로젝트 소유자 역할에 오브젝트의 소유자 역할이 없는 경우 소유권을 DCM Projects 외부에서 수동으로 다시 이전해야 합니다.

DCM Projects 는 DCM Projects 를 통해 정의되고 배포된 권한 부여만 인식합니다. DCM Projects 외부에 추가된 모든 권한 부여는 공존하며, DCM Projects 는 이를 제거하지 않습니다.

지원되지 않는 GRANT 유형:

  • APPLICATION ROLE 권한

  • CALLER 권한

태그

지원되지 않는 특성:

  • 전파

제한 사항:

인증 정책

제한 사항:

태그, 마스킹 정책 및 행 액세스 정책 첨부하기(지원되지 않음)

태그, 마스킹 정책 및 행 액세스 정책은 DCM Projects 테이블 열 정의에 추가할 수 없습니다.

DCM Projects 외부에서 마스킹 및 행 액세스 정책을 수동으로 첨부할 수 있습니다. 테이블 오브젝트에 대한 DCM Projects 정의는 첨부된 마스킹 또는 행 액세스 정책을 무시합니다. 테이블 정의에 정책이 포함되어 있지 않은 경우 테이블 정의를 다시 배포해도 취소되지 않습니다.