Snowflake Data Clean Rooms에서 Cross-Cloud Auto-Fulfillment 관리
Snowflake Data Clean Rooms에서 Cross-Cloud Auto-Fulfillment 관리
수명 종료 안내
레거시 Provider 및 Consumer Data Clean Rooms가 중단될 예정이에요. 날짜와 마이그레이션 지침은 수명 종료 타임라인을 참고하세요.
출처: Managing Cross-Cloud Auto-Fulfillment in Snowflake Data Clean Rooms
본문
Cross-Cloud Auto-Fulfillment 소개
기본 클린룸 환경에서 클린룸은 같은 클라우드 리전의 계정과만 공유할 수 있어요. 즉, 프로바이더와 소비자는 같은 클라우드 리전에 있어야 해요. 자신과 다른 리전에 계정이 있는 협업자와 협업하려면 이 페이지에 표시된 대로 클린룸 환경과 클린룸에 대해 Cross-Cloud Auto-Fulfillment를 활성화해야 해요. 자신의 클라우드 리전은 SELECT CURRENT_REGION();을 실행해 확인할 수 있어요.
참고
Cross-Cloud Auto-Fulfillment는 리스팅 자동 이행(listings auto-fulfillment)의 약자인 LAF라고도 불러요.
Cross-Cloud Auto-Fulfillment 활성화
API 또는 UI를 사용해 Cross-Cloud Auto-Fulfillment를 활성화할 수 있어요. 단, 크로스 리전 협업의 제한 사항에 유의하세요.
구현 단계
사전 요구 사항
계정에 Cross-Cloud Auto-Fulfillment를 활성화하려면, 모든 협업자의 조직(org) 관리자가 먼저 SYSTEM$ENABLE_GLOBAL_DATA_SHARING_FOR_ACCOUNT를 호출해 계정에서 활성화해야 해요. 자동 이행(auto-fulfillment)과 자동 이행 권한 관리에 대해 자세히 알아보세요.
UI에서 Cross-Cloud Auto-Fulfillment 활성화
클린룸 관리자는 다음 단계를 따라 계정 수준에서 새 클린룸과 기존 클린룸 모두에 Cross-Cloud Auto-Fulfillment를 활성화해요.
- 관리자 계정으로 클린룸 UI에 로그인하세요.
- Admin > Snowflake Admin으로 이동하세요.
- Cross-Cloud Auto-Fulfillment를 켜세요.
UI에서 클린룸을 만들거나 참여할 때 프로바이더나 소비자가 추가로 수행할 단계는 없어요. 그러나 나중에 API에서 클린룸을 만들거나 참여한다면 프로바이더와 소비자용 API 지침을 따라야 해요.
API에서 Cross-Cloud Auto-Fulfillment 활성화
UI에서 이미 Cross-Cloud Auto-Fulfillment를 활성화했더라도, API에서 클린룸을 만들거나 설치하려면 다음 지침을 따라야 해요.
계정 관리자 작업
API를 사용해 계정에 Cross-Cloud Auto-Fulfillment를 활성화하려면 프로바이더와 소비자 계정 양쪽의 관리자가 ACCOUNTADMIN 역할로 다음 SQL 코드를 실행해야 해요. 계정당 한 번만 실행하면 돼요.
USE ROLE ACCOUNTADMIN;
-- Optionally check first to see if LAF is enabled on the account.
CALL samooha_by_snowflake_local_db.library.is_laf_enabled_on_account();
-- If LAF is not enabled, enable it.
CALL samooha_by_snowflake_local_db.library.enable_laf_on_account();
프로바이더 및 소비자 작업
계정에서 Cross-Cloud Auto-Fulfillment가 활성화된 후, 클린룸을 만들거나 설치할 때 Cross-Cloud Auto-Fulfillment를 활성화하는 방법은 다음과 같아요.
- 프로바이더는
provider.create_or_update_cleanroom_listing을 호출해 일반적인 방식으로 클린룸을 게시해요. - 소비자는
consumer.install_cleanroom을 호출해 클린룸을 설치해요. 소비자가 프로바이더와 다른 클라우드 리전에 있으면consumer.install_cleanroom이 Cross-Cloud Auto-Fulfillment 복제가 설치 중이라는 메시지와 함께 실패해요. - 소비자는 성공이 반환될 때까지
consumer.install_cleanroom을 계속 호출해요. 설치는 몇 분이 걸려요. 이 시점에서 소비자는 기본 클린룸 기능을 갖게 돼요.
클라이언트 사용자 지정 템플릿 요청, 프로바이더 실행 분석, 프로바이더 활성화를 지원하려면 다음 추가 단계를 수행하세요.
- 프로바이더는 절차가 성공을 보고할 때까지
provider.mount_request_logs_for_all_consumers를 호출해요. 이로써 소비자에서 프로바이더로의 통신이 활성화돼요.
전체 설정 코드 예시:
프로바이더: 프로바이더는 표준 방식으로 클린룸을 만들고, 공유하고, 게시해요.
USE WAREHOUSE APP_WH;
USE ROLE SAMOOHA_APP_ROLE;
SET cleanroom_name = 'LAF example';
SET consumer_locator = '<CONSUMER_LOCATOR>';
SET consumer_account_name = '<CONSUMER_DATA_SHARING_ACCOUNT_ID>';
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.provider.cleanroom_init($cleanroom_name);
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.provider.set_default_release_directive(
$cleanroom_name, 'V1_0', '0');
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.provider.add_consumers(
$cleanroom_name, $consumer_locator, $consumer_account_name);
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.provider.create_or_update_cleanroom_listing($cleanroom_name);
소비자: 소비자는 클린룸을 설치해요.
USE WAREHOUSE APP_WH;
USE ROLE SAMOOHA_APP_ROLE;
SET cleanroom_name = 'LAF example';
SET provider_locator = '<PROVIDER_LOCATOR>';
-- Initial call starts the process and returns a cross-cloud/region replication failure.
-- Continue to call this procedure until it returns a success message.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.consumer.install_cleanroom(
$cleanroom_name, $provider_locator);
-- Continue with standard clean room configuration and use.
-- The consumer can run analyses, but client custom templates, provider run, and provider analysis
-- aren't supported until the provider takes the action shown in the next step.
프로바이더: 소비자가 클린룸을 설치한 후, 프로바이더는 프로바이더와 소비자 사이의 요청 기반 작업을 활성화하기 위해 요청 공유(request share)를 마운트해야 해요. 요청 기반 작업에는 프로바이더의 분석 실행 요청과 소비자의 클린룸 템플릿 추가 요청이 포함돼요.
-- Call mount_request_logs_for_all_consumers until it reports success.
provider.mount_request_logs_for_all_consumers($cleanroom_name);
이제 프로바이더/소비자 전체 기능을 사용할 수 있어요.
크로스 리전 계정의 새로고침 주기
서로 다른 클라우드 리전에 있을 때 프로바이더와 소비자 사이의 요청과 데이터는 복제 주기 설정의 영향을 받아요.
프로바이더에서 소비자로의 요청과 데이터
여기에는 프로바이더에서 소비자로의 모든 데이터와 요청(클린룸 생성 또는 업데이트, 프로바이더 데이터 변경, 권한 요청(예: 프로바이더 실행 분석), 요청 승인(예: 소비자 템플릿))이 포함돼요. 프로바이더에서 소비자로의 새로고침 속도는 를 호출해 변경할 수 있어요.
| 데이터 | 기본 새로고침 속도 |
|---|---|
| 다음을 포함한 프로바이더 클린룸 데이터 — 프로바이더 데이터셋, 프로바이더 실행 요청, 클린룸 정책, 프로바이더 클린룸 메타데이터 | 2025년 7월 24일 이후 생성된 클린룸: 30분. 이전 클린룸: 계정의 복제 새로고침 일정(설정되지 않은 경우 24시간)을 기본값으로 사용. |
소비자에서 프로바이더로의 요청과 데이터
다음 표는 소비자에서 프로바이더로의 데이터와 요청에 대한 기본 새로고침 주기를 보여 줘요. 각 클린룸의 소비자에서 프로바이더로의 새로고침 속도를 제어할 수 있어요.
| 데이터 | 기본 새로고침 속도 |
|---|---|
| 다음을 포함한 요청, 승인, 변경 — 프로바이더에 대한 요청(예: 템플릿 추가 요청), 프로바이더에 대한 승인(예: 프로바이더 실행 분석 승인), 연결된 소비자 데이터 변경, 프로바이더 실행 요청의 상태와 결과 | 2025년 7월 24일 이후 생성된 클린룸: 10분 · 이전 클린룸: 1시간 |
| 프로바이더 활성화 데이터 | 2025년 7월 24일 이후 생성된 클린룸: 10분 · 이전 클린룸: 15분 |
크로스 리전 협업과 관련된 비용
다른 리전에 있는 협업자와의 협업에는 추가 비용이 발생해요. 이러한 비용이 어떻게 발생하는지에 대한 자세한 내용은 Auto-fulfillment 비용을 참고하세요.
크로스 리전 협업 제한 사항
크로스 리전 협업에는 다음과 같은 제한 사항이 있어요.
- 클린룸 UI를 사용할 때, 같은 UI 게이트웨이 리전의 다른 UI 사용자와만 크로스 리전 협업을 활성화할 수 있어요. 예를 들어 AWS US East(Ohio)의 계정은 같은 UI 게이트웨이 리전(AWS US East(N. Virginia))을 공유하므로 AWS US West(Oregon)의 계정과 공유할 수 있어요. AWS US East(Ohio)의 계정은 게이트웨이 리전을 공유하지 않으므로 AWS Canada의 계정과 협업할 수 없어요. 그러나 API를 사용할 때는 모든 계정이 크로스 리전 협업용으로 구성될 수 있어요.
- 프로바이더는 클린룸에서 차등 프라이버시(differential privacy)를 사용할 수 없어요.
- 협업자는 클린룸에서 외부 테이블과 아이스버그(Iceberg) 테이블을 연결할 수 없어요.
- 소비자는 다중 프로바이더 분석을 실행할 수 없어요.
- 크로스 클라우드 협업 시나리오에서 발생할 수 있는 복제 유형 충돌로 인해 계정이 프로바이더와 소비자를 동시에 수행할 수 없어요.
크로스 리전 협업 활성화 시 추가 고려 사항은 크로스 리전 협업 활성화 시 추가 고려 사항을 참고하세요.