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';

더 알아보기