Snowflake Data Clean Rooms: 설치된 객체에 대해 알아봐요.

Snowflake Data Clean Rooms: 설치된 객체에 대해 알아봐요.

지원 종료 안내

기존 Provider 및 Consumer Data Clean Rooms는 지원이 중단될 예정이에요. 날짜와 마이그레이션 안내는 지원 종료 타임라인을 확인해 주세요.

이 항목에서는 clean room 환경을 설치할 때 계정에 생성되는 객체에 대한 정보를 제공해요.

출처: 문서

본문


상위 개요

다음 다이어그램은 provider 및 consumer 계정에 설치되는 주요 객체의 높은 수준의 구성을 보여줘요.

  • Clean rooms UI: clean rooms UI를 사용하여 clean room에 액세스하는 사용자는 clean room 설치 관리자가 계정당 한 번 구성하는 서비스 사용자 계정을 거쳐 clean rooms API에 도달해요.

  • API 사용자: API 사용자와 clean rooms UI는 동일한 clean rooms API를 사용해요. 이 API는 계정의 로컬 DB에 의해 정의돼요.

  • 로컬 DB: clean rooms API를 정의해요. 계정마다 로컬 DB가 하나씩 있으며(clean room마다가 아니라), 이 객체의 실제 이름은 SAMOOHA_BY_SNOWFLAKE_LOCAL_DB예요.

  • Clean room 애플리케이션 패키지: provider가 clean room을 만들 때 provider의 계정에 생성돼요. clean room마다 패키지가 하나씩 있으며 이름은 SAMOOHA_CLEANROOM_{cleanroom name}이에요. 이 패키지는 consumer가 설치하는 clean room 앱을 생성해요.

  • 백 셰어: provider는 consumer로부터 provider로 메시지와 데이터를 받기 위해 백 셰어를 마운트해야 해요. Native apps는 provider에서 consumer로의 데이터 흐름만 지원하므로, consumer에서 provider로 데이터가 흐르게 하려면 백 셰어를 마운트해야 해요. provider 계정에는 두 개의 백 셰어가 마운트돼요. 하나는 provider 실행 및 provider 활성화 데이터를 저장하는 거버넌스 백 셰어이고, 다른 하나는 consumer 맞춤 템플릿 요청이나 provider 실행 요청에 대한 consumer 승인과 같은 consumer에서 provider로의 메시지와 응답을 저장하는 요청 로그 백 셰어예요. (셰어 자체는 consumer의 계정에 있어요.)

  • 설치된 앱: 애플리케이션 패키지에 의해 생성되며, 설치된 앱은 consumer 쪽에서 clean room을 정의해요. 설치된 앱의 이름은 SAMOOHA_CLEANROOM_APP_*cleanroom_name* 명명 규칙을 따라요.

  • Consumer DB: consumer 계정에 등록된 데이터셋의 읽기 전용 뷰를 포함해요. consumer는 데이터셋을 clean room에 연결할 때 이러한 뷰를 만들어요. consumer 계정에는 clean room마다 consumer DB가 하나씩 있으며 이름은 SAMOOHA_CLEANROOM_CONSUMER_{clean room ID}예요.

  • Clean room: clean room은 크게 보면 provider 쪽의 애플리케이션 패키지와 백 셰어, 그리고 consumer 쪽의 설치된 앱과 consumer DB로 구성된다고 볼 수 있어요.

애플리케이션 패키지

계정에 설치할 수 있는 애플리케이션 패키지는 다음과 같아요.

SAMOOHA_CLEANROOM_{cleanroom name}

provider 계정에 설치되며, 생성된 clean room마다 하나의 애플리케이션 패키지가 있어요. 이 패키지에는 provider가 만든 clean room의 모든 핵심 애플리케이션 로직이 포함돼요. 또한 clean room과 데이터를 공유하는 데 사용되는 보안 뷰와 clean room 상태를 저장하는 여러 테이블도 포함돼요. 여기에는 consumer의 현재 차등 프라이버시 예산, 열 및 조인 정책, clean room에 연결된 테이블 이름을 기록하는 테이블이 포함돼요.

애플리케이션

계정에 설치할 수 있는 애플리케이션은 다음과 같아요.

SAMOOHA_CLEANROOM_APP_*cleanroom_name*

consumer가 clean room을 설치(참여)할 때 consumer 계정에 설치돼요.

데이터베이스

Snowflake Data Clean Rooms는 다음 데이터베이스를 설치해요.

SAMOOHA_BY_SNOWFLAKE

이 데이터베이스에는 clean room을 만들고 관리하는 데 사용되는 모든 핵심 기능과 애플리케이션 로직이 포함돼요. 이 데이터베이스에는 다음과 같은 스키마가 있어요.

ADMIN 스키마

이 스키마에는 다음과 같은 앱 수준 세부 정보가 포함돼요.

  • 적용된 패치(버전, 명령).

  • 버전 정보(번호).

APP_SCHEMA 스키마

이 스키마에는 모든 clean room 흐름을 원활하게 지원하는 데 필요한 함수와 프로시저가 포함돼요. 주요 세부 정보는 다음과 같아요.

  • 암호화 및 복호화 함수.

  • 개발자 API 및 clean rooms UI와 함께 사용하여 clean room을 만들고, 설치하고, 작업하는 clean room 프로시저.

TEMPLATES 스키마

이 스키마에는 Snowflake가 제공하는 SQL Jinja 템플릿이 포함돼요.

이 미리 만들어진 템플릿은 Snowflake Data Clean Rooms 내에서 안전한 데이터 협업을 위해 바로 사용할 수 있는 SQL 쿼리를 제공해요. Jinja 템플릿을 활용하여 사용자 지정할 수 있으므로 특정 데이터 공유 시나리오에 맞게 쿼리를 조정할 수 있어요.

SAMOOHA_BY_SNOWFLAKE_LOCAL_DB

이 데이터베이스는 Snowflake 설치 과정에서 clean rooms UI에 의해 생성돼요. 계정에 로컬로 존재하며, 애플리케이션은 아니지만 애플리케이션 로직을 포함해요.

이 데이터베이스에는 두 가지 유형의 데이터가 있어요.

  • 사용자와 clean rooms UI가 clean room을 만들고 관리하는 데 사용하는 개발자 API.

  • ID 해석(identity resolution)과 같은 흐름 중 PUBLIC 스키마에 저장되는 사용자 소유의 중간 데이터셋. 예를 들어 LiveRamp의 해석 및 트랜스코딩 프로세스에서 생성된 출력 테이블은 PUBLIC 스키마에 저장되고, clean rooms UI가 clean room에 연결하는 뷰에 조인돼요.

이 데이터베이스에는 다음과 같은 스키마가 있어요.

ADMIN 스키마

이 스키마에는 계정과 연결된 특정 clean room 기능을 운영하는 데 필요한 정보가 포함돼요. 예를 들면 다음과 같아요.


  • Cross-Cloud Auto-Fulfillment를 사용하여 지역 또는 클라우드 플랫폼 간에 협업할 수 있어요.

  • 개발자 API에서 clean rooms UI로 clean room을 등록하는 데 필요한 clean room 메타데이터 업데이트에요.

  • Snowflake 계정에서 clean rooms UI의 작동과 관련된 현재 프로시저의 버전 관리에요.

  • 협업자로부터 다시 공유되는 clean room 공유 세트의 변경 사항을 수신하고, 변경 사항에 따라 필요에 따라 clean room을 활성화/비활성화하는 태스크와 스트림이에요.

CONSUMER 스키마

이 스키마에는 consumer API 프로시저의 정의와 몇 가지 일반적인 consumer 태스크가 포함되어 있어요.

INFORMATION_SCHEMA 스키마

모든 Snowflake 데이터베이스와 마찬가지로 이 데이터베이스에는 INFORMATION_SCHEMA 스키마("데이터 사전")가 포함되어 있어요. 이 스키마는 계정에서 생성된 객체에 대한 광범위한 메타데이터 정보를 제공하는 시스템 정의 뷰와 테이블 함수 집합으로 구성되어 있죠.

LIBRARY 스키마

이 스키마에는 library 네임스페이스 API 프로시저의 정의와 provider와 consumer 모두가 사용하는 몇 가지 일반적인 태스크 및 프로시저가 포함되어 있어요.

PROVIDER 스키마

이 스키마에는 provider API 프로시저의 정의와 몇 가지 일반적인 provider 태스크가 포함되어 있어요.

PUBLIC 스키마

이 스키마에는 사용자와 clean rooms UI가 clean room을 생성하고 관리하는 데 사용하는 개발자 API가 포함되어 있어요. 또한 ID 해석(identity resolution)과 같은 흐름 중에 PUBLIC 스키마에 저장되는, 전적으로 사용자가 소유한 중간 데이터셋도 포함되어 있죠. 예를 들어 LiveRamp의 해석 및 트랜스코딩 프로세스의 출력 테이블은 PUBLIC 스키마에 저장되고, clean rooms UI가 clean room에 연결하는 뷰에 조인되어요.

이 스키마에는 다음 테이블이 있어요:

  • CLEANROOM_RECORD: 이 테이블에는 clean room의 상태(생성됨, 삭제됨)와 마지막 업데이트의 사용자 및 타임스탬프가 포함되어 있어요. 업데이트가 clean rooms UI에서 수행된 경우 사용자는 서비스 계정 사용자예요. Snowsight에서 개발자 API를 사용하여 업데이트된 경우 사용자는 API를 호출한 실제 사용자예요. clean room 데이터베이스 이름은 이 테이블에서 사용자 지정할 수 있어요.

  • CONNECTOR_CONFIGURATION: 이 테이블은 계정에 구성된 커넥터 목록이에요.

  • REPORTS: 이 테이블에는 consumer가 clean rooms UI에 저장한 보고서 목록이 포함되어 있어요. 표준 보고서의 최상위 결과가 이 테이블에 저장되죠.

  • HORIZONTAL_ANALYSIS_: SQL Query 템플릿과 clean rooms UI에서 실행된 사용자 지정 템플릿으로 실행된 분석의 출력이에요.

  • CONSUMER_ACTIVATION_SUMMARY: Consumer 활성화 결과예요.

  • PROVIDER_ACTIVATION_SUMMARY: Provider 활성화 결과예요.

이 데이터베이스에서는 다음과 같은 세 가지 공유가 생성되어요:

  • SAMOOHA_INTERNAL_GOVERNANCE_SUMMARY_SHARE_NAV2: 이 공유에는 PUBLIC 스키마의 (CONSUMER_/PROVIDER_)GOVERNANCE_SUMMARY 및 (CONSUMER_/PROVIDER_)ACTIVATION_SUMMARY 테이블에 대한 뷰가 포함되어 있어요. 이 공유는 이 계정이 설치한 clean room을 생성한 모든 provider와 공유되며, 거버넌스 정보와 provider 활성화를 다시 공유하는 데 사용되죠.

  • SAMOOHA_INTERNAL_LOGS_SHARE_NAV2: 이 공유는 LOG_EVENTS 테이블에 대한 것으로, 주로 ID 해석 프로시저가 어떻게 진행되고 있는지에 대한 로그를 Snowflake로 다시 공유하는 데 사용돼요. 이 프로시저는 타사 네이티브 앱을 사용하기 때문이죠. PII나 데이터가 다시 공유되는 일은 절대 없으며, 트랜스코딩/해석에 사용된 타사 앱 API의 성공/실패 여부만 공유되어요.

  • SAMOOHA_INTERNAL_PROVIDER_METADATA_NAV2: 이 공유는 두 개의 테이블, 즉 API에서 UI로 등록 요청을 보내는 데 사용되는 ADMIN.METADATA_UPDATE_REQUESTS와 관리 계정에서만 사용량을 기록하는 데 사용되는 ADMIN.RESOURCE_MONITOR_USAGE에 대한 것이에요.

``

SAMOOHA_CLEANROOM_{cleanroom ID}

게시된(creator로서) 또는 설치된(consumer로서) 각 clean room에는 설치된 템플릿, 요청 로그, LAF 상태 등 해당 clean room의 모든 세부 정보가 포함된 연결된 데이터베이스가 있어요. 이 데이터베이스에는 다음 스키마가 포함되죠:

  • Admin: 암호화 키, 개인 정보 보호 예산, 요청 로그, provider 분석 요청 등이에요.

  • Shared_schema: 조인 정책, LAF 상태, 연결된 테이블 및 버전이에요.

  • Templates: 이 clean room의 활성화 템플릿, 사용자 지정 템플릿 및 템플릿 체인 목록이에요.

``

SAMOOHA_CLEANROOM_REQUESTS_{clean room ID}

이것은 provider 측의 데이터베이스이자 consumer 측의 공유예요. consumer clean room 설치 프로세스의 일부로 consumer가 clean room의 provider에게 다시 보내는 공유에 해당하죠. 이 데이터베이스에는 consumer가 clean room에 대해 제기한 모든 요청에 대한 정보가 포함되어 있으며, consumer의 차등 개인 정보 보호 예산 사용량을 추적하는 데 사용되어요.

``

SAMOOHA_CLEANROOM_CONSUMER_{clean room ID}

이 데이터베이스는 consumer 계정에만 설치되어요. consumer 데이터의 보안 뷰와 같은 객체를 clean room에 공유하고, 적용된 경우 consumer 열/조인 정책을 공유하는 데 사용되죠. 다음 테이블이 있어요:

  • SAMOOHA_CLEANROOM_CONSUMER_{clean room ID}.SHARED.REQUESTS. 이 테이블은 consumer에게 정확히 어떤 쿼리가 실행을 시도했는지 보여주며, 여기서 PROPOSED_QUERY는 consumer의 템플릿에서 렌더링된 쿼리예요.

SAMOOHA_SAMPLE_DATABASE


이 데이터베이스에는 테스트 데이터로 사용할 수 있는 DEMO.CUSTOMERS 및 DEMO.CUSTOMERS_2라는 샘플 데이터셋이 포함되어 있어요.

참고

CUSTOMERS_2 테이블은 2025년 9월에 추가되었어요. 그 이전에 clean rooms 환경을 설치했다면 이 샘플 테이블이 설치되어 있지 않을 수 있어요. CUSTOMERS_2가 설치되어 있는지 확인하려면 다음 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;

작업

다음은 clean rooms에서 사용되며 사용자 환경에서 실행 중인 것을 볼 수 있는 작업들이에요.

특정 작업에 대한 자세한 내용은 다음 프로시저를 실행해서 확인할 수 있어요:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.DCR_HEALTH.DCR_TASKS_HEALTH_CHECK();

작업 및 웨어하우스 사용 비용을 확인하는 방법 알아보기.

Clean room 작업 **

`**```

``

``

``

``

``

``

**

``

``

``

``

**``**

**

``

``

``

``

``

작업 이름 설명 웨어하우스 엔터티 수준
AUTO_RUN_warehouse 각 웨어하우스에 대한 예약된 보고서를 실행해요. 보고 대상 웨어하우스를 사용해요. 기본 일정: 1일. DCR_WH_warehouse clean room 보고서당
AUTO_RUN_TASK 자동 실행으로 설정된 보고서를 실행해요. 기본 일정: 1일. 사용자가 선택한 웨어하우스. 계정당
COMPUTE_DATA_STATS_​FOR_ACCOUNT_{consumer locator} 조인된 clean room의 기준 메트릭을 계산해요. 기본 일정: 3시간. SAMOOHA_TASK_WAREHOUSE 계정당
COMPUTE_DATA_STATS_​FOR_ACCOUNT_{provider locator} 생성된 clean room의 기준 메트릭을 계산해요. 기본 일정: 3시간. SAMOOHA_TASK_WAREHOUSE 계정당
DISTINCT_COLUMN_VALUES​_TASK clean room에 연결된 데이터셋의 고유 값을 계산해서 필터 드롭다운을 사용할 수 있게 해요. 기본 일정: 1일. SAMOOHA_TASK_WAREHOUSE clean room당
EXPECTED_VERSION_TASK 새 버전이 릴리스되면 네이티브 앱을 자동으로 업그레이드해요. 기본 일정: 요청 시 트리거됨. SAMOOHA_TASK_WAREHOUSE 계정당
LISTEN_TO_REQUESTS 계정에서 차등 프라이버시가 활성화된 경우 협업자로부터 들어오는 공유를 마운트, 복구, 검증해요. DP가 활성화되면 분석이 과도하게 실행되는 것을 방지하기 위해 더 높은 빈도로 동일한 작업이 추가돼요. 이 작업은 하루에 약 6크레딧이 소요돼요. 기본 일정: 1분. Serverless 계정당
LISTEN_TO_REQUESTS_NODP 협업자로부터 들어오는 공유를 마운트, 복구, 검증해요. 기본 일정: 30분. SAMOOHA_TASK_WAREHOUSE 계정당
LISTEN_TO_REQUESTS​_1_COLLABORATOR 소비자에서 공급자로 다시 스트리밍되는 반환 요청에 대한 리스너를 설정해요. clean room이 활성화되었는지 확인해요. 기본 일정: 요청 시 트리거됨. SAMOOHA_TASK_WAREHOUSE 협업자당
MONITORING_SUMMARY_CRON_TASK 내부 사용용. 기본 일정: 30분. SAMOOHA_TASK_WAREHOUSE 계정당
MOUNT_PROVIDER_ACTIVATIONS_TASK 각 소비자에 대한 활성화를 위해 들어오는 공유를 마운트해요. 기본 일정: 15분. SAMOOHA_TASK_WAREHOUSE 계정당
PRIVACY_AND_SECURITY_SCANNER 각 공급자의 clean room에 있는 각 템플릿에서 프라이버시 및 보안 문제를 검사해요. 기본 일정: 30분. SAMOOHA_TASK_WAREHOUSE 계정당
PROCESS_ACTIVATIONS 소비자가 다시 보낸 활성화 데이터를 복호화해요. 기본 일정: 요청 시 트리거됨. SAMOOHA_TASK_WAREHOUSE 계정당
PROCESS_PROVIDER_ANALYSIS_REQUESTS 실제 공급자 분석을 실행해요. 기본 일정: 요청 시 트리거됨. PROVIDER_RUN_UUID clean room당
PROCESS_REQUESTS_​BUDGET_COLLABORATOR_1 clean room의 차등 프라이버시 예산을 처리해요. 기본 일정: 요청 시 트리거됨. SAMOOHA_TASK_WAREHOUSE 협업자당
PROCESS_TEMPLATE_REQUESTS​_COLLABORATOR clean room의 템플릿 요청을 처리해요. 기본 일정: 요청 시 트리거됨. SAMOOHA_TASK_WAREHOUSE 협업자당
RESET_PRIVACY_BUDGET 모든 clean room의 프라이버시 예산을 재설정해요. 기본 일정: 1일. SAMOOHA_TASK_WAREHOUSE clean room당
SAMOOHA_INTERNAL_UID_​OUTPUT_TABLE_REFRESH_TABLE_DATA_TASK 테이블당 한 번 생성돼요. 기본 일정: 1일. SAMOOHA_TASK_WAREHOUSE 계정당
SETUP_AUTO_RUN 자동 실행 보고서를 설정해요. 기본 일정: 60분. SAMOOHA_TASK_WAREHOUSE 계정당
SETUP_PROVIDER_ANALYSIS​_REQUESTS 공급자 분석 인프라를 설정하고 공급자 분석 요청을 처리해요. 기본 일정: 요청 시 트리거됨. SAMOOHA_TASK_WAREHOUSE clean room당
TRIGGER_REFRESH_FOR_LAF_CLEANROOMS Cross-Cloud Auto-Fulfillment가 활성화된 clean room의 데이터 새로 고침을 트리거해요. 기본 일정: 30분. SAMOOHA_TASK_WAREHOUSE 계정당

웨어하우스

Snowflake Data Clean Rooms는 사용자 계정에 다음 웨어하우스를 설치해요. 필요에 따라 어떤 웨어하우스의 크기든 변경할 수 있어요. 일반적인 clean room 편집, 생성 또는 삭제 명령에는 XS 웨어하우스를 사용하는 것이 좋아요. 머신러닝 워크로드와 같은 대규모 분석을 실행할 때는 더 큰 웨어하우스 또는 Snowpark 최적화 웨어하우스를 사용하는 것을 고려해 보세요.

웨어하우스 사용 비용을 확인하는 방법 알아보기. ``


Warehouse name Notes
APP_WH XSMALL 웨어하우스는 API에 액세스하고, 새 클린 룸을 설정하며, 권한과 데이터 공유를 관리합니다.
DCR_WH_SMALL 일반 SMALL 웨어하우스
DCR_WH_Medium 일반 MEDIUM 웨어하우스
DCR_WH_Large 일반 LARGE 웨어하우스
DCR_WH_XLarge 일반 XLARGE 웨어하우스
DCR_WH_2XLARGE 일반 XXLARGE 웨어하우스
DCR_WH_4XLarge 일반 X4LARGE 웨어하우스
DCR_WH_OPT_XLarge Snowpark-Optimized, XLARGE 웨어하우스
DCR_WH_OPT_2XLarge Snowpark-Optimized, XXLARGE 웨어하우스
DCR_WH_OPT_4XLarge Snowpark-Optimized, X4LARGE 웨어하우스
PROVIDER_RUN_<cleanroom_identifier> 프로바이더가 실행하는 분석을 수행하는 컨슈머 계정의 웨어하우스입니다.
SAMOOHA_TASK_WAREHOUSE 개인 정보 및 보안 검사, 자동 실행 보고서 처리, 데이터 통계 계산, 컨슈머 템플릿 요청 처리 등 다양한 용도로 사용되는 XSMALL 웨어하우스입니다.
DCR_ACTIVATION_WAREHOUSE 프로바이더에게 전송된 활성화 결과를 복호화하는 데 사용됩니다. 기본 크기는 XL이지만, provider.update_activation_warehouse를 호출하여 크기를 수정할 수 있습니다.

기타 개체

Snowflake Data Clean Room은 다음과 같은 추가 개체를 설치합니다.

  • SAMOOHA_SERVICE_ACCOUNT_USER_ACCESS: 서비스 사용자가 클린 룸 UI를 활성화하는 데 사용하는 사용자 수준 네트워크 정책입니다.

더 알아보기 (Learn more)