공급자 실행 분석¶
기본 Clean Room 구성에서는 컨슈머만 Clean Room에서 분석을 실행할 수 있습니다. 그러나 공급자는 특정 Clean Room에서 컨슈머 데이터를 사용하여 템플릿을 실행할 수 있는 권한을 컨슈머에게 요청할 수 있습니다. 공급자 실행 분석은 Clean Rooms UI 또는 코드를 사용하여 활성화하고 실행할 수 있습니다.
참고
공급자가 클린룸에서 분석을 실행하는 방법에는 두 가지가 있습니다. 하나는 각 쿼리와 함께 결과를 반환하는 표준 템플릿이고, 다른 하나는 공급자 계정의 파일에 결과를 저장하는 활성화입니다. 자신을 위해 또는 서드 파티로 내보내기 위해 데이터를 유지하거나 대규모 데이터 세트에 대한 결과를 구체화해야 하는 경우 일반적으로 계정에 :doc:`결과를 활성화</user-guide/cleanrooms/activation>`하는 것이 가장 좋습니다. 새 매개 변수 또는 데이터로 템플릿을 다시 실행하고 결과를 유지할 필요가 없는 경우 여기에 설명된 표준 공급자 실행 쿼리를 사용하는 것이 올바른 방법입니다.
지원되는 템플릿¶
공급자 실행 분석은 지정된 Clean Room 내의 템플릿 수준에서 활성화됩니다. 다음 템플릿은 공급자 실행 분석을 지원합니다.
중첩 및 세분화 분석
SQL Query(UI 전용)
사용자 지정 템플릿(API 전용)
청구 세부 정보¶
공급자 실행 분석은 컨슈머의 계정에서 실행되며, 컨슈머에게는 공급자 실행 분석에 대한 요금이 청구됩니다. 공급자 분석에서 추가 비용이 발생하지 않도록 하려면 컨슈머가 클린룸을 제거해야 합니다.
컨슈머는 다음 쿼리를 실행하여 이전 일수를 음수로 지정하여 공급자가 지난 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));
웨어하우스 크기와 유형 선택 및 제한하기¶
클린룸은 데이터 세트 크기에 따라 자동 크기 조정 논리를 사용하여 분석을 위한 웨어하우스를 선택합니다. 그러나 공급자는 API를 사용하여 웨어하우스 크기를 명시적으로 선택할 수 있습니다.
컨슈머는 지정된 템플릿을 실행할 때 공급자가 사용할 수 있는 웨어하우스의 크기와 유형을 제한할 수 있습니다. 웨어하우스 크기 제한은 UI가 아닌 API에서만 수행할 수 있습니다.
공급자 실행 분석 구현하기¶
중요
컨슈머와 공급자가 서로 다른 클라우드 리전에 있는 경우 두 계정과 두 Clean Rooms 모두에 대해 클라우드 간 자동 복제 를 활성화해야 합니다.
새 Clean Room에서 공급자 실행 분석을 활성화하는 단계는 다음과 같습니다.
공급자는 지원되는 템플릿 중 하나를 사용하여 Clean Room을 생성하고 구성합니다.
Share Clean Room 클린룸 구성 단계에서 공급자가 이 클린룸에서 공급자 분석을 지원하는 모든 템플릿을 실행할 수 있도록 활성화하려면 자신의 계정 옆에 있는 :ui:`Enable run analysis & query`를 켭니다.
클린룸이 생성된 후에는 이 설정을 변경할 수 없습니다. 게시된 클린룸에서 쿼리를 실행하기 위해 특정 계정의 권한을 변경하려면 클린룸을 삭제하고 새 클린룸을 만들어야 합니다.
컨슈머는 공급자 분석을 지원하는 모든 템플릿을 포함하여 클린룸의 모든 템플릿에 대해 정상적으로 클린룸에 조인하고 구성합니다. 컨슈머는 공급자가 특정 템플릿을 실행하는 것을 지원하지 않는 경우 해당 템플릿에 대한 필수 세부 정보를 생략할 수 있습니다.
컨슈머가 클린룸에 조인하면 조인하기 전에 해당 클린룸에 대해 공급자 실행 분석이 활성화되어 있다는 경고가 표시됩니다.
컨슈머는 클린룸에 조인하는 즉시 쿼리를 실행할 수 있지만, 공급자가 템플릿을 실행할 수 있기까지 최대 30분의 지연이 있습니다. 이 설정 지연은 초기 조인 단계에만 적용됩니다. 공급자가 나중에 다른 공급자 실행 템플릿을 추가하는 경우 컨슈머가 해당 템플릿에 대한 클린룸을 구성하는 즉시 공급자는 이를 실행할 수 있습니다.
이제 클린룸을 :ref:`공급자 실행<label-web_app_provider_run>`(초기 설정 지연 후) 및 :ref:`컨슈머 실행<label-web_app_working_run_analysis_consumer>`(지연 없음) 분석 모두에 사용할 수 있습니다.
공급자 또는 컨슈머가 실행하는 이 클린룸의 모든 분석에 대해 컨슈머에게 요금이 청구됩니다.
공급자는 적절한 API 호출을 만들어 클린룸에서 공급자 및 컨슈머 실행 분석을 모두 활성화하거나 비활성화할 수 있습니다.
그러나 공급자가 공급자 실행 분석 설정을 변경할 때마다 변경 사항을 적용하려면 모든 컨슈머가 클린룸을 다시 설치해야 합니다. 모든 공동 작업자가 클린룸을 강제로 다시 설치하도록 하는 것은 어려울 수 있으므로, 공급자 분석 권한을 변경할 때 게시된 공유 클린룸을 삭제한 다음 원하는 권한으로 새 클린룸을 만드는 것이 더 안정적입니다.
중요
공급자가 실행하는 모든 템플릿에는 결과에서 생성된 모든 열에 대한 열 이름 또는 별칭이 필요합니다. 열이 집계 함수(SUM(*))이거나 사용자 지정 함수(cleanroom.my_function(p.hashed_email))를 호출하는 경우 열 이름의 별칭(SELECT SUM(*) AS TOTAL FROM mydb.mysch.T;)을 명시적으로 제공해야 합니다.
다음은 공급자 실행 분석을 허용하는 새로운 Clean Room을 만드는 일반적인 흐름입니다.
공급자
표준 방식으로 Clean Room과 데이터 및 정책을 생성하고 구성합니다.
표준 방식으로 컨슈머를 추가합니다.
:code:`provider.enable_provider_run_analysis`를 호출하여 클린룸의 특정 컨슈머 계정에 대한 공급자 실행 분석을 활성화합니다. 이 프로시저는 클린룸에 컨슈머를 추가한 후 컨슈머가 클린룸을 설치하기 전에만 호출해야 합니다. 각 컨슈머 계정은 이 요청을 개별적으로 승인해야 하며, 그렇지 않으면 이 클린룸에서 공급자 실행 분석에 대한 데이터에 액세스할 수 없습니다.
Clean Room을 게시합니다.
Clean Room의 가용성, Clean Room 이름, Clean Room에서 실행할 템플릿을 컨슈머에게 알립니다.
컨슈머
표준 방식으로 데이터에 클린룸과 링크를 설치합니다.
데이터에 대한 :doc:`조인 및 열 정책</user-guide/cleanrooms/policies>`을 설정합니다. 클린룸에서 두 정책을 모두 설정하지 않은 경우 공급자는 데이터를 사용하여 템플릿을 실행할 수 없습니다. 이는 정책이 완전히 없다는 것은 모든 열이 해당 정책 유형에 대해 승인되었음을 의미하는 컨슈머 실행 분석과 다릅니다.
``consumer.enable_templates_for_provider_run``(여러 템플릿의 경우) 또는 ``consumer.approve_template``(하나의 템플릿의 경우) 중 하나를 호출하여 클린룸의 특정 템플릿에 대한 공급자 분석을 허용합니다.
컨슈머가 템플릿을 승인한 후 공급자가 템플릿을 변경하는 경우 컨슈머는 템플릿을 다시 승인해야 합니다. 템플릿이 다시 승인될 때까지, 승인된 템플릿의 이전에 캐시된 버전이 공급자에 의해 실행됩니다.
(선택 사항) 공급자 실행 분석은 컨슈머의 계정에서 이루어지며 요금이 컨슈머에게 청구됩니다. 템플릿을 실행할 때 공급자가 사용할 수 있는 웨어하우스 유형 또는 크기를 제한하려면 ``consumer.set_provider_run_configuration``을 호출합니다.
Clean Room을 설치하고 공급자 실행 분석을 승인했음을 공급자에게 알리십시오.
공급자
컨슈머가 클린룸을 설치한 후에는 컨슈머에서 공급자 계정으로의 데이터 공유를 활성화하여 컨슈머 데이터에 액세스할 수 있도록 분석을 활성화해야 합니다. 이를 위한 프로세스는 공급자와 컨슈머가 동일한 클라우드 리전에 있는지 아니면 다른 클라우드 리전에 있는지에 따라 다릅니다.
템플릿 이름, 테이블 이름, 템플릿 인자를 통해 :code:`provider.submit_analysis_request`를 호출하여 분석을 실행합니다. 이 항목의 뒷부분에 나오는 것처럼 웨어하우스 크기와 유형을 선택적으로 지정할 수 있습니다.
분석의 상태와 결과를 확인하는 데 필요한 응답 ID를 저장합니다.
provider.check_analysis_status를 호출하여 분석 상태를 확인합니다. 상태가COMPLETED로 보고되면provider.get_analysis_result를 호출하여 분석 결과를 확인합니다.
팁
Clean Room에 대한 공급자 실행 분석 설정을 변경하는 경우 Clean Room을 제거했다가 다시 설치해야 변경 사항을 적용할 수 있습니다.
** 웨어하우스 제한 지정 및 웨어하우스 유형 선택하기**
컨슈머가 웨어하우스 크기 및 유형 제한을 설정하는 방법과 공급자가 분석을 실행할 때 웨어하우스 선택하는 방법은 다음과 같습니다.
컨슈머는 ``consumer.set_provider_run_configuration``을 호출하고 공급자가 지정된 템플릿에 사용할 수 있는 웨어하우스 크기와 유형을 지정합니다.
CALL samooha_by_snowflake_local_db.consumer.set_provider_run_configuration( $cleanroom_name, { $template1: { 'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'LARGE']} });
공급자는 ``provider.view_warehouse_sizes_for_template``을 호출하여 해당 템플릿에 대한 공급자 실행 분석에 허용되는 웨어하우스 크기와 유형을 확인합니다.
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', -- Any other value would cause the request to fail. 'warehouse_size', 'LARGE' -- Only MEDIUM and LARGE supported. ) );
코드 예 설치 및 실행하기
공급자 실행 분석을 활성화하고 실행하는 Clean Room의 전체 실행 예제를 다운로드하여 설치할 수 있습니다. 이 예제를 실행하려면 동일한 조직 및 클라우드 호스팅 리전 내에 Clean Room 환경이 설치된 두 개의 Snowflake 계정이 필요합니다.
공급자 계정과 컨슈머 계정 모두에 노트북을 설치합니다.
노트북 업로드하려면 다음을 수행합니다.
탐색 메뉴에서 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