Clean Room 버전 관리예요
Clean Room 버전 관리예요
서비스 종료 안내
레거시 Provider Data Clean Room과 Consumer Data Clean Room은 서비스가 중단될 예정이에요. 날짜와 마이그레이션 안내는 end-of-life timeline을 참고하세요.
참고
이 항목은 Clean Room 생성자를 위한 내용이에요. Clean Room 소비자는 Clean Room 버전 관리에 대해 생각할 필요가 없어요.
출처: 문서
본문
Clean room 버전 번호 매기기
Snowflake clean room에는 버전이 지정됩니다. Python 코드가 없는 clean room의 초기 버전은 V1.0.0입니다.
Snowflake는 Python 코드 업로드 또는 외부 테이블이나 Apache Iceberg™ 테이블 활성화와 같은 특정 provider 이벤트가 발생한 후 clean room의 새 버전을 자동으로 생성합니다. Snowflake는 이 작업으로 트리거된 보안 검사가 통과하는 경우에만 새 버전을 생성합니다. 새 clean room 버전을 생성할 수 있는 provider 작업은 비교적 적으며, 새 버전을 생성하는 프로시저는 프로시저 응답에 새 버전을 명시합니다.
보안 검사에 실패하는 작업은 새 버전을 생성하지 않습니다.
새 clean room 버전을 만들 수 있는 것은 provider 작업뿐이며, consumer 작업으로는 만들 수 없습니다.
Snowflake는 새 버전마다 패치 번호(마지막 자리)만 증가시킵니다. 따라서 연속된 세 버전의 버전 번호는 V1.0.0, V1.0.1, V1.0.2가 됩니다.
Clean room은 네이티브 애플리케이션 패키지로 구현되기 때문에 버전이 지정됩니다. Snowflake의 native application framework에서 V1.0.2 버전의 경우 “V1.0”(문자열)이 버전 번호이고 2(정수)가 패치 번호입니다. Clean room 문서에서는 일반적으로 “버전”이라는 용어를 단순히 “V1.0” 접두사(네이티브 앱 프레임워크에서 가끔 사용됨)가 아니라 전체 번호(V1.0.1)를 나타내는 데 사용합니다.
특정 clean room의 버전 기록과 검토 상태를 보려면 clean room의 ID를 사용하여 SHOW VERSIONS IN APPLICATION PACKAGE samooha_cleanroom_*CLEANROOM_ID*;를 호출하면 됩니다.
기본 릴리스 지시문
각 clean room에는 clean room provider가 할당한 기본 릴리스 지시문이 있습니다. 기본 릴리스 지시문은 사용자 계정에 설치하거나 로드해야 하는 clean room 버전을 지정합니다. Consumer는 설치할 clean room 버전을 지정할 수 없습니다. 업데이트는 사용 가능한 리소스에 따라 Snowflake가 자동으로 처리하며, 새 버전이 사용자 계정에 설치되기까지 지연이 발생할 수 있습니다.
clean room provider는 clean room을 처음 공유하기 전(내부 또는 외부) 또는 provider가 코드를 업로드하고 보안 검사가 통과할 때마다 clean room의 기본 릴리스 지시문을 지정해야 합니다. clean room의 새 버전이 생성되었지만 기본 릴리스 지시문이 업데이트되지 않으면 consumer는 계속 마지막 기본 버전을 제공받습니다.
clean room을 게시하기 전에 항상 기본 릴리스 지시문을 설정해야 합니다. Python 코드를 추가하지 않았다면 여기에 표시된 것처럼 V1.0.0이어야 합니다:
CALL samooha_by_snowflake_local_db.provider.set_default_release_directive(
$cleanroom_name, 'V1_0', '0');
clean room provider는 원하는 경우 기본 릴리스 지시문을 이전 릴리스로 롤백할 수 있습니다.
clean room의 기본 릴리스 지시문을 지정하려면 provider.set_default_release_directive를 호출하세요.
provider는 코드에서 clean room을 생성하거나 수정할 때만 기본 릴리스 지시문을 설정해야 합니다. clean rooms UI를 사용할 때는 버전 관리가 자동으로 처리됩니다.
Snowflake는 provider 작업으로 트리거된 보안 검사가 통과하는 경우에만 새 버전을 생성합니다. 따라서 기본 릴리스 지시문을 업데이트하기 전에 provider.view_cleanrooom_scan_status를 호출하여 clean room의 보안 검사 상태를 확인해야 합니다. 기본 릴리스 지시문을 업데이트하지 않아도 오류가 발생하지는 않지만, 기본 릴리스 지시문을 업데이트하지 않으면 변경 사항이 포함된 최신 버전이 사용자에게 게시되지 않습니다.
오류가 있는 Clean room
보안 검사가 실패하거나 구문 오류가 있는 Python 코드를 업로드하는 경우처럼 오류가 있는 clean room을 게시하면 패치가 생성되지만, 해당 버전을 기본 릴리스 지시문으로 사용할 수는 없습니다. 수정된 버전을 게시할 때까지 추가 패치는 이전 실패한 패치의 오류를 포함하므로 결과적으로 실패한 clean room 패치가 됩니다.
버전 관리 치트 시트
이 Snowflake 계정에서 생성된 모든 clean room 패키지(clean room)를 나열합니다:
SHOW APPLICATION PACKAGES STARTS WITH 'SAMOOHA_CLEANROOM_';
clean room MY_FIRST_CLEANROOM의 모든 버전을 나열합니다:
SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_MY_FIRST_CLEANROOM;
현재 기본 릴리스 지시문을 확인합니다:
SHOW RELEASE DIRECTIVES IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_<your_clean_room_name>;
방금 외부로 전환한 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>>');