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 제한 사항

    • 테이블 이름 바꾸기

    • 열 이름 바꾸기

    • 열 재정렬하기

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

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

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

동적 테이블

지원되는 변경 사항:

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

  • 웨어하우스

  • 목표 지연

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

  • 새로 고침 모드

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

    • 열 삭제하기

    • 끝에 열 추가하기

⚠️ 불변 인자:

  • INITIALIZE

🚫 지원되지 않는 변경 사항:

🚫 지원되지 않는 변경 사항:

내부 스테이지

지원되는 변경 사항:

  • 디렉터리 테이블

  • 설명

⚠️ 불변 속성:

  • 암호화 유형

웨어하우스

⚠️ 불변 속성:

  • INITIALLY_SUSPENDED

역할 및 데이터베이스 역할

🚫 지원되지 않는 유형:

  • 애플리케이션 역할

권한 부여

🚫 지원되지 않는 GRANT 유형:

  • APPLICATION ROLE 권한

  • CALLER 권한

참고

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

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

데이터 메트릭 함수

데이터 메트릭 함수(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``를 쿼리합니다.

작업

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

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

🚫 지원되지 않는 변경 사항:

CREATE OR ALTER TASK 문에 대한 제한 사항. 자세한 내용은 CREATE TASK 섹션을 참조하십시오.

SQL 함수

🚫 지원되지 않는 변경 사항:

CREATE OR ALTER 문에 대한 제한 사항. 자세한 내용은 CREATE FUNCTION 섹션을 참조하십시오.

태그

🚫 지원되지 않는 특성:

  • 전파

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

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

  • DCM Projects 외부에서 마스킹 정책 및 행 액세스 정책을 수동으로 첨부할 수 있습니다.

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