Clean Room에서 활성화 구현하기¶
활성화 개요¶
공급자 또는 컨슈머는 활성화 라는 프로세스를 통해 Clean Room 외부로 템플릿 결과를 보낼 수 있습니다. Snowflake는 다음 세 가지 유형의 활성화를 지원합니다.
공급자 활성화. 여기서 결과가 공급자의 Snowflake 계정에 있는 테이블로 푸시됩니다.
컨슈머 활성화. 여기서 결과는 컨슈머의 Snowflake 계정의 테이블로 푸시됩니다.
서드 파티 활성화. 여기서 공급자 또는 컨슈머가 활성화 커넥터 를 통해 LiveRamp 또는 Meta Ads Manager와 같은 서드 파티에 결과를 푸시합니다.
모든 경우에 템플릿은 상대방이 내보낼 데이터의 모든 열에 대해 활성화를 승인해야 하는 활성화를 지원해야 합니다.
활성화된 경우 차등 개인정보 보호를 지원하며 차등 개인정보 보호 규칙 및 예산을 준수합니다.
다른 클라우드 리전에 있는 공동 작업자의 데이터를 활성화하려면 클라우드 간 자동 복제를 활성화 해야 합니다.
공급자 및 컨슈머 활성화¶
Clean Room을 구성하여 템플릿 결과를 공급자 또는 컨슈머의 Snowflake 계정에 저장할 수 있습니다. 데이터 공급자와 컨슈머 모두 Clean Room 외부로 나가는 모든 데이터의 활성화를 승인해야 합니다.
활성화는 전용 활성화 템플릿을 사용하여 구현됩니다. Clean Rooms UI에서 분석 템플릿을 분석 템플릿과 연결할 수 있으며, 사용자는 분석 템플릿을 실행하여 결과를 확인한 후 연결된 활성화 템플릿의 결과를 실행하여 활성화할 수 있습니다. Snowflake에서 제공되는 Audience Overlap & Segmentation 흐름이 이를 수행합니다.
활성화 템플릿은 연결된 분석 템플릿과 ID가 같을 필요는 없습니다. 활성화 템플릿은 분석 템플릿의 일부로 속하는 경우가 많습니다.
지원되는 템플릿¶
다음 템플릿은 공급자 및 컨슈머 활성화를 지원합니다.
Audience Overlap & Segmentation
SQL Query(UI 전용)
지원되는 조합¶
활성화는 공급자 또는 컨슈머가 실행할 수 있습니다. 공급자 및 컨슈머 분석과 공급자 및 컨슈머 활성화의 다양한 조합을 결합할 수 있습니다. (공급자 실행 분석 에 대해 자세히 알아보십시오.)
지원되는 조합은 다음과 같습니다.
공급자 활성화 |
컨슈머 활성화 |
|
---|---|---|
공급자 실행 |
✅ |
❌ |
컨슈머 실행 |
✅ |
✅ |
결과¶
공급자 활성화 결과는 공급자의 계정 SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.CONSUMER_DIRECT_ACTIVATION_SUMMARY 테이블에 저장됩니다.
컨슈머 활성화 결과는 SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.PROVIDER_ACTIVATION_SUMMARY 테이블에 있는 컨슈머 계정에 저장됩니다.
데이터를 읽는 방법을 알아보려면 결과 보기 를 참조하십시오.
공급자 또는 컨슈머 활성화 구현하기¶
설정
Clean Rooms UI 사용 시 활성화하려면 Clean Rooms 계정이 활성화를 허용 해야 합니다.
공급자 실행 활성화의 경우 공급자 실행 분석을 지원하도록 Clean Room을 구성 해야 합니다.
1. Clean Room 생성 또는 참여
Clean Room을 만들거나 참여할 때 Activation Settings 의 Configure Analysis & Query 단계에서 계정에 활성화된 결과에 추가할 열을 지정합니다.
2. 템플릿 실행 및 결과 활성화
분석과 관련된 활성화를 실행하려면 다음 단계를 완료하십시오.
분석을 실행합니다.
분석을 실행한 후 Results » Activate 를 선택합니다.
Activation Hub 에서 활성화할 공급자 또는 컨슈머 계정의 이름을 선택합니다.
설명적인 세분화 이름 제공, 활성화 열 선택 등 활성화 템플릿과 관련된 정보를 입력합니다.
세그먼트 이름 입력: 결과 세트를 식별하는 데 사용되는 임의의 문자열입니다. 각 활성화에 대해 다른 문자열을 입력하여 각 실행의 결과를 개별적으로 그룹화하거나, 여러 실행에 걸쳐 동일한 세그먼트 이름을 사용하여 결과를 결합하려는 경우 입력 변형을 사용할 수 있습니다.
Push Data 를 선택합니다.
활성화된 결과를 보는 방법을 알아보려면 다음 섹션을 참조하십시오.
활성화는 활성화를 실행하는 자와 컨슈머 활성화인지 공급자 활성화인지에 따라 다르게 수행됩니다.
중요
컨슈머가 Clean Room에서 공급자 계정으로 데이터를 처음 활성화할 때 공급자는 해당 계정에 대해 Clean Room UI 에 로그인하고 최대 30분 동안 로그인 상태를 유지하여 데이터 파이프라인을 설정해야 합니다. 이 작업은 컨슈머마다 Clean Room당 한 번만 수행하면 됩니다. 이 작업이 완료될 때까지는 활성화에 성공하더라도 데이터 공급자의 계정에 데이터가 표시되지 않습니다.
컨슈머가 자신의 Snowflake 계정으로 결과를 푸시하는 방법은 다음과 같습니다.
공급자
표준 Clean Room과 마찬가지로 Clean Room을 만들고, 데이터 세트를 연결하고, 참여 정책을 설정합니다.
지원되는 Snowflake 표준 템플릿 을 선택하거나 사용자 지정 활성화 템플릿 을 Clean Room에 추가합니다. 이 Clean Room을 UI 에서 사용하려면 템플릿 설명서에 설명된 대로 적절한 활성화 필드가 있는 웹 양식을 제공해야 합니다.
provider.enable_template_for_consumer_activation
을 호출하여 컨슈머 활성화를 위한 템플릿을 활성화합니다.해당 템플릿의 Clean Room에서 활성화 정책을 설정하여 활성화할 수 있는 공급자 열을 지정합니다. 활성화 템플릿에 사용되는 모든 열은 투영 여부에 관계없이 활성화 정책에 있어야 합니다.
평소와 같이 컨슈머 공동 작업자를 추가하고 기본 릴리스 지시문을 설정한 다음 Clean Room을 게시합니다.
컨슈머
표준 Clean Room과 마찬가지로 Clean Room을 설치하고, 데이터 세트를 연결하고, 참여 정책을 설정합니다.
해당 템플릿의 Clean Room에서 활성화 정책을 설정하여 활성화할 수 있는 컨슈머 열을 지정합니다. 활성화 템플릿에 사용되는 모든 열은 투영 여부에 관계없이 활성화 정책에 있어야 합니다.
consumer.run_activation
을 호출하여 활성화를 실행하고 마지막 매개 변수를 TRUE 로 설정하여 컨슈머 활성화를 표시합니다.아래 설명된 대로 결과를 봅니다.
예
다음 예시를 다운로드하고 Snowflake 계정에 워크시트 파일로 업로드하십시오. 각각 Clean Rooms API 가 설치된 공급자와 컨슈머를 위한 별도의 계정이 필요합니다. 샘플 파일에 표시된 대로 정보를 바꿉니다.
컨슈머가 공급자의 Snowflake 계정에 결과를 푸시하는 방법은 다음과 같습니다.
중요
컨슈머와 공급자가 둘 다 Clean Rooms UI 가 설치되어 있지 않고 컨슈머가 공급자에 대해 활성화하는 경우:
컨슈머 는 다음 SQL 명령을 실행해야 합니다.
ALTER SHARE SAMOOHA_INTERNAL_GOVERNANCE_SUMMARY_SHARE_NAV2 ADD ACCOUNTS = $provider_account_data_sharing_id;
여기서
$provider_account_data_sharing_id
는 공급자의 데이터 공유 계정 식별자임공급자 는 다음 프로시저를 실행해야 합니다.
CALL samooha_by_snowflake_local_db.provider.mount_provider_activations_share( $consumer_account_data_sharing_id, TRUE, FALSE);
여기서
$consumer_account_data_sharing_id
는 컨슈머의 데이터 공유 계정 식별자 입니다.
1. 공급자
표준 방식으로 Clean Room을 만듭니다.
데이터 세트를 연결합니다. 또한 공급자는
samooha_by_snowflake_local_db.library.temp_public_key
테이블을 Clean Room에 연결해야 합니다.표준 방식으로 참여 정책을 설정합니다.
지원되는 Snowflake 표준 템플릿 을 선택하거나 사용자 지정 활성화 템플릿 을 Clean Room에 추가합니다. 이 Clean Room을 Clean Rooms UI 에서 사용하려면 적절한 활성화 필드를 포함한 웹 양식 을 제공해야 합니다.
해당 템플릿의 Clean Room에서 활성화 정책을 설정하여 활성화할 수 있는 공급자 열을 지정합니다. 활성화 템플릿에 사용되는 모든 열은 투영 여부에 관계없이 활성화 정책에 있어야 합니다.
평소와 같이 컨슈머 공동 작업자를 추가하고 기본 릴리스 지시문을 설정한 다음 Clean Room을 게시합니다. (Clean Room UI 가 설치되어 있지 않은 경우 컨슈머 추가 후
provider.setup_provider_activation_share_mount_task
를 호출하십시오.)
2. 컨슈머
표준 Clean Room과 마찬가지로 Clean Room을 설치하고, 데이터 세트를 연결하고, 참여 정책을 설정합니다.
해당 템플릿의 Clean Room에서 활성화 정책을 설정하여 활성화할 수 있는 컨슈머 열을 지정합니다. 활성화 템플릿에 사용되는 모든 열은 투영 여부에 관계없이 활성화 정책에 있어야 합니다.
consumer.run_activation
을 호출하여 활성화를 실행하고 마지막 인자를 FALSE 로 설정하여 공급자 활성화를 표시합니다.
3. 공급자
컨슈머가 계정에 데이터를 처음 활성화할 때는 컨슈머가 데이터를 활성화한 후 약 30분 동안 이 계정에 대해 Clean Rooms UI 에 로그인해야 합니다. 그 후 데이터가 계정에 표시됩니다. 이 작업은 컨슈머 계정마다 Clean Room당 한 번만 수행됩니다. 나중에 동일한 Clean Room에서 동일한 컨슈머가 활성화할 때는 이 단계가 필요하지 않습니다.
결과를 계정에 저장하기 전에 암호를 해독해야 하므로 시간이 다소 걸릴 수 있습니다. 암호 해독 작업은 60분 후에 시간이 초과되며, 이 경우 provider.update_activation_warehouse 를 호출하여 암호 해독에 사용되는 웨어하우스 크기를 늘리십시오.
아래 설명된 대로 결과를 봅니다.
예
다음 예시를 다운로드하고 Snowflake 계정에 워크시트 파일로 업로드하십시오. 각각 Clean Rooms API 가 설치된 공급자와 컨슈머를 위한 별도의 계정이 필요합니다. 샘플 파일에 표시된 대로 정보를 바꿉니다.
공급자가 자신의 Snowflake 계정으로 결과를 푸시하는 방법은 다음과 같습니다. 여기에는 사용자 지정 템플릿, 공급자 실행 분석, 공급자 활성화 등 여러 기술이 결합되어 있으므로 공급자와 컨슈머 간에 여러 차례의 요청과 승인이 필요합니다.
1. 공급자
표준 Clean Room의 경우와 같이 Clean Room을 만들고, 데이터 세트를 연결하고, 참여 정책을 설정하며, 한 가지 예외가 있습니다. 테이블
samooha_by_snowflake_local_db.library.temp_public_key
에서 연결해야 합니다. 공급자가 실행하는 데이터는 암호화되며, 이를 통해 결과의 암호화 및 암호 해독이 가능합니다.지원되는 Snowflake 표준 템플릿 을 선택하거나 사용자 지정 활성화 템플릿 을 Clean Room에 추가합니다. 이 Clean Room을 UI 에서 사용하려면 템플릿 설명서에 설명된 대로 활성화를 지원하기 위한 적절한 필드가 포함된 웹 양식을 제공해야 합니다.
해당 템플릿의 Clean Room에서 활성화 정책을 설정하여 활성화할 수 있는 공급자 열을 지정합니다. 활성화 템플릿에 사용되는 모든 열은 투영 여부에 관계없이 활성화 정책에 있어야 합니다.
표준 방식으로 컨슈머 공동 작업자를 추가하십시오. Clean Room UI 가 설치되지 않은 경우 사용자를 추가한 후
provider.setup_provider_activation_share_mount_task
를 호출해야 합니다.
provider.enable_provider_run_analysis
를 호출하여 Clean Room에서 공급자 실행 분석을 활성화합니다. 이 작업은 공동 작업자 추가 후, 공동 작업자가 Clean Room을 설치하기 전에 수행해야 합니다. 컨슈머가 Clean Room을 설치한 후 이 설정을 변경하는 경우 컨슈머가 Clean Room을 다시 설치해야 변경 사항을 적용할 수 있습니다.기본 릴리스 지시문을 설정하고 평소와 같이 Clean Room을 게시합니다.
2. 컨슈머
표준 Clean Room에서와 같이 Clean Room을 설치하고, 데이터 세트를 연결하고, 참여 정책을 설정합니다.
해당 템플릿의 Clean Room에서 활성화 정책을 설정하여 활성화할 수 있는 컨슈머 열을 지정합니다. 활성화 템플릿에 사용되는 모든 열은 투영 여부에 관계없이 활성화 정책에 있어야 합니다.
3. 공급자
provider.request_provider_activation_consent
를 호출하여 활성화 템플릿을 실행할 수 있는 권한을 컨슈머에게 요청하십시오.
4. 컨슈머
consumer.enable_templates_for_provider_run
을 호출하여 공급자에게 이 Clean Room에서 지정된 템플릿을 실행할 권한을 부여합니다.
consumer.approve_provider_activation_consent
를 호출하여 이 Clean Room에서 지정된 템플릿의 결과를 활성화할 수 있는 권한을 공급자에게 부여하십시오.
5. 공급자
provider.mount_request_logs_for_all_consumers
를 호출하여 공급자 활성화에서 컨슈머 데이터를 공유할 수 있도록 설정합니다.
provider.submit_analysis_request
를 호출하여 활성화 템플릿을 실행합니다. 요청이 로그에 표시되기까지 몇 분 정도 걸리므로provider.check_analysis_status
를 호출하여 상태를 확인하십시오. 상태가 SUCCESS 로 보고된 후에도 결과가 해독되어 공급자의 Snowflake 테이블에 기록되는 데는 추가 시간이 필요합니다. 해독된 모든 데이터는 결과 테이블에 한 번에 추가됩니다. 세그먼트 또는 활성화 ID 에 대한 결과 테이블을 주기적으로 확인하십시오. 암호 해독 작업은 60분 후에 시간이 초과되며, 이 경우 provider.update_activation_warehouse 를 호출하여 암호 해독에 사용되는 웨어하우스 크기를 늘리십시오.참고
컨슈머가 템플릿을 승인한 후 템플릿을 수정하려면 다음 단계를 수행해야 하며, 그렇지 않으면
provider.submit_analysis_request
에서 마지막으로 승인된 버전의 템플릿을 계속 실행합니다.
공급자는
provider.add_custom_sql_template
을 호출하여 템플릿을 업데이트합니다.create_or_update_cleanroom_listing
을 다시 호출할 필요가 없습니다.컨슈머가
consumer.enable_templates_for_provider_run
을 호출합니다.컨슈머가
consumer.approve_provider_activation_consent
를 호출합니다.이제 공급자 활성화를 위해 업데이트된 템플릿이 준비되었습니다.
일반적인 오류
Object cleanroom_name.CLEANROOM.TEMP_RESULT_DATA does not exist or not authorized
- 어떤 이유로 임시 결과 테이블을 생성할 수 없습니다. 템플릿에 SQL 오류가 있거나 템플릿이 명시적으로 테이블을 생성하지 않았을 수 있습니다. 오류 세부 정보를 확인하십시오.Query validation checks failed
- 활성화 정책에 없는 일부 열이 템플릿에 사용되었습니다.
예
다음 예시를 다운로드하고 Snowflake 계정에 워크시트 파일로 업로드하십시오. 각각 Clean Rooms API 가 설치된 공급자와 컨슈머를 위한 별도의 계정이 필요합니다. 샘플 파일에 표시된 대로 정보를 바꿉니다.
공급자 및 컨슈머 활성화 결과 보기¶
활성화 결과 위치 및 형식¶
모든 공급자 활성화 결과는 Snowflake 지정 테이블에 추가됩니다. 테이블의 각 행은 쿼리 결과의 행에 매핑됩니다. 추가 쿼리 결과가 테이블에 추가됩니다. 활성화마다 고유한 ACTIVATION_ID 열과 각 활성화 실행에 대해 호출자가 지정하는 SEGMENT 열을 통해 서로 다른 실행을 구분할 수 있습니다.
공급자 활성화 결과 는 공급자 계정에서 SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.PROVIDER_ACTIVATION_SUMMARY 에 저장됩니다.
컨슈머 활성화 결과 는 컨슈머 계정에서 SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.CONSUMER_DIRECT_ACTIVATION_SUMMARY 에 저장됩니다.
이러한 테이블에는 다음 열이 포함됩니다.
- USER_ID:
JSON 형식의 한 결과 행으로, 키는 열 이름이고 값은 해당 행에서 해당 열의 값입니다. 오브젝트에는 템플릿에 전달된 각 인자에 대한 열도 포함됩니다.
- ACTIVATION_ID:
각 요청에 대해 고유한 ID 입니다. 활성화 요청이 성공하면 ID 가 반환됩니다. 이 열을 기준으로 필터링하여 동일한 활성화 실행에 대한 모든 결과를 가져오거나, 여러 실행에서 동일한 세그먼트 이름을 재사용하는 경우 SEGMENT 로 필터링할 수 있습니다. 이는
submit_analysis_request
또는run_activation
에서 반환한 쿼리 요청 ID 와 동일합니다.- CLEANROOM_NAME:
쿼리가 실행된 Clean Room의 이름입니다.
- CONSUMER:
(공급자 활성화 전용) 이 활성화를 승인한 컨슈머입니다.
- PROVIDER:
(컨슈머 활성화 전용) 이 활성화를 승인한 공급자입니다.
- SEGMENT:
활성화를 실행할 때 지정하는 임의의 문자열 값입니다. 이 열을 사용하면 여러 쿼리 실행에 걸쳐 결과를 조인할 수 있습니다.
- TIMESTAMP:
활성화가 실행된 시점입니다.
공급자 활성화 예시
SELECT * FROM SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.PROVIDER_ACTIVATION_SUMMARY WHERE segment = 'my_segment';
USER_ID | CLEANROOM_NAME | SEGMENT | CONSUMER | TIMESTAMP | ACTIVATION_ID
"{""AGE_BAND"":55,""ITEM_COUNT"":2328,""STATUS"":""MEMBER""}" | test activation | my_segment | ABC1234 | 2025-04-01 16:27:14.068 | cleanroomactivationdataanalysisresults20250401231728469
"{""AGE_BAND"":20,""ITEM_COUNT"":88,""STATUS"":""PLATINUM""}" | test activation | my_segment | ABC1234 | 2025-04-01 16:27:14.068 | cleanroomactivationdataanalysisresults20250401231728469
"{""AGE_BAND"":80,""ITEM_COUNT"":18,""STATUS"":""GOLD""}" | test activation | my_segment | ABC1234 | 2025-04-01 16:27:14.068 | cleanroomactivationdataanalysisresults20250401231728469
...
공급자 또는 컨슈머 활성화 결과 읽기¶
적절한 SQL 명령을 실행하여 Snowflake 계정으로 활성화한 결과를 봅니다.
공급자 활성화 결과 보기
SELECT *
FROM SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.PROVIDER_ACTIVATION_SUMMARY
[WHERE segment = <SEGMENT_NAME>] [AND activation_id = <ACTIVATION_ID>];
컨슈머 활성화 결과 보기
SELECT *
FROM SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.CONSUMER_DIRECT_ACTIVATION_SUMMARY
[WHERE segment = <SEGMENT_NAME>] [AND activation_id = <ACTIVATION_ID>];
각 데이터 행은 USER_ID
열의 오브젝트로 결합됩니다. 다음과 같은 쿼리를 사용하여 결과를 평면화할 수 있습니다.
-- Assuming columns AGE_BAND, STATUS, and ITEM_COUNT
SELECT
item:"AGE_BAND",
item:"STATUS",
item:"ITEM_COUNT"
FROM (SELECT parse_json(user_id)
AS item
FROM SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.PROVIDER_ACTIVATION_SUMMARY
WHERE segment = $segment_name)
ORDER BY item:"AGE_BAND", item:"STATUS" ASC
LIMIT 20 ;
Snowsight에서 최신 10개의 결과 행 보기:
Snowsight를 열고 Data » Database 로 이동합니다.
공급자 활성화의 경우
SAMOOHA_BY_SNOWFLAKE_LOCAL_DB
»PUBLIC
»Tables
»PROVIDER_ACTIVATION_SUMMARY
로 이동합니다.컨슈머 활성화의 경우
SAMOOHA_BY_SNOWFLAKE_LOCAL_DB
»PUBLIC
»Tables
»CONSUMER_DIRECT_ACTIVATION_SUMMARY
로 이동합니다.Data Preview 를 선택합니다.
서드 파티 활성화¶
서드 파티 활성화는 서드 파티 활성화 커넥터 를 사용하여 Snowflake가 승인한 서드 파티의 계정에 쿼리 결과를 둡니다.
서드 파티 활성화는 Clean Rooms UI 에서만 지원되며 사용자 지정 템플릿을 사용하지 않습니다.
Clean Rooms UI 사용 시 활성화는 Clean Rooms 계정이 활성화를 허용하는 경우에만 지원됩니다.
Clean Rooms 관리자는 서드 파티 활성화 커넥터를 지원하도록 환경을 구성하고, 허용되는 커넥터를 선택한 후 구성해야 모든 Clean Room에서 사용할 수 있습니다.
서드 파티 활성화는 컨슈머와 공급자 실행 분석을 모두 지원합니다.
지원되는 템플릿¶
다음 템플릿은 서드 파티 활성화를 지원합니다.
Audience Overlap & Segmentation
SQL 쿼리
서드 파티 활성화 구현하기¶
Clean Room 생성 또는 참여: Clean Room을 만들거나 참여할 때 Activation Settings 의 Configure Analysis & Query 단계에서 계정에 대해 활성화된 결과에 추가할 열을 지정합니다.
결과 활성화:
분석을 실행합니다.
분석을 실행한 후 Results » Activate 를 선택합니다.
Activation Hub 에서 활성화할 서드 파티 공급자의 이름을 선택합니다.
공급자와 관련된 정보를 제공합니다. 설명이 포함된 이름을 제공하거나 활성화할 열을 선택할 수 있습니다. 페이지의 도구 설명에 해당 공급자에 대한 추가 정보가 제공되어야 합니다.
Push Data 를 선택합니다.