Snowflake Data Clean Rooms 에서 클라우드 간 자동 복제 관리하기

클라우드 간 자동 복제 정보

기본 Clean Room 환경에서는 동일한 클라우드 리전에 있는 계정과만 Clean Room을 공유할 수 있습니다. 즉, 공급자와 컨슈머는 동일한 클라우드 리전에 있어야 합니다.

계정이 내 계정과 다른 리전에 있는 공동 작업자와 공동 작업하려면 이 페이지에 표시된 대로 Clean Room 환경과 Clean Room에 대해 클라우드 간 자동 복제 를 활성화해야 합니다.

SELECT CURRENT_REGION(); 을 실행하여 자체 클라우드 리전을 확인할 수 있습니다.

참고

클라우드 간 자동 복제는 *LAF*라고도 합니다. 이는 :doc:`목록 자동 복제</collaboration/provider-listings-auto-fulfillment>`의 약자입니다.

클라우드 간 자동 복제 활성화하기

API 또는 UI를 사용하여 클라우드 간 자동 복제를 활성화할 수 있습니다. 그러나 :ref:`리전 간 협업에 대한 제한 사항<label-dcr_LAF_limitations>`을 참고하세요.

전제 조건

계정에 대해 클라우드 간 자동 복제를 활성화하려면 조직 관리자가 먼저 :doc:`/sql-reference/functions/system_enable_global_data_sharing_for_account`를 호출하여 계정에서 이를 활성화해야 합니다. 이는 공급자와 컨슈머 모두를 위한 것입니다.

자동 복제 및 :doc:`자동 복제 권한 관리</collaboration/provider-listings-auto-fulfillment-manage-privileges>`에 대해 자세히 알아보세요.

UI에서 클라우드 간 자동 복제 활성화

클린룸 관리자는 다음 단계에 따라 모든 신규 및 기존 클린룸에 대해 계정 수준에서 클라우드 간 자동 복제를 활성화합니다.

  1. 관리자 계정으로 :ref:`클린룸 UI에 로그인<label-cleanroom_web_app_sign_in>`합니다.

  2. :ui:`Admin > Snowflake Admin`을 찾아봅니다.

  3. Cross-Cloud Auto-Fulfillment 을 사용으로 전환합니다.

  4. :emph:`UI에서 클린룸을 생성하거나 조인`하는 경우 공급자 또는 컨슈머가 추가 단계를 수행할 필요가 없습니다. 하지만 나중에 :emph:`API에서 클린룸을 생성하거나 조인`하는 경우 공급자와 컨슈머를 위한 API 지침을 따라야 합니다.

API에서 클라우드 간 자동 복제 활성화

UI에서 클라우드 간 자동 복제를 이미 활성화한 경우에도 다음 지침에 따라 API에 클린룸을 만들거나 설치하세요.

계정 관리자

API를 사용하여 계정에 대해 클라우드 간 자동 복제를 활성화하려면 공급자 계정과 컨슈머 계정 모두의 관리자는 ACCOUNTADMIN 역할을 사용하여 다음 예제 코드를 실행해야 합니다. 이 작업은 계정당 한 번만 실행해야 합니다.

USE ROLE ACCOUNTADMIN;
-- Optionally check first to see if cross-cloud is enabled on the account.
CALL samooha_by_snowflake_local_db.library.is_laf_enabled_on_account();

-- If not, enable it.
CALL samooha_by_snowflake_local_db.library.enable_laf_on_account();
Copy

공급자 및 컨슈머

계정에 대해 클라우드 간 자동 복제가 활성화된 후 클린룸을 만들거나 설치할 때 클라우드 간 자동 복제를 활성화하는 방법은 다음과 같습니다.

  1. **공급자**는 ``provider.create_or_update_cleanroom_listing``을 호출하여 일반적인 방식으로 클린룸을 게시합니다.

  2. 컨슈머``consumer.install_cleanroom``을 호출하여 클린룸을 설치합니다. 컨슈머가 공급자와 다른 클라우드 리전에 있는 경우, ``consumer.install_cleanroom``이 클라우드 간 자동 복제의 복제가 설치되고 있다는 메시지와 함께 실패합니다.

  3. **컨슈머**는 성공을 반환할 때까지 ``consumer.install_cleanroom``을 계속 호출합니다. 설치에는 몇 분이 걸립니다.

이 시점에서 컨슈머는 기본적인 클린룸 기능을 갖습니다. 컨슈머가 클라이언트 템플릿 요청, 공급자 실행 분석, 공급자 활성화에 대한 지원을 원하는 경우 다음 추가 단계를 따르세요.

  1. **공급자**는 ``provider.mount_request_logs_for_all_consumers``를 호출하여 컨슈머에서 공급자로의 통신을 활성화합니다.

전체 설정 코드 예:

  1. 공급자: 공급자는 표준 방식으로 Clean Room을 생성, 공유 및 게시합니다.

    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);
    
    Copy
  2. 컨슈머: 컨슈머가 클린룸을 설치합니다.

    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.
    -- Consumer can run analyses, but requests to submit a template aren't
    -- supported until the provider calls ``provider.mount_request_logs_for_all_consumers``.
    ...
    
    Copy
  3. 공급자: 컨슈머가 클린룸을 설치한 후 공급자는 공급자와 컨슈머 사이에서 요청 기반 작업을 활성화하려는 경우 요청 공유를 마운트해야 합니다. 요청 기반 작업에는 분석을 실행하라는 공급자 요청과 클린룸에 템플릿을 추가하라는 컨슈머 요청이 포함됩니다.

    -- Call mount_request_logs_for_all_consumers until it reports success.
    provider.mount_request_logs_for_all_consumers($cleanroom_name);
    
    Copy

    이제 전체 공급자/컨슈머 기능을 사용할 수 있습니다.

리전 간 계정의 새로 고침 빈도

서로 다른 클라우드 리전에 있을 때 공급자와 컨슈머 간의 요청 및 데이터에는 복제 빈도 설정이 적용됩니다.

공급자에서 컨슈머로의 요청 및 데이터

공급자가 컨슈머로 보내는 모든 데이터와 요청은 계정 새로 고침 빈도(기본적으로 24시간마다)에 따라 새로 고쳐집니다. 여기에는 클린룸 생성 또는 업데이트, 공급자 데이터 변경, 권한 요청(예: 공급자 실행 분석), 요청 승인(예: 컨슈머 템플릿)이 포함됩니다.

공급자에서 컨슈머로의 요청 빈도는 :ref:`계정의 복제 새로 고침 일정<label-listing_auto_fulfillment_replication_refresh_schedule>`에 의해 제어됩니다.

컨슈머에서 공급자로의 요청 및 데이터

다음 테이블은 컨슈머에서 공급자로의 데이터 및 요청에 대한 새로 고침 빈도를 보여줍니다.

데이터

새로 고침 빈도

다음과 같은 요청, 승인, 변경 사항:

  • 공급자에 대한 요청(예: 템플릿 추가 요청)

  • 공급자에 대한 승인(예: 공급자 실행 분석에 대한 승인)

  • 연결된 컨슈머 데이터에 대한 변경 사항.

  • 2025년 7월 24일 이후에 생성된 클린룸: 10분

  • 이전 클린룸: 1시간

공급자 활성화 데이터:

  • 2025년 7월 24일 이후에 생성된 클린룸: 10분

  • 이전 클린룸: 15분

다음과 같은 공급자 클린룸 데이터:

  • 공급자 데이터 세트

  • 공급자 실행 요청

  • 클린룸 정책

  • 공급자 클린룸 메타데이터

컨슈머-공급자 요청 및 데이터에 대한 :doc:`새로 고침 빈도를 변경</collaboration/provider-listings-auto-fulfillment-update-refresh-frequency>`할 수 있습니다.

리전 간 공동 작업과 관련된 비용

다른 리전에 있는 공동 작업자의 경우 추가 비용이 발생합니다. 이러한 비용이 발생하는 방식에 대한 자세한 내용은 자동 복제 비용 섹션을 참조하십시오.

리전 간 공동 작업에 대한 제한 사항

리전 간 협업에는 다음과 같은 제한이 있습니다.

  • 클린룸 UI 사용 시, 공동 작업자는 동일한 UI 호스팅 리전<label-web_app_hosting>`을 공유해야 합니다. 예를 들어, 한 계정의 UI 호스트 리전은 “Amazon Web Services: US 동부(북부 버지니아)”이고 다른 계정의 UI 호스트 리전이 “Amazon Web Services: 아시아 태평양(뭄바이)”인 경우 이러한 계정은 UI에서 공동 작업할 수 없습니다. 그러나 이 페이지에 설명된 대로 계정과 클린룸 모두 클라우드 간 자동 복제에 대해 구성된 경우 API를 사용하여 공동 작업:emph:`할 수 있습니다.

  • 공급자는 클린룸에서 차등 개인정보 보호를 사용할 수 없습니다.

  • 공동 작업자는 클린룸의 외부 테이블과 Iceberg 테이블을 연결할 수 없습니다.

  • 컨슈머는 여러 공급자에 대한 분석을 실행할 수 없습니다.

  • 공동 작업자는 마스킹 정책이나 행 액세스 정책을 사용할 수 없습니다.