공급자 실행 분석¶
기본 Clean Room 구성에서는 컨슈머만 Clean Room에서 분석을 실행할 수 있습니다. 그러나 공급자는 특정 Clean Room에서 컨슈머 데이터를 사용하여 템플릿을 실행할 수 있는 권한을 컨슈머에게 요청할 수 있습니다. 공급자 실행 분석은 Clean Rooms UI 또는 코드를 사용하여 활성화하고 실행할 수 있습니다.
지원되는 템플릿¶
공급자 실행 분석은 지정된 Clean Room 내의 템플릿 수준에서 활성화됩니다. 다음 템플릿은 공급자 실행 분석을 지원합니다.
중첩 및 세분화 분석
SQL Query(UI 전용)
사용자 지정 템플릿(API 전용)
청구 세부 정보¶
Clean Room에서 모든 공급자 실행 분석에 대한 비용은 컨슈머에게 청구됩니다. 공급자의 분석으로 인한 추가 비용 발생을 막으려면 컨슈머는 Clean Room을 제거해야 합니다.
컨슈머는 다음 쿼리를 실행하여 이전 일수를 음수로 지정하여 공급자가 지난 N 일 동안 소비한 크레딧 수를 추정할 수 있습니다.
-- Estimate the number of credits consumed in the past 5 days.
SELECT * FROM TABLE(SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.PRA_CONSUMPTION_UDTF(-5));
웨어하우스 크기 선택하기¶
Clean Rooms는 데이터 세트 크기에 따라 자동 확장 로직을 사용하여 분석을 위한 웨어하우스를 선택합니다. 그러나 공급자는 컨슈머가 허용하는 크기 및 유형 목록에서 웨어하우스 크기를 명시적으로 선택할 수 있습니다. 공급자는 다음과 같이 웨어하우스 크기를 선택합니다.
컨슈머는
consumer.enable_templates_for_provider_run
을 호출하여 어떤 템플릿에 어떤 웨어하우스 크기와 유형을 사용할 수 있는지 지정합니다.공급자는
provider.view_warehouse_sizes_for_template
을 호출하여 공급자 실행 분석에 허용되는 웨어하우스 크기와 유형을 확인합니다.공급자는 분석 요청에 사용할 크기와 유형 조합을 지정합니다(
provider.submit_analysis_request
).
공급자는 컨슈머가 명시적으로 나열한 웨어하우스 크기와 유형만 요청할 수 있습니다.
컨슈머
CALL samooha_by_snowflake_local_db.CONSUMER.enable_templates_for_provider_run(
$cleanroom_name,
[$template1, $template2],
TRUE,
{
$template1: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'LARGE']},
$template1: {'warehouse_type': 'SNOWPARK-OPTIMIZED', 'warehouse_size': ['MEDIUM', 'XLARGE']},
$template2: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'XLARGE']}
});
공급자
CALL samooha_by_snowflake_local_db.PROVIDER.VIEW_WAREHOUSE_SIZES_FOR_TEMPLATE($cleanroom_name, $template_name, $consumer_account_loc);
CALL samooha_by_snowflake_local_db.provider.submit_analysis_request(
$cleanroom_name,
$consumer_locator_id,
$template1,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
object_construct(
'dimensions', ['c.REGION_CODE'],
'measure_type', ['AVG'],
'measure_column', ['c.DAYS_ACTIVE'],
'warehouse_type', 'STANDARD', -- If this type and size pair were not listed by view_warehouse_sizes_for_template,
'warehouse_size', 'LARGE' -- the request will automatically fail.
));
공급자 실행 분석 구현하기¶
팁
컨슈머와 공급자가 서로 다른 클라우드 리전에 있는 경우 두 계정과 두 Clean Rooms 모두에 대해 클라우드 간 자동 복제 를 활성화해야 합니다.
Clean Room에서 쿼리를 실행할 수 있는 권한은 Clean Room의 구성 흐름에 있는 Share clean room 패널의 Enable run analysis & query 토글을 사용하여 Clean Rooms UI 에서 관리합니다. 공급자 실행 분석을 활성화 또는 비활성화하려면 Clean Room 공급자가 해당 패널에서 자신의 계정 옆에 있는 토글을 활성화합니다. 이 토글은 Clean Room을 만든 후에는 변경할 수 없으며, 특정 계정이 게시된 Clean Room에서 쿼리를 실행할 수 있는 권한을 변경하려면 Clean Room을 삭제하고 새 Clean Room을 만들어야 합니다.
새 Clean Room에서 공급자 실행 분석을 활성화하는 단계는 다음과 같습니다.
공급자는 지원되는 템플릿 중 하나를 사용하여 Clean Room을 생성하고 구성합니다.
Clean Room 구성의 Share Clean Room 단계에서 계정 옆의 Enable run analysis & query 를 설정하여 이 Clean Room에서 공급자 분석을 지원하는 템플릿을 실행할 수 있도록 합니다.
컨슈머가 Clean Room에 참여하면 참여하기 전에 해당 Clean Room에 대해 공급자 실행 분석이 활성화되어 있다는 경고가 표시됩니다.
컨슈머는 공급자 분석을 지원하는 템플릿을 포함하여 Clean Room의 모든 템플릿에 대해 평소와 같이 Clean Room을 구성합니다. 컨슈머가 공급자가 특정 템플릿을 실행하도록 허용하지 않으려는 경우 해당 템플릿에 대한 요구 사항을 생략할 수 있습니다. 공급자 분석을 지원하는 템플릿은 컨슈머 분석도 지원한다는 점에 유의하십시오.
컨슈머가 Clean Room에 가입하고 구성한 후, 공급자 와 컨슈머 모두 일반적인 분석 흐름을 통해 Clean Room에서 템플릿을 실행할 수 있습니다.
공급자 실행 분석 권한은 일단 부여된 후에는 취소할 수 없습니다. 공급자 실행 분석을 중단하는 유일한 방법은 공급자 또는 컨슈머가 Clean Room을 삭제하는 것입니다.
공급자는 적절한 API 호출을 통해 Clean Room에서 공급자 및 컨슈머 실행 분석을 모두 활성화 및 비활성화할 수 있습니다. 그러나 기존 Clean Room에서 공급자 실행 분석 설정으로 변경할 때마다 모든 컨슈머가 Clean Room을 다시 설치해야 변경 사항을 적용할 수 있습니다. 모든 공동 작업자가 Clean Room을 다시 설치하도록 강제하는 것은 어려울 수 있으므로 공급자가 분석 권한을 변경할 때 게시된 공유 Clean Room을 삭제한 다음 원하는 권한으로 새 Clean Room을 만드는 것이 더 안정적입니다.
다음은 공급자 실행 분석을 허용하는 새로운 Clean Room을 만드는 일반적인 흐름입니다.
공급자
표준 방식으로 Clean Room과 데이터 및 정책을 생성하고 구성합니다.
표준 방식으로 컨슈머를 추가합니다.
provider.enable_provider_run_analysis
를 호출하여 Clean Room의 특정 컨슈머 계정에 대한 공급자 실행 분석을 활성화합니다. 이 프로시저는 Clean Room에 컨슈머를 추가한 후 컨슈머가 Clean Room을 설치하기 전에 호출해야 합니다. 각 컨슈머 계정은 이 요청을 개별적으로 승인해야 하며, 그렇지 않으면 이 Clean Room에서 공급자 실행 분석에 데이터에 액세스할 수 없습니다.Clean Room을 게시합니다.
Clean Room의 가용성, Clean Room 이름, Clean Room에서 실행할 템플릿을 컨슈머에게 알립니다.
컨슈머
Clean Room을 설치하고, 데이터를 연결하고, 표준 방식으로 조인 및 열 정책을 설정합니다.
consumer.enable_templates_for_provider_run
을 호출하여 Clean Room의 특정 템플릿에 대한 공급자 분석을 허용합니다. 조인 및 열 정책을 구성한 후 이 프로시저를 호출하는 것이 중요합니다. 이 기능을 먼저 활성화하면 공급자는 이 정책을 설정할 때까지 모든 열을 조인하고 투영할 수 있습니다. 일반적으로 공급자는 Clean Room에서 공급자 실행 분석을 승인해야 한다는 사실을 알려주지만,library.is_provider_run_enabled
를 호출하여 이 기능이 요청되었는지 확인할 수도 있습니다.Clean Room을 설치하고 공급자 실행 분석을 승인했음을 공급자에게 알리십시오.
공급자
컨슈머가 Clean Room을 설치한 후
provider.mount_request_logs_for_all_consumers
를 호출하여 분석 작업에서 컨슈머 데이터에 액세스할 수 있도록 합니다. 나중에 새 컨슈머 계정으로 Clean Room을 설치한 후 이 템플릿에서 해당 데이터를 사용하려면 이 프로시저를 다시 실행해야 해당 데이터에 액세스할 수 있습니다.템플릿 이름, 테이블 이름, 템플릿 인자와 함께
provider.submit_analysis_request
를 호출하여 분석을 실행합니다. 분석 상태 및 결과를 확인하는 데 필요한 응답 ID 를 저장합니다.provider.check_analysis_status
를 호출하여 분석 상태를 확인합니다. 상태가COMPLETED
로 보고되면provider.get_analysis_result
를 호출하여 분석 결과를 확인합니다.
팁
Clean Room에 대한 공급자 실행 분석 설정을 변경하는 경우 Clean Room을 제거했다가 다시 설치해야 변경 사항을 적용할 수 있습니다.
코드 예 설치 및 실행하기
공급자 실행 분석을 활성화하고 실행하는 Clean Room의 전체 실행 예제를 다운로드하여 설치할 수 있습니다. 이 예제를 실행하려면 동일한 조직 및 클라우드 호스팅 리전 내에 Clean Room 환경이 설치된 두 개의 Snowflake 계정이 필요합니다.
공급자 계정과 컨슈머 계정 모두에 노트북을 설치합니다. 노트북을 업로드하려면 다음을 수행하십시오.
Snowsight 에서 Projects » Notebooks 로 이동합니다.
+ Notebook » Import .ipynb file 를 선택합니다.
다운로드한 .ipynb 파일을 선택합니다.
파일 이름을 원하는 대로 지정하고 데이터베이스와 스키마를 선택합니다.
기본 웨어하우스
APP_WH
를 유지합니다.Create 를 선택합니다.
공급자 계정에서 노트북을 열고 공급자 부분을 작성하여 Clean Room을 만듭니다.
컨슈머 계정에서 노트북을 열고 컨슈머 부분을 완료하여 Clean Room을 설치 및 구성하고 템플릿을 실행합니다.
팁
다음 프로시저는 Clean Room에서 분석을 실행할 수 있는 측을 관리합니다.
컨슈머 실행 분석 (기본적으로 허용됨): 모든 변경 사항은 즉시 적용됩니다.
provider.enable_consumer_run_analysis
provider.disable_consumer_run_analysis
공급자 실행 분석 (기본적으로 비활성화됨): 모든 변경 사항은 컨슈머가 다시 설치해야 합니다.
provider.enable_provider_run_analysis
(컨슈머가 consumer.enable_templates_for_provider_run을 호출하여 승인해야 함)provider.disable_provider_run_analysis