Snowflake Data Clean Rooms: 설치된 객체

Snowflake Data Clean Rooms: 설치된 객체

수명 종료 안내

레거시 Provider 및 Consumer Data Clean Rooms가 중단될 예정이에요. 날짜와 마이그레이션 지침은 수명 종료 타임라인을 참고하세요.

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

출처: Snowflake Data Clean Rooms: Installed objects

본문

높은 수준의 개요

다음 다이어그램은 프로바이더와 소비자 계정에 설치되는 주요 객체의 높은 수준의 관점을 보여 줘요.

  • 클린룸 UI: 클린룸 UI를 사용해 클린룸에 접근하는 사용자는 클린룸 설치자가 계정당 한 번 구성하는 서비스 사용자 계정을 거쳐 클린룸 API로 이동해요.
  • API 사용자: API 사용자와 클린룸 UI는 모두 동일한 클린룸 API를 사용해요. 이 API는 계정의 로컬 DB가 정의해요.
  • 로컬 DB: 클린룸 API를 정의해요. 계정당 로컬 DB가 하나 있어요(클린룸당이 아니라). 이 객체의 실제 이름은 SAMOOHA_BY_SNOWFLAKE_LOCAL_DB예요.
  • 클린룸 애플리케이션 패키지: 프로바이더가 클린룸을 만들 때 프로바이더 계정에 생성돼요. 클린룸당 패키지가 하나 있으며 SAMOOHA_CLEANROOM_{cleanroom name}으로 이름이 지정돼요. 이 패키지는 소비자가 설치하는 클린룸 앱을 생성해요.
  • 백 공유(Back shares): 프로바이더는 소비자에서 프로바이더로 메시지와 데이터를 받으려면 백 공유를 마운트해야 해요. 네이티브 앱은 프로바이더에서 소비자로의 데이터 흐름만 지원하므로, 소비자에서 프로바이더로 데이터가 흐르게 하려면 백 공유를 마운트해야 해요. 프로바이더 계정에는 두 개의 백 공유가 마운트돼요. 프로바이더 실행(provider-run) 및 프로바이더 활성화 데이터를 저장하는 거버넌스 백 공유와, 소비자 사용자 지정 템플릿 요청 또는 프로바이더 실행 요청에 대한 소비자 승인과 같은 소비자에서 프로바이더로의 메시징과 응답을 저장하는 요청 로그 백 공유예요. (공유 자체는 소비자 계정에 있어요.)
  • 설치된 앱: 애플리케이션 패키지가 생성하며, 소비자 쪽의 클린룸을 정의해요. 설치된 앱은 SAMOOHA_CLEANROOM_APP_*cleanroom_name* 명명 규칙을 따라요.
  • 소비자 DB: 소비자 계정에 등록된 데이터셋의 읽기 전용 뷰를 포함해요. 소비자는 데이터셋을 클린룸에 연결할 때 이러한 뷰를 만들어요. 소비자의 계정에는 클린룸당 소비자 DB가 하나 있으며 SAMOOHA_CLEANROOM_CONSUMER_{clean room ID}로 이름이 지정돼요.
  • 클린룸: 높은 수준에서 클린룸은 프로바이더 쪽의 애플리케이션 패키지와 백 공유, 그리고 소비자 쪽의 설치된 앱과 소비자 DB로 구성된다고 생각할 수 있어요.

애플리케이션 패키지

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

SAMOOHA_CLEANROOM_{cleanroom name}

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

애플리케이션

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

SAMOOHA_CLEANROOM_APP_*cleanroom_name*

소비자가 클린룸을 설치(참여)할 때 소비자 계정에 설치돼요.

데이터베이스

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

SAMOOHA_BY_SNOWFLAKE

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

ADMIN 스키마 — 다음을 포함한 앱 수준 세부 정보를 포함해요.

  • 적용된 패치(버전, 명령).
  • 버전 정보(번호).

APP_SCHEMA 스키마 — 모든 클린룸 흐름을 촉진하는 데 필요한 함수와 절차를 포함해요. 핵심 세부 정보는 다음과 같아요.

  • 암호화 및 복호화 함수.
  • 개발자 API와 클린룸 UI에서 클린룸을 만들고, 설치하고, 작업하는 데 사용하는 클린룸 절차.

TEMPLATES 스키마 — Snowflake가 제공하는 SQL Jinja 템플릿을 포함해요. 이러한 사전 구축된 템플릿은 Snowflake Data Clean Rooms 내에서 안전한 데이터 협업을 위한 즉시 사용 가능한 SQL 쿼리를 제공해요. 맞춤 설정을 위해 Jinja 템플릿을 활용하므로, 쿼리를 특정 데이터 공유 시나리오에 맞게 조정할 수 있어요.

SAMOOHA_BY_SNOWFLAKE_LOCAL_DB

이 데이터베이스는 Snowflake 설치 과정에서 클린룸 UI가 만들어요. 계정의 로컬에 있으며 앱은 아니지만 애플리케이션 로직은 포함해요. 이 데이터베이스에는 두 가지 유형의 데이터가 있어요.

  • 사용자와 클린룸 UI가 클린룸을 만들고 관리하는 데 사용하는 개발자 API.
  • 신원 해석(identity resolution) 같은 흐름 중에 PUBLIC 스키마에 저장되는 사용자가 소유한 중간 데이터셋. 예를 들어 LiveRamp의 해석 및 트랜스코딩 과정의 출력 테이블은 PUBLIC 스키마에 저장되고, 클린룸 UI가 클린룸에 연결하는 뷰에 조인돼요.

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

ADMIN 스키마 — 계정과 관련된 특정 클린룸 기능을 운영하는 데 필요한 정보를 포함해요. 예를 들면 다음과 같아요.

  • Cross-Cloud Auto-Fulfillment를 사용해 리전 또는 클라우드 플랫폼을 넘어 협업.
  • 개발자 API에서 클린룸 UI로 클린룸을 등록하는 데 필요한 클린룸 메타데이터 업데이트.
  • Snowflake 계정과 함께 클린룸 UI의 작동과 관련된 현재 절차의 버전 관리.
  • 협업자로부터 다시 공유되는 클린룸 공유 집합의 변경을 수신하고, 변경에 따라 클린룸을 필요에 따라 활성화/비활성화하는 작업과 스트림.

CONSUMER 스키마 — 소비자 API 절차의 정의와 몇 가지 공통 소비자 작업을 포함해요.

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

LIBRARY 스키마 — library 네임스페이스 API 절차의 정의와 프로바이더와 소비자가 모두 사용하는 몇 가지 공통 작업 및 절차를 포함해요.

PROVIDER 스키마 — 프로바이더 API 절차의 정의와 몇 가지 공통 프로바이더 작업을 포함해요.

PUBLIC 스키마 — 사용자와 클린룸 UI가 클린룸을 만들고 관리하는 데 사용하는 개발자 API를 포함해요. 또한 신원 해석 같은 흐름 중에 PUBLIC 스키마에 저장되는 전적으로 사용자가 소유한 중간 데이터셋도 포함해요. 예를 들어 LiveRamp의 해석 및 트랜스코딩 과정의 출력 테이블은 PUBLIC 스키마에 저장되고, 클린룸 UI가 클린룸에 연결하는 뷰에 조인돼요.

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

  • CLEANROOM_RECORD — 마지막 업데이트의 사용자와 타임스탬프와 함께 클린룸의 상태(생성됨, 삭제됨)를 포함해요. 업데이트가 클린룸 UI에서 이루어졌다면 사용자는 서비스 계정 사용자예요. 업데이트가 개발자 API를 사용해 Snowsight에서 이루어졌다면 사용자는 API를 호출한 실제 사용자예요. 클린룸 데이터베이스 이름은 이 테이블에서 사용자 지정할 수 있어요.
  • CONNECTOR_CONFIGURATION — 계정에 구성된 커넥터 목록이에요.
  • REPORTS — 소비자가 클린룸 UI에 저장한 보고서 목록을 포함해요. 표준 보고서의 최상위 결과가 이 테이블에 저장돼요.
  • HORIZONTAL_ANALYSIS_ — SQL Query 템플릿 및 클린룸 UI에서 실행된 사용자 지정 템플릿으로 실행된 분석의 출력이에요.
  • CONSUMER_ACTIVATION_SUMMARY — 소비자 활성화 결과.
  • PROVIDER_ACTIVATION_SUMMARY — 프로바이더 활성화 결과.

이 데이터베이스에서 생성되는 공유는 세 개가 있어요.

  • SAMOOHA_INTERNAL_GOVERNANCE_SUMMARY_SHARE_NAV2 — PUBLIC 스키마의 (CONSUMER_/PROVIDER_)GOVERNANCE_SUMMARY 및 (CONSUMER_/PROVIDER_)ACTIVATION_SUMMARY 테이블에 대한 뷰를 포함해요. 이 공유는 이 계정이 설치한 클린룸을 만든 모든 프로바이더와 공유되며, 거버넌스 정보와 프로바이더 활성화를 다시 공유하는 데 사용돼요.
  • 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}

게시(작성자로)되거나 설치(소비자로)된 각 클린룸에는 해당 클린룸의 모든 세부 정보(설치된 템플릿, 요청 로그, LAF 상태 등 포함)를 포함하는 연결된 데이터베이스가 있어요. 이 데이터베이스에는 다음 스키마가 포함돼요.

  • Admin — 암호화 키, 프라이버시 예산, 요청 로그, 프로바이더 분석 요청 등을 포함해요.
  • Shared_schema — 조인 정책, LAF 상태, 연결된 테이블, 버전을 포함해요.
  • Templates — 이 클린룸의 활성화 템플릿, 사용자 지정 템플릿, 템플릿 체인 목록을 포함해요.

SAMOOHA_CLEANROOM_REQUESTS_{clean room ID}

프로바이더 쪽의 데이터베이스이고 소비자 쪽의 공유예요. 소비자 클린룸 설치 과정의 일부로 소비자가 클린룸의 프로바이더에게 다시 보내는 공유에 해당해요. 이 데이터베이스는 소비자가 클린룸에 대해 제기한 모든 요청에 대한 정보를 포함하며, 소비자의 차등 프라이버시 예산 사용량을 추적하는 데 사용돼요.

SAMOOHA_CLEANROOM_CONSUMER_{clean room ID}

소비자 계정에만 설치되는 데이터베이스예요. 소비자 데이터의 보안 뷰 같은 객체와 적용된 경우 소비자 컬럼/조인 정책을 클린룸에 공유하는 데 사용돼요. 다음과 같은 테이블이 있어요.

SAMOOHA_CLEANROOM_CONSUMER_{clean room ID}.SHARED.REQUESTS — 이 테이블은 소비자에게 정확히 어떤 쿼리가 실행되려고 했는지 보여 주며, PROPOSED_QUERY는 소비자의 템플릿에서 렌더링된 쿼리예요.

SAMOOHA_SAMPLE_DATABASE

테스트 데이터로 사용할 수 있는 DEMO.CUSTOMERS 및 DEMO.CUSTOMERS_2라는 이름의 샘플 데이터셋을 포함해요.

참고

CUSTOMERS_2 테이블은 2025년 9월에 추가됐어요. 그 전에 클린룸 환경을 설치했다면 이 샘플 테이블이 설치되지 않았을 수 있어요. 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;

작업(Tasks)

다음은 환경에서 실행되는 것을 볼 수 있는 클린룸이 사용하는 몇 가지 작업이에요. 특정 작업에 대한 자세한 정보는 다음 절차를 실행해 확인할 수 있어요.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.DCR_HEALTH.DCR_TASKS_HEALTH_CHECK();

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

클린룸 작업

작업 이름 설명 웨어하우스 엔티티 수준
AUTO_RUN_*warehouse* 각 웨어하우스의 예약된 보고서를 실행해요. 보고하는 웨어하우스를 사용해요. 기본 일정: 1일. DCR_WH_*warehouse* 클린룸당 보고
AUTO_RUN_TASK 자동 실행으로 설정된 보고서를 실행해요. 기본 일정: 1일. 사용자가 선택한 웨어하우스 계정당
COMPUTE_DATA_STATS_FOR_ACCOUNT_{consumer locator} 조인된 클린룸에 대한 기준 지표를 계산해요. 기본 일정: 3시간. SAMOOHA_TASK_WAREHOUSE 계정당
COMPUTE_DATA_STATS_FOR_ACCOUNT_{provider locator} 생성된 클린룸에 대한 기준 지표를 계산해요. 기본 일정: 3시간. SAMOOHA_TASK_WAREHOUSE 계정당
DISTINCT_COLUMN_VALUES_TASK 필터 드롭다운을 활성화하기 위해 클린룸에 연결된 데이터셋의 고유 값을 계산해요. 기본 일정: 1일. SAMOOHA_TASK_WAREHOUSE 클린룸당
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* 소비자에서 프로바이더로 다시 스트리밍되는 반환 요청에 대한 수신기를 설정해요. 클린룸이 활성화되었는지 결정해요. 기본 일정: 요청 시 트리거. SAMOOHA_TASK_WAREHOUSE 협업자당
MONITORING_SUMMARY_CRON_TASK 내부 사용. 기본 일정: 30분. SAMOOHA_TASK_WAREHOUSE 계정당
MOUNT_PROVIDER_ACTIVATIONS_TASK 각 소비자에 대한 활성화를 위해 들어오는 공유를 마운트해요. 기본 일정: 15분. SAMOOHA_TASK_WAREHOUSE 계정당
PRIVACY_AND_SECURITY_SCANNER 각 프로바이더 클린룸의 각 템플릿에서 프라이버시 및 보안 문제를 검사해요. 기본 일정: 30분. SAMOOHA_TASK_WAREHOUSE 계정당
PROCESS_ACTIVATIONS 소비자가 다시 보낸 활성화 데이터를 복호화해요. 기본 일정: 요청 시 트리거. SAMOOHA_TASK_WAREHOUSE 계정당
PROCESS_PROVIDER_ANALYSIS_REQUESTS 실제 프로바이더 분석을 실행해요. 기본 일정: 요청 시 트리거. PROVIDER_RUN_*UUID* 클린룸당
PROCESS_REQUESTS_BUDGET_*COLLABORATOR*_1 클린룸의 차등 프라이버시 예산을 처리해요. 기본 일정: 요청 시 트리거. SAMOOHA_TASK_WAREHOUSE 협업자당
PROCESS_TEMPLATE_REQUESTS_*COLLABORATOR* 클린룸에 대한 템플릿 요청을 처리해요. 기본 일정: 요청 시 트리거. SAMOOHA_TASK_WAREHOUSE 협업자당
RESET_PRIVACY_BUDGET 모든 클린룸의 프라이버시 예산을 재설정해요. 기본 일정: 1일. SAMOOHA_TASK_WAREHOUSE 클린룸당
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 클린룸당
TRIGGER_REFRESH_FOR_LAF_CLEANROOMS Cross-Cloud Auto-Fulfillment가 활성화된 클린룸에 대한 데이터 새로고침을 트리거해요. 기본 일정: 30분. SAMOOHA_TASK_WAREHOUSE 계정당

웨어하우스

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

웨어하우스 이름 참고
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 최적화, XLARGE 웨어하우스
DCR_WH_OPT_2XLarge Snowpark 최적화, XXLARGE 웨어하우스
DCR_WH_OPT_4XLarge Snowpark 최적화, 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를 활성화하기 위해 사용하는 사용자 수준 네트워크 정책.

더 알아보기