DCM Projects에서 지원되는 엔터티
DCM Projects에서 지원되는 엔터티
DCM 프로젝트는 정의 파일에서 지원되는 Snowflake 엔터티(객체, 프로젝트 자산, 권한, 첨부)를 관리할 수 있어요. 이 주제는 지원되는 엔터티를 설명해요.
출처: Snowflake User Guide - Supported entities in DCM Projects
본문
객체(Object)
다음 Snowflake 객체 유형을 DCM 프로젝트에서 DEFINE 문으로 정의할 수 있어요.
- Alert —
WAREHOUSE와SCHEDULE속성을 가진 alert를 정의해요. 게시(publish) 전에 DDL 문을 검증해야 해요. - Code Bundle — 코드 번들을
DEFINE CODE BUNDLE로 정의해요. 스키마 수준 객체로, 함수·프로시저·태스크가 공유 코드(예: Python, Java, Scala 소스 또는 JAR)를 참조할 수 있게 해줘요. - Database —
DEFINE DATABASE ... WITH comment='...'. - Dynamic table —
DEFINE DYNAMIC TABLE .... - File format —
DEFINE FILE FORMAT .... - Functions —
DEFINE FUNCTION .... 포함된 함수와 커스텀 UDF를 정의할 수 있어요. 데이터 메트릭 함수(DMF):DEFINE DATA METRIC FUNCTION ...(SQL UDF만 지원돼요). - Network rule —
DEFINE NETWORK RULE .... - Pipe —
DEFINE PIPE .... - Policies —
DEFINE MASKING POLICY,DEFINE ROW ACCESS POLICY,DEFINE AGGREGATION POLICY,DEFINE AUTHENTICATION POLICY,DEFINE NETWORK POLICY,DEFINE PACKAGING POLICY,DEFINE PROJECTION POLICY,DEFINE PASSWORD POLICY,DEFINE SESSION POLICY,DEFINE TAG-BASED MASKING POLICY등. - Procedures —
DEFINE PROCEDURE ...(SQL과 JavaScript 저장 프로시저를 지원해요). - Roles —
DEFINE ROLE .... 데이터베이스 역할도DEFINE DATABASE ROLE .... - Schema —
DEFINE SCHEMA ... WITH comment='...'. - Semantic view —
DEFINE SEMANTIC VIEW .... - Sequence —
DEFINE SEQUENCE .... - Share —
DEFINE SHARE .... - Stages — 외부 스테이지(
DEFINE STAGE)와 내부 스테이지(DEFINE STAGE)를 포함해요. 명명된 내부 스테이지에는STORAGE_INTEGRATION속성이 필요해요. - Stream —
DEFINE STREAM .... - Streamlit — DCM 프로젝트가 Streamlit 앱을 관리할 수 있어요. Streamlit 앱용 DCM 프로젝트를 만들거나 기존 앱을 자산으로 가져와 PLAN·DEPLOY할 수 있어요.
- Table —
DEFINE TABLE .... 외부 테이블도DEFINE EXTERNAL TABLE .... - Tag —
DEFINE TAG .... - Task —
DEFINE TASK .... 태스크를 위한WAREHOUSE,SCHEDULE,SESSION_PARAMETERS,ALLOW_OVERLAPPING_EXECUTION같은 속성을 지원해요. - View —
DEFINE VIEW ...(보안 뷰 포함). - Warehouse —
DEFINE WAREHOUSE ....
프로젝트 자산(Project assets)
프로젝트 자산은 DCM 프로젝트가 관리하는 비데이터베이스 자산이에요. 예: Streamlit 앱을 프로젝트 자산으로 가져와 관리할 수 있어요.
권한(Grants)
GRANT:
DCM 프로젝트는 GRANT 문을 지원해요. 예:
GRANT OWNERSHIP ON TABLE my_table TO ROLE my_role;
GRANT SELECT ON VIEW my_view TO ROLE analyst;
OWNERSHIP grants:
GRANT OWNERSHIP을 정의하면 DCM 프로젝트가 객체의 소유권을 관리해요. 소유권 권한은 DCM 프로젝트가 관리하는 객체에 대해 지원돼요.
제한된 권한으로 프로시저·태스크 실행:
프로시저와 태스크는 권한이 제한된 상태로 실행될 수 있어요. 관련 EXECUTE AS 설정을 지원해요.
상속된 권한(Inherited grants):
역할 계층을 통해 상속되는 권한을 지원해요.
컨테이너 수준 MANAGE GRANTS:
컨테이너(데이터베이스·스키마) 수준에서 MANAGE GRANTS 권한 부여를 지원해요.
첨부(Attachments)
첨부는 객체에 연관된 추가 정의를 말하며, ATTACH 문으로 정의돼요.
ATTACH Data Metric Function:
데이터 품질 기대치(expected values)를 데이터 메트릭 함수에 첨부해요. 예:
ATTACH DATA METRIC FUNCTION SNOWFLAKE.CORE.NULL_COUNT
ON TABLE my_table (my_col)
EXPECTATION no_null (VALUE = 0);
ATTACH Tag:
객체에 태그를 첨부해요. 예:
ATTACH TAG my_db.my_schema.my_tag
ON TABLE my_table = 'my_value';