튜토리얼: 클린룸 UI와 단일 계정으로 클린룸 만들기 및 실행
튜토리얼: 클린룸 UI와 단일 계정으로 클린룸 만들기 및 실행
이 튜토리얼은 클린룸 UI를 사용해 클린룸을 만들고 사용하는 기본 단계를 안내해요.
출처: Tutorial: Create and run a clean room using the clean rooms UI and a single account
본문
지원 종료(EOL) 공지
레거시 Provider 및 Consumer 데이터 클린룸은 지원이 중단되고 있어요. 날짜와 마이그레이션 지침은 지원 종료 타임라인을 참고하세요.
이 튜토리얼은 클린룸 UI를 사용해 클린룸을 만들고 사용하는 기본 단계를 안내해요. 클린룸은 사용자가 데이터로 무엇을 할 수 있는지를 엄격히 통제함으로써 데이터의 프라이버시를 유지하면서 콜라보레이터와 데이터를 공유할 수 있게 해줘요.
배울 내용
이 튜토리얼에서 다음 작업을 수행해 클린룸 UI 사용법을 배워요:
- 클린룸 환경에 콜라보레이터를 추가해요. 이 튜토리얼에서는 자신을 콜라보레이터로 추가해요.
- 클린룸을 만들어요. 여기에는 데이터 추가, 조인 정책 지정, 콜라보레이터가 데이터에서 실행할 수 있는 분석 유형 정의, 콜라보레이터와 클린룸 공유가 포함돼요.
- 클린룸을 설치하고, 데이터를 추가하고, 이 데이터가 콜라보레이터의 데이터와 어떻게 조인되는지 정의해요.
- 분석을 실행해요.
- 분석 결과를 활성화해요.
클린룸 콜라보레이터에 대해
클린룸 콜라보레이터는 제공자(provider) 또는 소비자(consumer)예요:
- 제공자는 클린룸을 만들고 구성하는 계정이에요. 일반적인 클린룸에서 제공자는 소비자가 클린룸에서 실행할 수 있는 모든 SQL 템플릿을 추가해요. 제공자는 데이터를 추가하고, 그 데이터에 사용 제한을 설정하고, 클린룸에 참여해 템플릿을 실행할 수 있는 소비자를 초대해요.
- 소비자는 클린룸에 참여하도록 초대된 계정이에요. 소비자는 자신의 데이터를 추가하고, 제공자가 설정한 제한 사항에 따라 클린룸 데이터에서 템플릿을 실행해요.
이 튜토리얼에서는 클린룸에서 제공자와 소비자 역할을 모두 수행해요. 실제 클린룸에서는 제공자와 소비자가 별도의 계정을 사용해요.
사전 요구 사항
- Snowflake Data Clean Rooms UI가 설치된 Snowflake 환경에 접근할 수 있어야 해요. 환경을 직접 설치하거나, 관리자에게 Snowflake 계정에서 클린룸 UI 접근 권한을 부여받아야 해요.
- 이 튜토리얼은 CUSTOMERS_2라는 샘플 테이블을 사용해요. Snowsight에서 SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS_2 테이블을 검색하거나, Snowflake 계정에서 다음 SQL 명령을 실행해 이 테이블이 설치되어 있는지 확인하세요:
SHOW TABLES LIKE 'CUSTOMERS_2' IN SCHEMA SAMOOHA_SAMPLE_DATABASE.DEMO;
응답에 행이 없다면, 당신 또는 ACCOUNTADMIN 역할을 가진 사람이 다음 명령을 실행해 샘플 테이블을 설치해야 해요:
USE ROLE ACCOUNTADMIN;
EXECUTE IMMEDIATE FROM @SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.MOUNT_CODE_STAGE/dcr_loader.sql;
참고
이 튜토리얼은 클린룸에서 제공자와 소비자 모두에 단일 계정을 사용해요. 이 유형의 클린룸인 내부 테스트 클린룸(internal testing clean room)은 테스트 목적으로만 사용할 수 있고, 나중에 프로덕션에서 사용하거나 다른 계정과 공유할 수 없어요. 내부 테스트 클린룸은 대부분의 클린룸 기능을 지원하지만 전부는 아니에요. 두 개의 별도 Snowflake 계정으로 클린룸을 시도해 보려면 양자 계정 튜토리얼을 시도해 보세요.
클린룸 UI 로그인
클린룸 UI에 로그인해요. 클린룸 제공자로 활동할 수 있는 계정의 Snowflake 계정 자격 증명을 제공해요. 제공자는 클린룸을 만들 권한이 있어요.
Provider: 클린룸 생성 및 공유
이 섹션에서 제공자로서 다음 작업을 수행해요:
- 클린룸을 만들어요.
- 콜라보레이터와 공유되는 데이터를 클린룸에 추가해요.
- 콜라보레이터가 자신의 데이터를 조인할 수 있는 컬럼을 제어하는 조인 정책을 정의해요.
- 콜라보레이터가 클린룸에서 실행할 수 있는 분석 유형을 정의해요.
- 클린룸을 소비자와 공유해요.
생성 과정 시작
클린룸 생성 과정을 시작하려면:
- 왼쪽 탐색에서 Clean Rooms를 선택해요.
- Clean Rooms 페이지에서 + Clean Room을 선택해요.
- 클린룸 이름을
Tutorial로 지정해요.
콜라보레이터가 클린룸에서 오디언스 중복(audience overlap) 분석을 실행하도록 허용할 거예요.
클린룸에 데이터 추가
클린룸에 데이터를 추가하려면:
- Datasource 섹션에서
Snowflake를 선택해요. - Tables 드롭다운 목록에서 SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS 테이블을 선택해요.
- Next를 선택해요.
참고
여기에 추가한 테이블이 삭제·이름 변경·이동되거나 제한적인 권한이 추가되면, 같은 위치·이름·권한으로 이전 테이블을 복원하지 않는 한 클린룸에서 더 이상 사용할 수 없어요.
조인 정책 지정
조인 정책은 콜라보레이터가 조인할 수 있는 데이터의 컬럼을 지정해요.
조인 정책을 지정하려면:
- Join Columns 드롭다운 목록에서 다음 컬럼을 선택해요:
HASHED_EMAILHASHED_FIRST_NAMEHASHED_LAST_NAMEHASHED_PHONE
콜라보레이터는 이 컬럼으로만 자신의 데이터를 조인할 수 있어요.
- Next를 선택해요.
분석 템플릿 구성
분석 템플릿은 콜라보레이터가 클린룸의 공유 데이터에 어떻게 접근할 수 있는지 제어해요. 콜라보레이터는 템플릿에 부합하는 분석과 쿼리만 실행할 수 있어요.
클린룸 콜라보레이터를 위한 분석 템플릿을 선택하고 구성해요:
Audience Overlap & Segmentation템플릿을 선택해요.
콜라보레이터는 선택한 분석만 실행할 수 있어요.
- Tables 드롭다운 목록에서 DEMO.CUSTOMERS를 선택해요.
콜라보레이터는 DEMO.CUSTOMERS 테이블의 데이터만 분석할 수 있어요.
- Segmentation & Attribute Columns 드롭다운 목록에서 다음 컬럼을 선택해요:
AGE_BANDDEVICE_TYPEEDUCATION_LEVELSTATUS
소비자는 이 컬럼을 사용해 필터링하고 세그먼트를 만들 수 있어요.
- Allow categorical value previews during filtering을 활성화해요.
- Next를 선택해요.
클린룸 공유 및 게시
이제 클린룸을 만들고 구성했으니, 콜라보레이터가 분석을 실행하는 데 사용할 수 있도록 클린룸을 공유할 수 있어요.
자신과 클린룸을 공유하려면:
- Enable Internal Test Clean Room 설정을 활성화해요.
- Finish를 선택해요.
- 열리는 대화 상자에서 노트를 읽은 뒤 Proceed를 선택해 클린룸을 만들어요.
참고
이 클린룸을 다른 계정과 공유한다면 다음 단계를 수행했을 거예요:
- Select Collaborator 드롭다운 목록에서 소비자의 계정 이름을 선택해요.
- Finish를 선택해요.
클린룸 상태 모니터링
클린룸이 만들어지는 데 몇 분이 걸려요. 이 기간 동안 Created 탭의 클린룸 타일에 Processing 라벨이 표시돼요.
상태 변경을 확인하려면:
- 몇 분마다 Refresh를 선택해요.
타일 라벨이 Processing에서 Edit 버튼으로 바뀌면 소비자 단계로 계속 진행할 수 있어요.
Consumer: 클린룸 설치 및 구성
이 단계에서 클린룸을 만들고 공유하는 제공자 역할에서, 클린룸을 설치하고 실행하는 소비자 역할로 전환해요. 내부 테스트 클린룸이므로 제공자와 소비자에 같은 Snowflake 계정을 사용할 거예요.
소비자로서 다음 작업을 수행해요:
- 제공자가 공유한 클린룸을 설치해요.
- 제공자의 데이터와 조인될 수 있도록 클린룸에 데이터를 추가해요.
- 소비자 데이터와 제공자 데이터가 어떻게 관련되는지 정의하는 조인 정책을 추가해요.
- 분석가가 세그먼트를 만들고, 결과를 필터링하고, 활성화 데이터를 보강하는 데 사용할 수 있는 컬럼을 정의해요.
소비자로서 클린룸 설치
UI에서의 설치는 참여(join), 구성(configuring), 설치(installing)를 포함해요.
클린룸을 구성하려면:
- 왼쪽 탐색에서 Clean Rooms를 선택해요.
- Invited 탭을 선택해요.
Tutorial타일을 찾아 Join을 선택해요.
클린룸이 Invited 탭에 없다면 Refresh를 선택해요. 그래도 없다면 Created 탭에서 클린룸에 Edit 버튼이 있는지 확인해요. Edit 버튼이 없다면 제공자로서 클린룸을 만들지 않은 거예요.
클린룸에 소비자 데이터 추가
클린룸에 데이터를 추가하려면:
- Datasource 섹션에서
Snowflake를 선택해요. - Tables 드롭다운 목록에서 SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS_2를 선택하고 저장해요.
- 이 테이블이 목록에 없다면 튜토리얼 소개의 사전 요구 사항 섹션에서 설치 방법을 확인하세요.
- Next를 선택해요.
참고
여기에 추가한 테이블이 삭제·이름 변경·이동되거나 제한적인 권한이 추가되면, 같은 위치·이름·권한으로 이전 테이블을 복원하지 않는 한 클린룸에서 더 이상 사용할 수 없어요.
조인 정책 정의
다음으로, 이 클린룸의 분석이나 쿼리에서 조인 가능한 소비자 컬럼을 지정해요:
- Specify Join Policies 창의 Join Policies 섹션에서 자신의 데이터(My Columns로 표시)의 컬럼과 제공자 테이블( Collaborator Columns로 표시)의 동등한 컬럼을 선택해요.
- 소비자 테이블(My Columns)의 컬럼과 제공자 테이블(Collaborator Columns)의 컬럼이 내용이 일치하는지 확인해요(컬럼 이름은 일치하지 않아도 됨).
예를 들어 소비자의 HASHED_EMAIL 컬럼은 제공자의 HASHED_EMAIL 컬럼과 조인해야 해요. 선택한 분석에서 모든 조인 컬럼이 일치해야 해요.
- Configure Analysis & Query 창으로 이동하려면 Next를 선택해요.
세그먼테이션 및 활성화 컬럼 정의
클린룸 설치 과정에서 세그먼테이션 및 활성화 컬럼을 선택하면, 클린룸에서 분석을 실행하는 사용자가 사용할 수 있는 컬럼을 정의해요. 분석가는 이 컬럼에 기반해서만 세그먼트를 만들 수 있어요. 활성화 데이터를 제공자에게 다시 보낼 때 분석가는 이 컬럼 중 하나에서 나온 데이터가 아니면 분석 결과를 데이터로 보강할 수 없어요.
세그먼테이션 및 활성화 컬럼을 정의하려면:
- Tables 드롭다운 목록에서 DEMO.CUSTOMERS_2 테이블을 선택하고 저장해요.
- Segmentation & Attribute Columns 드롭다운 목록에서 다음 컬럼을 선택하고 저장해요:
INCOME_BRACKETREGION_CODESTATUS
- 클린룸을 설치하려면 Finish를 선택해요.
설치를 완료하는 데 몇 분 걸려요.
- 변경 사항을 확인하려면 몇 분마다 Refresh를 선택해요.
타일 라벨이 Processing에서 Run 버튼으로 바뀌면 클린룸이 설치된 것이고 분석을 실행할 수 있어요.
Consumer: 분석 실행
이 단계에서 클린룸에서 오디언스 중복 및 세그먼테이션 분석을 실행해요. 먼저 분석에 사용할 데이터를 선택해야 해요.
분석을 구성하고 실행하려면:
- Joined 탭에서 클린룸 타일을 찾아 Run을 선택해요.
- Audience Overlap & Segmentation » Proceed를 선택해요.
- My Tables에서 CUSTOMERS를 선택해요.
- Collaborator's Tables에서 CUSTOMERS를 선택해요.
- Required Parameters » My Join Columns에서 다음 조인을 정의해요:
- 드롭다운 목록에서
HASHED_EMAIL을 선택하고 저장해요. -
- Join Column을 선택한 다음
HASHED_FIRST_NAME과HASHED_LAST_NAME을 선택해요.
- Join Column을 선택한 다음
-
- Join Column을 선택한 다음
HASHED_PHONE을 선택해요.
- Join Column을 선택한 다음
- 드롭다운 목록에서
클린룸에서 분석을 실행하면 다음 항목 중 하나라도 참인 레코드가 결과에 포함돼요:
- 소비자의
HASHED_EMAIL이 제공자의HASHED_EMAIL과 일치. - 소비자의
HASHED_FIRST_NAME이 제공자의HASHED_FIRST_NAME과 일치하고 소비자의HASHED_LAST_NAME이 제공자의HASHED_LAST_NAME과 일치. - 소비자의
HASHED_PHONE이 제공자의HASHED_PHONE과 일치.
- User Segmentation 섹션에서 다음 단계를 수행해요:
- My Columns 드롭다운 목록에서
INCOME_BRACKET을 선택해요. - Collaborator Columns 드롭다운 목록에서
AGE_BAND를 선택해요.
- My Columns 드롭다운 목록에서
분석 결과는 이 세그먼트로 그룹화돼요.
- Filters 섹션에서 드롭다운 목록을 사용해
CUSTOMERS.STATUS = GOLD를 지정해요.
이렇게 하면 분석 결과가 STATUS = GOLD인 결과로 제한돼요.
- Run을 선택해요.
선택적으로 Warehouse 드롭다운 선택을 변경해 다른 웨어하우스 크기로 분석을 실행할 수 있어요.
- Analyses & Queries 페이지에서 분석 상태가 Completed가 되면:
- 결과를 보려면 분석을 선택해요.
- 페이지의 Results 섹션으로 스크롤해요. 결과를 토글해 중복 또는 비중복 비율을 볼 수 있어요.
- 분석의 세그먼테이션 그룹을 보려면 Download를 선택하고 쉼표로 구분된 파일을 열어요.
- 다음 단계로 계속해 보강된 결과를 소비자의 Snowflake 계정으로 활성화(보내기)해요.
Consumer: 결과를 소비자 계정으로 활성화
이 단계에서 분석 결과를 소비자 Snowflake 계정으로 푸시해 활성화해요. 이 결과는 소비자와 제공자 테이블의 데이터로 보강돼요.
분석 결과를 활성화하려면:
- 분석의 Results 섹션에서 Activate를 선택해요.
- Activation Hub 섹션에서 계정 이름을 선택해요.
이 섹션은 데이터를 활성화할 수 있는 계정과 서비스를 나열해요. 목록에는 Snowflake 밖의 서비스로 데이터를 보내는 제3자 활성화 커넥터가 포함될 수 있어요.
- Segment Name 필드에
My test segment또는 이 결과 집합의 다른 고유 이름을 입력해요.
여기에 제공한 세그먼트 이름을 복사해 저장하세요.
- ID Columns 드롭다운 목록에서
HASHED_EMAIL을 선택해요. - Attribute Columns 드롭다운 목록에서 Select All을 선택해요.
분석 결과를 보면 일치하는 레코드가 소비자와 제공자 테이블 양쪽의 데이터로 보강됩니다.
사용 가능한 컬럼은 클린룸을 설치할 때 소비자로 선택한 세그먼테이션 및 활성화 컬럼과 같아요.
- Push Data를 선택해요.
축하해요! 이제 소비자 계정에서 클린룸을 설치하고 구성하고, 분석을 실행하고, 활성화를 위해 결과를 소비자 계정으로 푸시했어요.
활성화된 데이터 보기
이전 단계에서 소비자의 Snowsight 계정으로 활성화했어요. Snowflake 웹 애플리케이션 또는 코드를 사용해 활성화된 데이터를 보는 방법은 다음과 같아요:
Snowsight
- 클린룸을 실행한 것과 같은 계정으로 Snowsight에 로그인해요. 클린룸 UI가 아니라 Snowflake UI를 사용해요.
- 탐색 메뉴에서 Catalog » Explorer를 선택해요.
SAMOOHA_BY_SNOWFLAKE_LOCAL_DB를 검색해요.- PUBLIC » Tables » CONSUMER_DIRECT_ACTIVATION_SUMMARY로 이동해요.
- 활성화 데이터를 보려면 Data Preview를 선택해요.
- 데이터가 안 보이면 데이터를 활성화할 때 사용한 것과 같은 Snowflake 계정을 사용하고 있는지 확인하세요.
SQL
- 클린룸을 실행한 것과 같은 계정으로 Snowsight에 로그인해요. 클린룸 UI가 아니라 Snowflake UI를 사용해요.
- 탐색 메뉴에서 Projects » Worksheets를 선택해요.
-
- SQL Worksheet를 선택해요.
- 소비자 클린룸 환경으로 푸시된 활성화 데이터를 나열하려면 새 워크시트에 다음 문을 붙여넣고 실행해요. 클린룸 UI에서 활성화를 실행할 때 입력한 세그먼트 이름으로 대체해요.
SELECT *
FROM SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.CONSUMER_DIRECT_ACTIVATION_SUMMARY
WHERE segment = '<your segment name>';
데이터가 보이지 않으면 데이터를 활성화할 때 사용한 것과 같은 Snowflake 계정을 사용하고, 결과를 활성화할 때 지정한 세그먼트 이름을 사용하고 있는지 확인하세요.
정리
이 튜토리얼을 위해 만든 클린룸과 활성화 데이터를 삭제해 프로덕션 환경을 정리할 수 있어요.
활성화 데이터 삭제
제공자 Snowflake 계정에서 활성화 데이터를 삭제하려면:
- 제공자 계정의 Snowsight에 로그인해요. 클린룸 UI가 아니라 Snowflake UI에 로그인해요.
- 탐색 메뉴에서 Projects » Worksheets를 선택해요.
-
- SQL Worksheet를 선택해요.
- 새 워크시트에 다음 문을 붙여넣고 실행해 이 튜토리얼을 위해 만든 활성화 데이터를 삭제해요. 표시된 위치에 사용자 지정 세그먼트 이름을 대체해요:
DELETE FROM SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.PUBLIC.CONSUMER_DIRECT_ACTIVATION_SUMMARY
WHERE segment = '<your segment name>';
클린룸 삭제
제공자 계정에서 클린룸을 삭제하면 제공자 계정과 소비자 계정 양쪽에서 제거돼요.
클린룸을 삭제하려면:
- 클린룸 UI의 왼쪽 탐색에서 Clean Rooms를 선택해요.
- Created 탭에서 클린룸 타일을 찾아요.
- ⋮ » Delete » Proceed를 선택해요.
더 알아보기
축하해요! 이제 클린룸 UI를 사용해 제공자로서 클린룸을 만들고 공유했어요. 또한 프라이버시를 보존하는 환경 안에서 클린룸을 사용해 데이터를 분석하는 소비자 역할도 수행했어요.
Snowflake Data Clean Rooms에 대한 자세한 내용은 다음 리소스를 참고하세요:
- 일반 정보는 Provider 및 Consumer 클린룸 개요를 참고하세요.
- 클린룸 UI에 대한 자세한 내용은 레거시 클린룸 UI 개요를 참고하세요.
- 개발자 API로 Snowflake Data Clean Room을 프로그래밍 방식으로 작업하는 방법은 Snowflake Data Clean Rooms 개발자 안내를 참고하세요.