콜라보레이션 데이터 클린룸의 콜라보레이터 역할

콜라보레이션 데이터 클린룸의 콜라보레이터 역할

클린룸 콜라보레이션 시나리오에서 콜라보레이터는 하나 이상의 콜라보레이션 역할을 가져요. 여기서 콜라보레이션 역할은 RBAC 역할이 아니라 능력의 집합이에요.

출처: Collaborator roles in Collaboration Data Clean Rooms

본문

기능 — 일반 공개(Generally Available)

현재 지원 리전: 이 리전들에서 사용할 수 있어요.

정부 및 VPS 배포에서는 사용할 수 없어요.

콜라보레이션 역할 개요

클린룸 콜라보레이션 시나리오에서 콜라보레이터는 다음 콜라보레이션 역할 중 하나 이상을 가져요. 이때 콜라보레이션 역할은 능력의 집합이지 RBAC 역할이 아니에요:

  • 소유자(Owner): 소유자는 콜라보레이션을 정의·생성·소유하고, 어떤 콜라보레이터를 초대할지와 그들의 콜라보레이션 역할을 정의해요. 소유자는 자동으로 분석 실행자나 데이터 제공자가 되지 않으며, 상승된 실행 권한도 없어요. 소유자의 주요 능력은 클린룸 생성, 콜라보레이션 역할 배정, 누가 누구와 데이터를 공유할지 결정, 클린룸 해체예요. 콜라보레이션은 소유자가 한 명뿐이에요.
  • 데이터 제공자(Data provider): 테이블과 뷰 같은 데이터 오퍼링을 콜라보레이션에 제공하고, 어떤 분석 실행자가 이를 사용할 수 있는지 지정해요. 즉 콜라보레이션 스펙에 지정된 대로 계정 A는 계정 B와 C의 데이터 제공자가 돼요.
  • 분석 실행자(Analysis runner): 콜라보레이션 스펙이 허용하는 데이터 오퍼링에서 허용된 템플릿을 실행해요. 분석 실행자는 콜라보레이션 스펙에 명시되지 않는 한 기본적으로 자신의 데이터 제공자가 아니에요.

한 콜라보레이터는 콜라보레이션에서 여러 콜라보레이션 역할을 맡을 수 있고, 여러 콜라보레이터가 같은 콜라보레이션 역할을 가질 수 있어요(한 명의 사용자에게만 배정되는 소유자 역할 제외). 예를 들어 콜라보레이션 소유자는 데이터 제공자이자 분석 실행자가 될 수도 있어요.

소유자는 콜라보레이션을 만들 때 초기 콜라보레이터와 그들의 콜라보레이션 역할을 지정해요. 콜라보레이션이 만들어진 후 소유자는 EDIT을 호출해(이것은 미리보기 기능) 콜라보레이터를 추가·제거하고 콜라보레이션 역할을 변경하도록 요청할 수 있어요. 이 변경은 영향받는 콜라보레이터가 승인한 후에만 적용돼요. 예를 들어 소유자는 새 분석 실행자를 추가하거나, 기존 분석 실행자를 위한 데이터 제공자를 추가하거나, 데이터 제공자를 분석 실행자로 업데이트하도록 요청할 수 있어요. 소유자 콜라보레이션 역할 자체는 변경하거나 다른 콜라보레이터에게 이전할 수 없어요.

또한 콜라보레이터는 콜라보레이션 생성 후 리소스를 링크하거나 제거할 수 있어요.

자신의 역할 보기

GET_STATUS를 호출해 콜라보레이션에서 자신의 역할을 ROLES 컬럼에서 확인할 수 있어요:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);

자신의 역할에 대한 더 자세한 내용을 보려면(예: 데이터 제공자라면 누구와 데이터를 공유할 수 있는지) 스펙을 살펴봐야 해요. 콜라보레이션에 참여한 뒤 콜라보레이션 스펙을 한 번의 호출로 보는 방법은 다음과 같아요:

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

예시

다음 예시는 콜라보레이션 역할을 정의하지만 리소스는 포함하지 않은 매우 기본적인 콜라보레이션을 보여줘요. 리소스 유무와 관계없이 콜라보레이션을 만들 수 있고, 나중에 추가하거나 제거할 수 있어요.

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: []

위 콜라보레이션은 다음과 같은 콜라보레이터와 콜라보레이션 역할을 정의해요:

  • alice는 콜라보레이션 소유자, 분석 실행자, 그리고 bob과 자신의 데이터 제공자예요. alice는 계정 corp1.acct123의 콜라보레이션에 정의된 별칭이에요.
  • bob은 분석 실행자이자 alice의 데이터 제공자지만, 자신에게는 데이터 제공자가 아니에요. bob은 계정 corp2.acctxyz의 콜라보레이션에 정의된 별칭이에요.

콜라보레이션이 만들어진 후 소유자는 EDIT을 호출해(이것은 미리보기 기능) 콜라보레이터를 추가·제거하고 콜라보레이션 역할을 변경하도록 요청할 수 있어요. 단, 영향받는 콜라보레이터의 승인이 필요해요.

데이터 제공자는 콜라보레이션 생성 후 데이터 오퍼링을 링크할 수 있어요. 어떤 콜라보레이터든 콜라보레이션 생성 후 템플릿을 추가하도록 요청할 수 있어요. 다음 예시는 Collaboration 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.

수정된 콜라보레이션은 이제 다음 리소스와 기능을 지원해요:

  • alice는 alice_data_1, alice_data_2, bob_data_1의 데이터로 template1을 사용해 분석을 실행할 수 있어요.
  • bob은 alice_data_1의 데이터로 template2를 실행할 수 있어요.

더 알아보기