Snowflake Data Clean Rooms 의 개요¶
This page provides an overview of how Snowflake Data Clean Rooms works. If you are a Snowflake administrator and want to install clean rooms in your account, read Snowflake Data Clean Rooms 환경 설치하기.
Snowflake Data Clean Rooms 의 개요¶
데이터 Clean Rooms는 공동 작업자가 데이터를 가져오고, 해당 데이터에 대해 실행할 수 있는 쿼리를 지정하고, 차등 개인정보 보호, 조인 및 투영 가능한 행 지정과 같은 데이터 보호 설정을 구성할 수 있는 구성 가능하고 격리된 Snowflake 환경입니다. Clean Room은 초대를 통해서만 액세스할 수 있습니다.
Clean Rooms는 수익 창출 기능을 지원하지 않습니다. 공급자에게는 Clean Rooms를 활성화하는 데 필요한 다양한 백그라운드 프로세스에 대한 비용이 청구되며, 쿼리를 실행하는 계정에는 데이터 및 컴퓨팅 사용량에 대한 표준 Snowflake 비용이 청구됩니다. 비용에 대한 자세한 내용은 비용 이해하기 섹션을 참조하십시오.
Clean Room에 액세스하려면 Clean Room 공급자의 초대를 받아야 합니다. 더 많은 사람에게 Clean Room을 공개하려면 잠재적인 공동 작업자가 연락하여 초대할 수 있도록 자신의 Snowflake 계정을 제공할 수 있는 방법을 제공해야 합니다(또는 비 Snowflake 사용자 의 경우 이메일 주소).
다음은 Snowflake Data Clean Rooms의 작동 방식에 대한 개략적인 개요입니다.
Clean Room 환경 설치¶
The Snowflake Data Clean Room environment is installed once for an entire Snowflake account (not once per user or per clean room) by someone with ACCOUNTADMIN privileges on the Snowflake account.
관리자는 환경을 구성하여 계정에서 어떤 사용자가 Clean Rooms를 만들고 쿼리를 실행할 수 있는지, 어떤 사용자에게 API 액세스 권한이 있는지, 어떤 계정을 Clean Room에서 협업하도록 초대할 수 있는지, Clean Room 작성자가 Clean Room으로 가져올 수 있는 데이터는 무엇인지, 이 계정에서 만든 Clean Room의 쿼리 결과를 내보내는 데 사용할 수 있는 서드 파티 서비스(있는 경우)는 무엇인지 지정할 수 있습니다.
계정에 이미 Clean Room 환경이 설치되어 있는 경우에는 Clean Rooms 관리자에게 문의하여 액세스 권한을 요청하십시오. 계정에 Clean Room 환경이 설치되지 않은 경우 환경 설치 방법을 알아보십시오.
환경을 설치하고 구성한 후 관리자는 다른 Snowflake 사용자에게 Clean Rooms UI, API 또는 둘 다를 사용할 수 있는 권한을 부여합니다.
자세히 알아보기
Clean Room 설치 및 구성 방법을 알아보십시오.
기본적으로 Clean Rooms는 같은 웹 호스팅 리전에 있는 계정과만 공유할 수 있습니다. 관리자는 다른 리전의 계정과 공유를 활성화할 수 있습니다.
Clean Rooms 관리자가 수행하는 기타 작업 을 확인하십시오.
참고
If you were emailed an invitation to join a clean room, you already have clean rooms installed in your Snowflake account. You can read the rest of this page to learn more about clean room usage, but you don’t need to install anything, only to join the clean room.
자신이 계정 관리자인데 Snowflake 계정에 Clean Room 환경이 설치되어 있지 않은 경우 Snowflake 계정을 위한 Clean Room 환경을 설치하는 방법을 알아보십시오.
계정 관리자가 아닌 경우 본인 계정에 대해 Snowflake Data Clean Rooms 가 설치되어 있는지 계정 관리자에게 문의하십시오. 설치되어 있지 않다면 설치 관리자에게 설치하고 액세스 권한을 부여해 줄 것을 요청하십시오. 설치되어 있다면 Clean Rooms에 액세스할 수 있는 권한을 부여해 달라고 요청하십시오.
개발자로서 API 액세스 권한이 필요한 경우, Clean Rooms 관리자에게 API 에 대한 액세스 권한을 부여해 줄 것을 요청하십시오.
Clean Room 만들기¶
A Snowflake account administrator grants permission to users in their Snowflake account to be able to create clean rooms. The account that creates a clean room is called a provider for that clean room. Providers can configure and share clean rooms with users in other Snowflake accounts (or even non-Snowflake users). When a clean room is shared with you, you are called a consumer for that clean room.
After creating a clean room, the provider links (imports) tables or views into it, specifies what queries can be run against their data, which columns in their data can be joined or appear in the results, and what can be done with the results.
The provider then invites consumers to join the clean room, link their own tables and views, and run one of the queries specified by the provider. Consumers must be pre-approved by a clean rooms administrator before they can be invited to a clean room.
자세히 알아보기
Clean Rooms는 코드 또는 Clean Rooms UI 를 사용하여 만들 수 있습니다. Clean Room 생성 권한은 웹 사용자 와 코더 에 대해 다르게 부여됩니다.
AWS, Azure, Google 에서 Snowflake 계정과 Snowflake 외부의 Iceberg 테이블 에서 모두 테이블을 가져올 수 있습니다.
데이터를 Clean Room으로 가져오려면 먼저 원본 데이터에 대한 관리자 권한이 있는 사용자가 등록 해야 합니다.
Snowflake 사용자와 Snowflake 외부 사용자 를 모두 Clean Room에 참여하도록 초대할 수 있습니다.
Clean Rooms에서의 공급자 역할 에 대해 자세히 알아보십시오.
개발 중에 :ref:`공급자와 컨슈머 역할 모두에 동일한 계정을 사용<label-dcr_self_share_for_developers>`할 수 있습니다. 단, 클린룸 기능의 하위 세트만 포함합니다.
Clean Room에 참여하기¶
Clean Room을 만들고 구성한 후 공급자는 다른 계정의 사용자에게 Clean Room에 참여하도록 초대를 보냅니다. 이러한 초대된 사용자를 컨슈머 또는 때로는 공동 작업자 라고 합니다. Clean Rooms UI 를 통해 초대된 컨슈머는 Clean Room에 참여할 수 있는 초대장을 이메일로 받게 됩니다. Snowflake 사용자가 Clean Room에 초대받으려면 Clean Room 환경이 설치되어 있어야 하지만, Snowflake 외부 사용자 를 Clean Room에 초대할 수 있습니다. Snowflake 계정은 Clean Rooms 관리자가 허용 목록에 추가해야만 Clean Room 생성자가 해당 계정의 사용자를 초대할 수 있습니다.
(Clean Rooms UI 에서는 컨슈머가 Clean Room 초대를 수락할 때 ‘참여’와 ‘설치’를 모두 사용합니다. Clean Room은 말 그대로 컨슈머의 Clean Room 환경에 설치되어야 하기 때문입니다.)
Clean Room에 참여한 후, 컨슈머는 해당 Clean Room의 템플릿에 필요한 데이터를 가져오고(연결하고), 조인하거나 투영할 수 있는 열 등 데이터 액세스 방법을 지정하고, 템플릿별 필터 또는 기타 매개 변수를 제공한 다음, 템플릿을 실행합니다. 컨슈머는 원하는 경우 템플릿의 반복 실행을 지정할 수 있습니다. 결과는 브라우저에서 보거나 다운로드할 수 있습니다. 공급자가 활성화를 설정하고 컨슈머가 승인한 경우, 컨슈머는 승인된 위치(자신의 Snowflake 계정 또는 공급자가 지정한 서드 파티 활성화 커넥터)로 결과를 내보낼 수 있습니다.
클린룸으로 가져온 데이터는 공급자 또는 컨슈머 어느 쪽이든 직접 쿼리하거나 볼 수 없지만, 클린룸의 템플릿을 통해서만 액세스할 수 있습니다. 템플릿은 공급자 또는 컨슈머가 클린룸에 설치한 SQL 쿼리이며, 클린룸에서 사용하려면 상대방의 허가가 있어야 합니다.
또한 각 당사자는 조인, 투영 또는 내보낼 수 있는 열과 Clean Room에서 실행할 수 있는 템플릿을 포함하여 자체 데이터에 대한 액세스 규칙을 설정할 수 있습니다. 각 당사자는 언제든지 Clean Room에서 자신의 데이터를 삭제할 수 있습니다.
기본적으로 컨슈머만 클린룸에서 템플릿을 실행할 수 있지만, 공급자는 클린룸에서 지정된 템플릿을 실행하기 위해 컨슈머에게 권한을 요청할 수 있습니다.
자세히 알아보기
Clean Rooms는 차등 개인정보 보호 를 지원합니다. 차등 개인정보 보호는 공급자 또는 컨슈머가 활성화하고 구성할 수 있습니다.
Snowflake Data Clean Rooms에서의 컨슈머 역할 에 대해 자세히 알아보십시오.
Templates¶
Every clean room has one or more templates installed. A template is a JinjaSQL query that typically includes run-time parameters provided by the template runner. These parameters enable users to specify column or table names or WHERE clause filters. You cannot simply run arbitrary SQL queries in a clean room (unless a provider grants that ability); most clean room usage is limited to templates submitted by the provider or consumer and approved by the other party.
Snowflake provides a few stock templates for common use cases such as audience overlap and reach and frequency templates. You can also create custom templates to use in your clean room. Snowflake Data Clean Rooms supports any valid JinjaSQL template.
템플릿은 Clean Rooms UI 또는 코드에서 실행할 수 있습니다. 해당 Clean Room에서 활성화 가 허용되는 경우 템플릿 결과를 확인하거나 다운로드하거나 공급자, 컨슈머 또는 승인된 서드 파티와 공유할 수 있습니다.
자세히 알아보기
기본적으로 컨슈머만 Clean Room에서 템플릿을 실행할 수 있습니다. 그러나 공급자는 Clean Room에서 템플릿을 실행할 수 있는 권한을 컨슈머에게 요청할 수 있습니다.
템플릿 및 Clean Room 구성은 쿼리 결과로 수행할 수 있는 작업을 정의합니다. 쿼리 결과를 Clean Room 외부로 내보내는 경우 이를 활성화 라고 합니다. 결과는 공급자 또는 컨슈머의 Snowflake 계정 또는 Snowflake가 승인한 서드 파티 에 대해 활성화할 수 있습니다.
Clean Room 변형¶
위에서 설명한 것처럼 가장 일반적인 Clean Room은 공급자가 데이터를 가져와서 데이터에 대해 실행할 수 있는 하나 이상의 특정 쿼리와 그 결과를 공유할 수 있는 방법을 지정하고, 컨슈머는 자신의 데이터를 가져와서 결합된 데이터에 대해 허용된 쿼리를 실행하는 방식입니다. 그러나 공급자는 표준 Clean Room에 여러 가지 변형을 허용할 수 있습니다.
공급자가 컨슈머 데이터에 대해 자체 쿼리를 실행할 수 있도록 허용합니다. 기본적으로 컨슈머만 Clean Room에서 쿼리를 실행할 수 있습니다. Clean Room에 대해 활성화된 경우 공급자는 Clean Room에서 특정 쿼리를 실행할 수 있는 권한을 컨슈머에게 요청할 수 있습니다.
쿼리 결과를 쿼리를 실행하는 사람의 (활성화된) Snowflake 계정이나 Meta Ads Manager 또는 The Trade Desk와 같은 Snowflake 승인 서드 파티 계정으로 내보내도록 허용합니다. Clean Room 외부로 데이터를 내보내려면 항상 쿼리 대상 데이터를 공유한 모든 당사자의 승인을 받아야 합니다.
당사자 중 어느 쪽이든 실행하는 쿼리로 호출할 수 있는 :doc:`사용자 지정 Python 코드</user-guide/cleanrooms/demo-flows/custom-code>`를 포함할 수 있도록 허용합니다. 이 코드는 일반적으로 쿼리가 실행될 때 어떤 방식으로든 데이터를 필터링하거나 조작합니다. 파일 저장, 데이터 내보내기 또는 기타 작업 수행과 같은 외부 작업은 수행할 수 없습니다.
액세스 중인 모든 Clean Rooms 공급자의 승인을 받아 다른 Clean Rooms의 데이터에 액세스하도록 쿼리를 허용합니다.
공급자 및 컨슈머 정보¶
Clean room collaborators are classified as either a provider or a consumer for a given clean room. A provider is the account that creates a clean room; a consumer is an account that is shared a clean room. You cannot invite someone in the same account where you created a clean room to act as a consumer for that clean room. All users in the same Snowflake account have the same clean room role (provider or consumer) for the same clean rooms in that account.
The provider and consumer roles apply at the Snowflake account level, not the individual user level. That is, if
you create clean room cleanroom1 using Snowflake account ABC, then share cleanroom1 with account XYZ, all ABC users with access
to cleanroom1 are providers, and all XYZ users with access to cleanroom1 are consumers.
공급자인지 컨슈머인지 여부는 Snowflake 역할이나 기타 권한이 아니라 Clean Room을 만들었는지 또는 공유받았는지에 따라 결정됩니다.
다음은 공급자 및 컨슈머의 역할에 대한 자세한 내용입니다.
팁
때때로 공동 작업자 라는 단어는 컨슈머 또는 특정 Clean Room에 액세스할 수 있는 모든 사람을 의미하기도 합니다.
공급자¶
공급자 는 Clean Room을 만든 계정으로 정의됩니다. 해당 계정으로 Clean Room에 액세스하는 모든 사람은 해당 Clean Room의 공급자로 간주됩니다.
공급자는 다음과 같은 Clean Room 작업을 수행합니다.
Clean Room 생성, 공유 및 삭제
Clean Room을 컨슈머로 사용할 수 있는 사람 지정(컨슈머 초대)
Clean Room으로 데이터 가져오기
Clean Room에서 실행할 수 있는 템플릿 정의
컨슈머가 Clean Room에서 사용자 지정 템플릿을 실행할 수 있는지 여부 지정
Clean Room 공유에 컨슈머 초대
Clean Room에서 사용할 템플릿 지정 및 Clean Room에 대한 사용자 지정 템플릿 생성
컨슈머가 동의하는 경우 컨슈머 데이터에 대한 쿼리 실행
연결된 템플릿 허가
템플릿에서 사용할 Python 스크립트를 Clean Room에 로딩
이 Clean Room의 공급자 데이터를 컨슈머 쿼리에서 지정된 다른 Clean Rooms의 데이터와 함께 쿼리할 수 있도록 허용
Clean Room 또는 컨슈머에 대한 차등 개인정보 보호 활성화 또는 비활성화
Clean Room 버전 관리
자체 데이터에 대한 열 및 조인 정책 설정
컨슈머¶
컨슈머 는 공급자로부터 Clean Room에 참여(설치) 초대를 받은 계정으로 정의됩니다.
(Clean Room 구성에 따라) 컨슈머는 Clean Room 구성에 따라 다음과 같은 Clean Room 작업을 수행합니다.
계정에 대한 Clean Room 참여(설치)
Clean Room으로 데이터 가져오기
Clean Room에서 지원하는 모든 쿼리 실행
Clean Room에서 활성화한 대로 쿼리 결과 내보내기
Clean Room에서 자체 템플릿 사용 권한 요청
공급자가 Clean Room에서 템플릿을 실행할 수 있는지 여부 지정(기본적으로 컨슈머만 템플릿을 실행할 수 있음)
Clean Room 공급자가 컨슈머의 데이터에 대해 쿼리를 실행할 수 있도록 허용
영향을 받는 모든 Clean Rooms의 공급자가 동의하는 경우 여러 Clean Rooms의 데이터와 공급자 데이터를 아우르는 쿼리 실행
(공급자의 권한으로) Clean Room에 Python 스크립트 로딩
자체 데이터에 대한 열 및 조인 정책 설정
공급자 실행 쿼리에 대한 차등 개인정보 보호 설정
Ways to access Snowflake Data Clean Rooms¶
Snowflake Data Clean Rooms provide both a no-code browser-based application (the clean rooms UI) and an API to create and manage clean rooms. Currently the clean rooms UI and API are not exactly equivalent in capabilities. Here is a summary of the differences:
UI 전용 기능 |
API 전용 기능 |
|---|---|
|
|
Note that you can create a clean room using the clean rooms UI and then use or manage it in the API, and vice versa.
Clean Rooms UI¶
Snowflake Data Clean Rooms는 브라우저에서 관리하고 실행할 수 있습니다. Clean Rooms UI 를 사용하여 공급자 또는 컨슈머로서 Clean Rooms를 생성, 관리 및 사용하거나 관리 계정, 서드 파티 커넥터 및 UI 사용자를 위한 기능 등 다양한 계정 수준 기능을 구성할 수 있습니다.
The clean rooms UI is accessed at a separate URL from Snowsight. You can find the login URL here.
Permissions and access: You must be granted access to use the clean room UI by a clean room administrator. The clean rooms UI uses your Snowflake credentials.
Try out the clean rooms UI tutorial or read more about the clean rooms UI.
API¶
Snowflake provides a number of stored procedures to create, manage, and run clean rooms. These procedures can be called through Snowsight notebooks or worksheets or any interface where you can run stored procedures in your Snowflake account. The API does not enable clean room account administration; to administer a clean room account you must use the clean rooms UI.
Permissions and access: In order to use the API you must be granted access to use the SAMOOHA_APP_ROLE by the a clean rooms administrator for your Snowflake account.
Snowflake 계정에 Clean Rooms 환경이 설치되어 있습니까?¶
계정에 Clean Rooms UI 또는 API 가 설치되어 있는지 확인하는 방법은 다음과 같습니다.
Snowflake Data Clean Rooms가 설치되어 있는지 확인하려면 다음을 수행합니다.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Catalog » Apps » Installed Apps 를 선택합니다.
Look to see whether Snowflake Data Clean Rooms appears in your Installed Apps list.
Run
SHOW ROLES LIKE 'SAMOOHA_APP_ROLE';to see if the API is installed in your account. If the role appears, the clean rooms environment is probably installed.SELECT IS_ROLE_IN_SESSION('SAMOOHA_APP_ROLE');을 실행하여 API 에 액세스할 수 있는지 확인합니다.Run
SHOW GRANTS ON ROLE SAMOOHA_APP_ROLE;to see what roles can grant SAMOOHA_APP_ROLE, which is required to use the API.