Snowflake Data Clean Rooms 개요¶
이 항목에서는 공동 작업의 구성 요소에 대한 개요를 제공하며 Snowflake Data Clean Room 공동 작업을 생성하거나 사용하는 기본 단계를 간략하게 설명합니다.
요구 사항¶
사용자는 :ref:`최신 버전의 Snowflake Data Clean Rooms로 업데이트 <label-dcr_updating_cleanrooms_environment>`해야 합니다.
공동 작업을 확인하거나 관리하려면 Data Clean Rooms Collaboration API에 액세스해야 합니다. 자세한 내용은 공동 작업, 리소스, 데이터에 대한 액세스 관리 섹션을 참조하십시오.
데이터 공급자는 Snowflake Enterprise Edition을 사용해야 합니다. 소유자는 Standard Edition을 사용할 수 있습니다.
Snowflake Standard Edition을 사용하는 경우 정책이 적용되는 데이터 클린룸을 통해 데이터를 공유할 수 없습니다. 그러나 다른 공동 작업자의 데이터 오퍼링에 액세스하거나 정책 또는 공유 없이 자체 데이터를 사용 할 수 있습니다.
다른 Snowflake 계정에 결과를 활성화 하려면 Snowflake Enterprise Edition을 사용해야 합니다.
평가판 계정은 |samooha-clean-room-plural|를 지원하지 않습니다.
공동 작업의 역할 및 리소스¶
공동 작업을 사용하는 방법을 이해하려면 먼저 공동 작업 역할과 공동 작업 리소스를 이해해야 합니다.
공동 작업 역할¶
공동 작업에서 사용할 수 있는 역할은 다음과 같습니다. 이러한 역할은 공동 작업자의 상위 수준 기능을 정의합니다.
소유자: 소유자는 공동 작업을 정의, 생성, 소유하고 초대되는 공동 작업자와 해당 공동 작업 역할을 정의합니다. 소유자는 자동으로 분석 실행자 또는 데이터 공급자가 되는 것이 아니며 상승된 실행 권한이 없습니다. 소유자의 주요 권한은 클린룸을 생성하고, 공동 작업 역할을 할당하고, 데이터를 공유할 수 있는 대상을 결정하고, 클린룸을 해체하는 것입니다. 협업에는 한 명의 소유자만 있을 수 있습니다.
데이터 공급자: 협업에 테이블 및 뷰와 같은 데이터 오퍼링을 제공하고 이를 사용할 수 있는 분석 실행자를 지정합니다. 즉, 계정 A는 공동 작업 사양에 지정된 대로 계정 B와 C에 대한 데이터 공급자입니다.
분석 실행자: 공동 작업 사양에 지정된 대로 허용된 데이터 오퍼링에서 허용된 템플릿을 실행합니다.
이러한 역할은 공동 작업을 생성하는 데 사용되는 공동 작업 사양에 지정됩니다.
공동 작업자에게 여러 공동 작업 역할을 할당할 수 있으며 (소유자 역할 제외), 하나의 공동 작업 역할을 여러 공동 작업자에게 할당할 수 있습니다.
자세히 알아보기
공동 작업 리소스¶
공동 작업에는 데이터 오퍼링, 템플릿, 코드 번들을 포함한 리소스가 포함됩니다. 모든 리소스 및 공동 작업 자체는 YAML 사양에 정의됩니다.
공동 작업은 다음 유형의 리소스를 지원합니다.
템플릿: 분석 실행자가 공동 작업에서 실행할 수 있는 JinjaSQL 쿼리입니다. 템플릿 유형에 따라 결과를 직접 전달하거나 지정된 공동 작업자의 Snowflake 계정으로 *활성화*(저장)할 수 있습니다. 분석 실행자는 런타임에 템플릿에 값을 전달하여 열 이름, WHERE 절 및 기타 쿼리 요소에 사용되는 템플릿 변수를 대체할 수 있습니다.
데이터 오퍼링: 데이터 공급자가 특정 분석 실행자와 공유하는 하나 이상의 테이블 패키지입니다. 데이터 오퍼링은 스냅샷이 아닌 소스 데이터의 라이브 뷰이며, 해당 사양은 노출되는 열 및 적용되는 정책을 제어합니다.
코드 번들: 템플릿에서 호출할 수 있는 사용자 지정 Python 함수 또는 프로시저 세트입니다. 코드 번들을 사용하면 머신 러닝 모델 또는 사용자 지정 변환과 같은 사용자 정의 논리로 템플릿 기능을 확장할 수 있습니다.
자세히 알아보기
클린룸 사양의 예제¶
다음은 두 명의 참여자 alice (계정 corp1.acct123``의 별칭) 및 ``bob (계정 ``corp2.acctxyz``의 별칭)이 포함된 기본 클린룸에 대한 YAML 사양입니다. 이 사양은 각 사용자에게 역할을 할당하고 두 데이터 오퍼링을 공동 작업에 연결합니다.
이 간단한 공동 작업에는 다음 리소스 및 공동 작업 역할이 포함됩니다.
alice는 공동 작업 소유자이자 분석 실행자이며 자신과bob의 데이터 공급자입니다.bob은 분석 실행자이자alice의 데이터 공급자이지만, 자신의 데이터 공급자는 아닙니다.alice는template1을 실행할 수 있고,bob은template2를 실행할 수 있습니다.
이 공동 작업에 대해 유의해야 할 기타 사항은 다음과 같습니다.
이 사양에서 공동 작업을 생성한 후에는 새 공동 작업자를 추가할 수 없습니다.
alice및bob모두 새 템플릿을 추가하고 다른 공동 작업자와 공유할 수 있습니다.역할은 변경할 수 없으므로
bob은 나중에 자신의 데이터 공급자가 될 수 없습니다.모든 데이터 공급자는 공동 작업을 생성한 후에도 데이터 오퍼링 목록에서 데이터 오퍼링을 추가하거나 제거할 수 있습니다.
기본 클린룸 공동 작업 워크플로¶
간단한 클린룸 공동 작업 시나리오는 다음과 같습니다.
공동 작업 소유자는 공동 작업의 초기 구성에 표시할 템플릿 또는 데이터 오퍼링을 선택적으로 등록합니다.
소유자는 선택적으로 공동 작업자에게 공동 작업의 초기 구성에 표시할 템플릿 또는 데이터 오퍼링을 등록하도록 요청합니다. 그런 다음 공동 작업자는 등록한 모든 항목의 리소스 IDs를 제공합니다.
그런 다음 소유자는 공동 작업을 생성합니다. 공동 작업 사양은 공동 작업자, 공동 작업자의 역할, 공동 작업의 초기 상태에서 사용할 수 있어야 하는 모든 리소스를 정의합니다.
이 시점에서 공동 작업자 및 그 공동 작업 역할 세트가 고정됩니다.
공동 작업에 다른 클라우드 호스팅 리전의 공동 작업자가 포함된 경우 해당 사용자는 계정에서 클라우드 간 자동 복제를 활성화 해야 공동 작업을 검토하고 공동 작업에 조인할 수 있습니다.
공동 작업을 생성하면 공동 작업 사양의 모든 공동 작업자가 공동 작업을 보고 조인할 수 있게 됩니다.
공동 작업자는 공동 작업을 검토하고 조인합니다.
그런 다음 공동 작업자는 자신의 역할에 따라 선택적으로 공동 작업에 리소스를 연결 할 수 있습니다. 데이터 공급자는 데이터 오퍼링을 분석 실행자에게 연결할 수 있으며, 모든 역할은 템플릿을 추가하고 다른 공동 작업자와 공유하도록 요청할 수 있습니다.
그런 다음 분석 실행자는 공동 작업에서 자신과 공유된 모든 데이터 오퍼링을 사용하여 공동 작업에서 자신과 공유된 모든 템플릿을 실행할 수 있습니다. 분석 실행자는 분석 비용을 부담합니다. 템플릿은 쿼리 결과를 응답을 통해 반환하거나 :ref:`호출자 또는 다른 공동 작업자에게 결과를 활성화 <label-dcr_collaboration_activating_results>`합니다.
자세히 알아보기
Data Clean Rooms 설명서의 Use cases 섹션에 있는 추가 예제를 참조하세요.
공동 작업 생성¶
적절한 권한이 있는 모든 Snowflake 데이터 클린룸 사용자는 클린룸을 생성할 수 있습니다. 클린룸은 공동 작업의 초기 구성에 있는 모든 리소스뿐 아니라 공동 작업 내 모든 공동 작업자 및 공동 작업자의 상대적 역할을 결정하는 YAML 사양을 통해 정의됩니다. (리소스 소유자는 조인해야 리소스를 사용할 수 있습니다.) 공동 작업을 생성한 후에도 리소스를 추가하거나 제거할 수 있지만, 공동 작업자 및 공동 작업자의 상대적 역할 목록은 고정됩니다.
공동 작업은 버전 관리되지 않습니다. 리소스가 추가되거나 제거되면 공동 작업이 변경될 수 있지만, 이러한 변경 사항은 추적되지 않습니다.
자세히 알아보기
공동 작업에 리소스 추가¶
공동 작업은 템플릿, 데이터 오퍼링, 코드 번들 등의 리소스에 액세스할 수 있습니다. 공동 작업에서 리소스를 사용하려면 먼저 공동 작업 클린룸 환경에 리소스를 등록 한 다음 특정 공동 작업에 연결 해야 합니다.
등록 은 계정 수준 작업입니다. 리소스를 클린룸 환경으로 패키징 및 복사하고 해당 리소스를 참조하는 데 사용되는 ID를 반환합니다. 리소스는 계정의 기본 레지스트리 또는 계정의 누군가가 생성한 사용자 지정 레지스트리인 레지스트리에 등록됩니다. 기본 레지스트리는 READ REGISTRY 권한이 있는 계정의 모든 공동 작업자가 사용할 수 있습니다. 사용자 지정 레지스트리는 레지스트리 생성자가 액세스를 제어할 수 있습니다.
연결 하면 등록된 리소스를 특정 공동 작업과 공유합니다. 더 구체적으로 설명하면, 특정 공동 작업 내 특정 공동 작업자 그룹과 등록된 리소스를 공유합니다. 공동 작업을 생성하는 데 사용되는 공동 작업 사양에 추가하여 리소스를 연결하거나 적절한 API 프로시저를 호출하여 공동 작업에 리소스를 연결할 수 있습니다.
리소스는 공동 작업 생성 시 또는 공동 작업 생성 후에 추가할 수 있습니다.
공동 작업과 달리, 리소스는 버전 관리됩니다. 최신 버전의 리소스는 이전 버전을 덮어쓰지 않습니다. 리소스를 최신 버전으로 바꾸려면 공동 작업도 업데이트하여 이전 버전을 제거하고(선택한 경우) 새 버전을 추가해야 합니다.
리소스를 등록하는 계정은 공동 작업자여야 하며, 공동 작업에 조인해야 등록한 리소스를 공동 작업에서 사용할 수 있습니다.
공동 작업에 조인¶
공동 작업은 공동 작업 사양에 나열된 모든 공동 작업자에게 표시됩니다. 생성자를 포함한 모든 공동 작업자는 공동 작업에 조인해야 합니다. 소유자를 제외한 모든 공동 작업자는 공동 작업에 조인해야 공동 작업을 검토할 수 있습니다. 공동 작업을 검토하면 공동 작업 사양이 초대된 당사자에게 노출됩니다. 공동 작업을 검토한 후 초대받은 사람은 공동 작업에 조인할 수 있습니다. 공동 작업에 제공하는 리소스를 사용하려면 먼저 공동 작업에 조인해야 합니다.
공동 작업에서 GET_STATUS를 호출하여 조인 상태(초대됨, 조인 중, 조인됨)를 확인할 수 있습니다. 리소스 연결, 공동 작업 조인, 결과 활성화와 같은 대부분의 공동 작업 변형 작업은 비동기식이거나 다른 공동 작업자에게 전파하는 데 시간이 걸릴 수 있으므로, 변경 상태를 확인하려면 적절한 프로시저를 호출해야 합니다.
분석 실행¶
공동 작업에서 분석 실행자로 나열된 공동 작업자는 공동 작업에서 사용할 수 있는 모든 데이터 오퍼링에 대해 쿼리를 실행할 수 있습니다.
공동 작업은 다음 유형의 분석을 지원합니다.
템플릿 기반 분석 쿼리: 분석 실행자는 공동 작업에서 자신에게 할당된 템플릿을 실행하고 결과를 동기적으로 확인할 수 있습니다.
활성화 분석: 데이터 오퍼링, 공동 작업 및 템플릿에서 허용하는 경우 분석 실행자는 지정된 공동 작업자의 Snowflake 계정에 결과를 *활성화*(저장)할 수 있습니다.
자유 형식 SQL 분석: 공동 작업 및 데이터 오퍼링에서 허용하는 경우 분석 실행자는 데이터 오퍼링의 데이터에 대해 SQL을 직접 실행할 수 있습니다. 자유 형식 SQL 쿼리 섹션을 참조하십시오.
자세히 알아보기
공동 작업 종료 또는 삭제¶
사용자는 언제든지 공동 작업을 종료할 수 있지만 공동 작업 소유자는 공동 작업을 종료할 수 없으며, 대신 모든 사용자로부터 공동 작업을 삭제합니다.
소유자 이외의 공동 작업자는 LEAVE를 호출하여 공동 작업을 종료합니다. 해당 공동 작업자가 제공한 모든 데이터 오퍼링은 공동 작업에서 제거됩니다. 공동 작업을 종료한 후에는 다시 참여할 수 없습니다.
공동 작업 소유자는 공동 작업을 종료할 수 없고 소유권을 이전할 수 없습니다. 공동 작업 소유자는 TEARDOWN을 호출하여 모든 공동 작업자의 공동 작업을 삭제할 수 있습니다.
공동 작업을 종료하거나 삭제하는 작업은 비동기식입니다. 상태를 모니터링하려면 GET_STATUS를 호출하고 GET_STATUS에 상태가 LOCAL_DROP_PENDING으로 표시되면 LEAVE 또는 TEARDOWN을 다시 호출해야 합니다.
공동 작업을 삭제해도 공동 작업에 연결된 리소스의 등록 상태에는 영향을 미치지 않습니다. 이러한 리소스는 계속 사용하거나 새로운 공동 작업에 연결할 수 있습니다.