Clean Rooms 생성, 가입, 제거 및 제거하기¶
이 페이지에서는 기본 Clean Room을 만들거나, 초대를 받은 Clean Room에 가입하거나, 내가 만든 Clean Room을 삭제하거나, 컨슈머로 가입한 Clean Room을 삭제하는 방법을 안내합니다.
새 Clean Room 만들기¶
Clean Room을 만들려면 Snowflake 계정에 적절한 권한이 있어야 합니다. Clean Room 생성자를 공급자 라고 합니다.
웹 앱의 Clean Rooms 페이지에서 공급자는 클린룸 생성 및 공유를 포함한 클린룸의 라이프사이클을 관리할 수 있습니다. Clean Rooms 웹 앱에 액세스할 수 없는 경우, Snowflake 계정의 Clean Rooms 관리자에게 문의하십시오.
Clean Room을 만들고 공유하려면 다음을 수행하십시오.
왼쪽 탐색 모음에서 Clean Rooms 를 선택합니다.
+ Clean Room 을 선택합니다. 생성 프로세스는 다음과 같은 단계로 이루어집니다.
Add Data 단계를 사용하여 클린룸의 이름을 지정하고 컨슈머와 공유할 테이블을 선택합니다. 이름은 최대 80자, 대소문자 구분 없이 a-z, 0-9, 공백 및 밑줄을 사용할 수 있습니다.
Specify Join Policies 단계를 사용하여 Clean Rooms 계정 관리자가 사용하도록 설정한 ID 공급자를 활성화하고 컨슈머가 참여할 수 있는 열을 선택합니다.
Configure Analysis & Query 단계를 사용하여 Clean Room에서 사용할 수 있는 템플릿, 템플릿별 구성 설정, 활성화 및 개인정보 보호 설정과 같은 추가 기능을 정의할 수 있습니다.
Share Clean Room 단계를 사용하여 컨슈머를 클린룸으로 초대하여 협업을 진행합니다. 또한 Enable Run Analysis & Query 옵션을 사용하여 클린룸에서 분석을 실행할 수 있는 공동 작업자를 지정할 수도 있습니다.
Clean Rooms UI 에서 새 Clean Room을 만드는 전체 안내는 Clean Rooms 웹 앱 자습서 를 참조하십시오.
코드에서 새 Clean Room을 만들려면 계정에 SAMOOHA_APP_ROLE 역할이 부여되어야 합니다.
USE WAREHOUSE app_wh;
USE ROLE samooha_app_role;
SET cleanroom_name = 'Developer Tutorial';
CALL samooha_by_snowflake_local_db.provider.cleanroom_init(
$cleanroom_name,
'INTERNAL'); -- Use EXTERNAL to share outside your Snowflake org
Clean Room을 만든 후에는 최소한 다음 단계를 수행하여 기본 Clean Room을 구성해야 합니다.
Clean Room으로 데이터를 가져옵니다.
데이터에 대한 조인 정책을 설정합니다.
Clean Room에서 하나 이상의 템플릿을 지정합니다.
각 템플릿에 대해 데이터에 대한 열 정책을 설정합니다.
기본 릴리스 지시문을 설정합니다.
Clean Room을 공유할 컨슈머를 지정합니다.
Clean Room을 게시합니다.
코드에서 새 Clean Room을 만드는 방법에 대한 전체 안내는 Clean Rooms 코드 자습서 를 참조하십시오.
참고
하나의 계정에서 만들 수 있는 (Clean Rooms + 공동 작업자) 수에는 제한이 있습니다. 테스트 Clean Rooms를 너무 많이 만들면 새 Clean Rooms를 만들기 위해 몇 개를 삭제해야 할 수도 있습니다. 계정에 수용 가능한 인원보다 더 많은 Clean Room이 필요한 경우 Snowflake 지원팀 으로 문의하십시오.
Clean Room 설치하기(가입하기)¶
Clean Room에 초대받은 경우 Clean Room UI 에서 Clean Room을 설치, 구성 및 실행할 수 있는 링크가 포함된 이메일 메시지를 받게 됩니다. 링크를 따라 Clean Room UI 를 사용하거나 코드를 사용하여 Clean Room을 설치 및 실행할 수 있습니다.
웹 앱의 Clean Rooms 페이지에서 소비자인 사용자는 공급자가 공유한 클린룸을 설치할 수 있습니다. Clean Room을 설치하려면 다음을 수행하십시오.
왼쪽 탐색 모음에서 Clean Rooms 를 선택합니다.
Invited 탭에서 클린룸을 찾은 다음 Join 을 선택합니다. Clean Room UI 에 공동 작업자로 추가되면 초대 이메일에 이 페이지로 바로 연결되는 링크를 보내드립니다.
공급자의 데이터와 공동 작업할 테이블을 선택한 다음 Next 를 선택합니다.
이 Clean Room 환경에서 사용할 수 있는 ID 공급자를 선택하고 이 Clean Room에서 사용해야 합니다.
테이블에서 조인할 수 있는 열과 공급자의 데이터에서 해당 열을 지정합니다.
Next 를 선택합니다.
Clean Room에 할당된 모든 템플릿에 대해 템플릿별 설정을 제공합니다.
Finish 를 클릭하고 선택적으로 템플릿을 즉시 실행하거나 해당 템플릿의 반복 실행을 예약할 수 있습니다.
컨슈머로 Clean Room에 초대를 받은 경우 Clean Room을 코드에서 설치, 구성 및 실행할 수 있습니다.
코드에서 Clean Room에 참여하려면 Clean Room을 추가하도록 초대받은 계정을 열고 다음 코드를 실행합니다.
USE WAREHOUSE app_wh;
USE ROLE samooha_app_role;
SET cleanroom_name = 'Developer Tutorial'; -- Get the actual clean room name and provider's account locator from the provider.
CALL samooha_by_snowflake_local_db.consumer.
install_cleanroom($cleanroom_name, <PROVIDER_LOCATOR>);
Clean Room을 설치한 후에는 최소한 다음 단계를 수행해야 해당 Clean Room에서 템플릿을 실행할 수 있습니다.
데이터를 연결합니다.
테이블과 실행하려는 템플릿에 대한 조인 및 열 정책을 설정합니다.
템플릿을 실행합니다.
Clean Room에 코드로 참여하는 방법에 대한 전체 안내는 Clean Rooms 코드 자습서 를 참조하십시오.
참고
일부 Clean Rooms에 가입하려고 할 때 다음과 같은 오류가 발생합니다.
Application role `SAMOOHA_BY_SNOWFLAKE.DCR_DELEGATED_CLEANROOM_ROLE` does not exist
or not authorized.
이 오류가 발생하면 다음 코드를 실행하여 Clean Room에 다시 가입해 보십시오.
USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.PREPARE_MOUNT_SCRIPT();
EXECUTE IMMEDIATE FROM @SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.MOUNT_CODE_STAGE/dcr_loader.sql;
생성한 클린룸 삭제¶
삭제 후에는 다음 번에 Clean Room 웹 앱을 열면 공유 사용자에게 더 이상 Clean Room이 표시되지 않습니다. 클린룸이 삭제될 때 분석이 진행 중인 경우, 클린룸이 삭제되기 전에 분석이 완료되지 않을 수 있습니다.
Clean Room UI 를 사용하여 생성한 Clean Room을 삭제하려면 다음을 수행하십시오.
왼쪽 탐색 모음에서 Clean Rooms 를 선택합니다.
API 를 사용하여 단일 클린룸을 삭제 하려면 provider.drop_cleanroom 을 호출합니다.
생성한 클린룸 목록을 보려면 provider.view_cleanrooms 을 호출합니다.
USE ROLE samooha_app_role; USE WAREHOUSE app_wh; -- List created and published clean rooms CALL samooha_by_snowflake_local_db.provider.view_cleanrooms(); SELECT CLEANROOM_ID AS "cleanroom_name" FROM TABLE(RESULT_SCAN(last_query_id())) WHERE STATE = 'CREATED' AND IS_PUBLISHED = TRUE; -- Specify a clean room name from the list and drop it CALL samooha_by_snowflake_local_db.provider.drop_cleanroom($cleanroom_name);
코드에서 Clean Room을 생성, 구성, 사용 및 삭제하는 방법에 대한 전체 안내를 보려면 Clean Rooms 코드 자습서 를 참조하십시오.
Clean Room 제거(가입 취소)¶
컨슈머로 설치(조인)한 클린룸을 제거할 수 있습니다. 이렇게 하면 계정의 모든 사용자에 대한 클린룸이 제거됩니다.
왼쪽 탐색 모음에서 Clean Rooms 를 선택합니다.
Clean Rooms » Joined 로 이동합니다.
설치된(가입한) Clean Rooms를 나열하려면 다음을 수행하십시오.
samooha_by_snowflake_local_db.consumer.view_cleanrooms 를 호출하고 행을 IS_ALREADY_INSTALLED = TRUE
로 필터링합니다. 여기에는 단순히 조인 초대가 아닌 설치된 클린룸이 표시됩니다.
USE ROLE samooha_app_role;
USE WAREHOUSE app_wh;
CALL samooha_by_snowflake_local_db.consumer.view_cleanrooms();
SELECT CLEANROOM_ID AS "cleanroom_name"
FROM TABLE(RESULT_SCAN(last_query_id()))
WHERE IS_ALREADY_INSTALLED = TRUE;
CALL samooha_by_snowflake_local_db.consumer.uninstall_cleanroom($cleanroom_name);
한 Clean Room을 제거(가입 취소)하려면 다음을 수행하십시오.
USE ROLE samooha_app_role;
USE WAREHOUSE app_wh;
CALL samooha_by_snowflake_local_db.consumer.
uninstall_cleanroom($cleanroom_name).
코드에서 Clean Room을 생성, 구성, 사용 및 삭제하는 방법에 대한 전체 안내를 보려면 Clean Rooms 코드 자습서 를 참조하십시오.
Clean Room에서 테이블 추가 또는 제거하기¶
Clean Room에서 테이블을 추가하거나 제거하는(연결 또는 연결 해제) 방법은 다음과 같습니다.
UI 를 사용하는 경우 관리자가 등록한 테이블 또는 뷰만 Clean Room에 연결할 수 있습니다. Clean Room에서 사용할 수 있는 테이블이나 뷰가 보이지 않는다면 계정 관리자에게 해당 오브젝트를 계정에 등록해 달라고 요청하십시오.
공급자는 Clean Room을 만들거나 편집할 때 Add Data 단계에서 Clean Room에 연결할 테이블을 선택합니다.
컨슈머는 Clean Room에 가입하거나 편집할 때 Add Data 단계에서 Clean Room에 연결할 테이블을 선택합니다.
테이블이 Clean Room에 추가되면 해당 Clean Room에서 테이블을 제거할 수 없습니다. 하지만 전체 계정에서 데이터를 삭제할 수는 있습니다. Clean Room에서 테이블이나 뷰를 제거해야 하는 경우 Clean Room 관리자에게 문의하십시오.
Clean Room API 를 사용할 때 데이터 오브젝트에 대한 OWNERSHIP 권한이 있는 사람은 누구나 계정에 등록할 수 있습니다. 오브젝트를 등록한 후에는 해당 계정의 모든 Clean Room에 연결할 수 있습니다. (오브젝트를 등록한 계정만 해당 오브젝트를 Clean Room에 연결할 수 있습니다.)
테이블이나 뷰가 Clean Room에 연결된 후에는 링크를 해제할 수 없습니다. 그러나 전체 계정에 대한 테이블 또는 뷰를 등록 취소하여 해당 계정의 모든 Clean Room에서 사용할 수 없게 만들 수 있습니다. 테이블을 등록 취소하는 경우 해당 테이블을 참조하는 행 또는 열 정책 또는 템플릿을 변경해야 합니다.
데이터 오브젝트를 등록 또는 등록 해제하는 방법을 알아보고 Clean Room에 연결할 수 있도록 가용성을 확보하십시오.