Collaboration Data Clean Rooms의 공동 작업자 역할

개요

공동 작업자는 Clean room 협업 시나리오에서 다음 역할 중 하나 이상을 수행합니다. 이 경우 *역할*은 RBAC 역할이 아닌 일련의 권한입니다.

  • 소유자: 소유자는 협업을 정의, 생성, 소유하고 초대되는 공동 작업자와 해당 역할을 정의합니다. 소유자는 자동으로 분석 실행자 또는 데이터 공급자가 되는 것이 아니며 상승된 실행 권한이 없습니다. 소유자의 주요 권한은 Clean room을 생성하고, 역할을 할당하고, 데이터를 공유할 수 있는 대상을 결정하고, Clean room을 해체하는 것입니다. 협업에는 한 명의 소유자만 있을 수 있습니다.

  • 데이터 공급자: 협업에 테이블 및 뷰와 같은 데이터 오퍼링을 제공하고 이를 사용할 수 있는 분석 실행자를 지정합니다. 즉, 계정 A는 협업 설명에 지정된 대로 계정 B와 C에 대한 데이터 공급자입니다.

  • 분석 실행자: 협업 정의에 지정된 대로 허용된 데이터 오퍼링에서 허용된 템플릿을 실행합니다.

한 공동 작업자가 협업에서 여러 역할을 가질 수 있으며, 여러 공동 작업자가 협업에서 동일한 역할을 가질 수 있습니다(한 명의 사용자에게만 할당되는 소유자 역할 제외). 예를 들어, 협업 소유자는 데이터 공급자 및 분석 실행자일 수도 있습니다.

ROLES 열에서 협업에 사용할 수 있는 역할을 확인할 수 있으며, ``GET_STATUS``를 호출하면 ROLES 열에 해당 역할 목록이 표시됩니다. 예를 들어, 데이터 공급자인데 데이터를 공유할 수 있는 대상을 확인하려면 협업 사양을 검토하여 역할 세부 정보를 확인합니다. 협업에 조인한 후 단일 호출로 협업 사양을 확인하는 방법은 다음과 같습니다.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS() ->>
  SELECT "COLLABORATION_SPEC" FROM $1
    WHERE "SOURCE_NAME" = $collaboration_name;
Copy

소유자는 협업을 생성할 때 모든 공동 작업자와 해당 역할을 지정합니다. 협업이 생성된 후에는 공동 작업자와 해당 역할을 변경할 수 없습니다. 따라서 협업이 생성된 후에는 다음과 같은 역할 기능이 고정됩니다.

  • 소유자는 변경할 수 없습니다.

  • 분석 실행자는 추가하거나 제거할 수 없습니다.

  • 각 분석 실행자의 데이터 공급자 목록은 변경할 수 없습니다. 협업이 생성될 때 계정 A가 계정 B의 데이터 공급자로 정의되지 않은 경우 계정 A는 계정 B의 데이터 공급자가 될 수 없습니다.

그러나 공동 작업자는 협업이 생성된 후 리소스를 추가하거나 제거할 수 있습니다.

다음 예제에서는 역할을 정의하지만 리소스를 정의하지 않는 매우 기본적인 협업 정의를 보여줍니다. 리소스가 있거나 없는 협업을 생성하고 나중에 추가하거나 제거할 수 있습니다.

api_version: 2.0.0
spec_type: collaboration
name: basic_collaboration
owner: alice
collaborator_identifier_aliases:
  alice: corp1.acct123
  bob: corp2.acctxyz
analysis_runners:
  alice:
    data_providers:
      alice:
        data_offerings: []
      bob:
        data_offerings: []
  bob:
    data_providers:
      alice:
        data_offerings: []
Copy

이전 협업에서는 다음과 같은 공동 작업자 및 역할을 정의합니다.

  • ``alice``는 협업 소유자, 분석 실행자이자 ``bob``과 자신의 데이터 공급자입니다. ``alice``는 계정 ``corp1.acct123``에 대한 협업에 정의된 별칭입니다.

  • ``bob``은 분석 실행자이자 ``alice``의 데이터 공급자이지만 자신의 데이터 공급자는 아닙니다. ``bob``은 계정 ``corp2.acctxyz``에 대한 협업에 정의된 별칭입니다.

협업이 생성된 후에는 이러한 역할을 수정할 수 없으며 새 공동 작업자를 추가할 수 없습니다.

데이터 공급자는 협업이 생성된 후 데이터 오퍼링을 추가할 수 있습니다. 공동 작업자는 협업이 생성된 후 템플릿을 추가할 수 있습니다. 다음 예제에서는 협업 API를 사용하여 이전 협업이 생성된 후 리소스를 추가하는 방법을 보여줍니다.

api_version: 2.0.0
spec_type: collaboration
name: basic_collaboration
owner: alice
collaborator_identifier_aliases:
  alice: corp1.acct123
  bob: corp2.acctxyz
analysis_runners:
  alice:
    data_providers:
      alice:
        data_offerings:
        - id: alice_data_1
        - id: alice_data_2
      bob:
        data_offerings:
        - id: bob_data_1
    templates:
    - id: template1  # Alice can run template1 using alice_data_1, alice_data_2, or bob_data_1.
  bob:
    data_providers:
      alice:
        data_offerings:
        - id: alice_data_1
    templates:
    - id: template2  # Bob can run template2 using data from alice_data_1, provided by alice.
Copy

이제 수정된 협업에서는 다음 리소스와 기능을 지원합니다.

  • alice``는 ``alice_data_1, alice_data_2, ``bob_data_1``의 데이터를 사용하여 ``template1``로 분석을 실행할 수 있습니다.

  • ``bob``은 ``alice_data_1``의 데이터를 사용하여 ``template2``를 실행할 수 있습니다.