Clean Room 버전 관리

참고

Clean Room 작성자를 위한 항목입니다. Clean Room 컨슈머는 Clean Room 버전에 대해 고민할 필요가 없습니다.

Clean Room 버전 번호 지정

Snowflake Clean Rooms는 버전이 관리됩니다. Python 코드가 없는 Clean Room의 초기 버전은 V1.0.0입니다.

Snowflake는 Python 코드 업로드 또는 외부 또는 Iceberg 테이블 활성화와 같은 특정 공급자 이벤트가 발생한 후 자동으로 새 버전의 Clean Room을 생성합니다. 이 작업으로 트리거된 보안 검사가 통과한 경우에만 새 버전을 생성합니다. 새 버전을 생성할 수 있는 작업은 프로시저 응답에 이를 언급합니다. 보안 검사에 실패한 작업은 새 버전이 생성되지 않습니다. 공급자 작업만 새로운 Clean Room 버전을 만들 수 있으며, 컨슈머 작업은 불가능합니다.

Snowflake는 새 버전이 나올 때마다 패치 번호(마지막 자릿수)만 증가합니다. 따라서 연속된 세 버전의 버전 번호는 V1.0.0, V1.0.1, V1.0.2가 됩니다.

참고

Clean Rooms는 네이티브 애플리케이션 패키지 로 구현되기 때문에 버전이 지정되어 있습니다. Snowflake의 네이티브 애플리케이션 프레임워크에서 버전 V1.0.2의 경우 “V1.0”(문자열)은 버전 번호이고 2(정수)는 패치 번호라는 규칙이 있습니다. Clean Room 설명서는 일반적으로 “버전”이라는 용어를 사용하여 단순히 “V1.0” 접두사(Native App Framework에서 가끔 사용되는 것처럼)가 아닌 전체 숫자(V1.0.1)를 표시합니다.

해당 Clean Room의 ID 를 사용하여 SHOW VERSIONS IN APPLICATION PACKAGE samooha_cleanroom_CLEANROOM_ID; 를 호출하면 해당 Clean Room의 버전 기록을 확인할 수 있습니다.

기본 릴리스 지시문

각 Clean Room에는 Clean Room 작성자가 기본 릴리스 지시문 을 할당합니다. 기본 릴리스 지시문은 사용자 계정에 어떤 버전의 Clean Room을 설치할지 지정합니다. 컨슈머는 설치할 Clean Room의 버전을 지정할 수 없습니다. 업데이트는 사용 가능한 리소스에 따라 Snowflake에서 자동으로 처리되며 새 버전이 사용자 계정에 설치되기 전에 약간의 지연이 있을 수 있습니다.

Clean Room 공급자는 Clean Room을 처음 공유할 때(내부 또는 외부) 또는 공급자가 코드를 업로드하고 보안 검사를 통과할 때마다 Clean Room의 기본 릴리스 지시문을 지정해야 합니다. Clean Room의 새 버전이 생성되었지만 기본 릴리스 지시문이 업데이트되지 않은 경우 컨슈머에게는 마지막 기본 버전이 계속 제공됩니다.

Clean Room 공급자는 원하는 경우 기본 릴리스 지시문을 이전 릴리스로 롤백할 수 있습니다.

provider.set_default_release_directive 를 호출하여 Clean Room에 대한 기본 릴리스 지시문을 지정합니다.

참고

공급자는 코드에서 Clean Room을 만들거나 수정할 때만 기본 릴리스 지시문을 설정해야 합니다. 웹 애플리케이션을 사용할 때 버전 관리가 자동으로 처리됩니다.

상대적으로 적은 수의 공급자 호출로 새로운 Clean Room 버전이 생성될 수 있습니다. 보안 검사를 통과한 경우에만 Snowflake에서 새 버전을 생성합니다. 따라서 기본 릴리스 지시문을 업데이트하기 전에 provider.view_cleanrooom_scan_status 를 호출하여 Clean Room의 보안 검사 상태를 확인해야 합니다. 기본 릴리스 지시문을 업데이트하지 않아도 오류가 발생하지는 않지만 업데이트하지 않으면 변경 사항이 포함된 최신 버전이 사용자에게 제공되지 않습니다.

이 Snowflake 계정에서 만든 모든 Clean Room 패키지(Clean Rooms)를 나열합니다.

SHOW APPLICATION PACKAGES STARTS WITH 'SAMOOHA_CLEANROOM_';
Copy

Clean Room MY_FIRST_CLEANROOM 의 모든 버전을 나열합니다.

SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_MY_FIRST_CLEANROOM;
Copy

Clean Room을 처음 게시하기 전에 항상 기본 릴리스 지시문을 설정해야 합니다. Python 코드를 추가하지 않았다면 V1.0.0이어야 합니다.

CALL samooha_by_snowflake_local_db.provider.set_default_release_directive(
  $cleanroom_name, 'V1_0', '0');
Copy

방금 외부에서 만든 Clean Room이거나 이미 외부에서 만든 Clean Room인데 버전이 변경된 경우 버전을 설정하기 전에 스캔 검토 상태를 확인하십시오.

CALL samooha_by_snowflake_local_db.provider.view_cleanroom_scan_status('MY_FIRST_CLEANROOM');

-- When REVIEW_STATUS = APPROVED, you can update the default version to the
-- latest version, if you haven't done so already.
SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_MY_FIRST_CLEANROOM;
CALL samooha_by_snowflake_local_db.provider.set_default_release_directive(
  $cleanroom_name, 'V1_0', '<<LATEST_PATCH_NUMBER>>');
Copy