Collaboration Data Clean Room 中的协作者角色¶
概述¶
在 Clean Room 协作场景中,协作者充当以下一个或多个 角色。在这种情况下,角色 是一组功能,而不是 RBAC 角色:
所有者: 所有者定义、创建和拥有协作,并定义受邀协作者及其角色。所有者不会自动成为分析运行者或数据提供商,并且没有任何提升的运行权限。所有者的主要能力是创建 Clean Room、分配角色、确定谁可以与谁共享数据,以及删除 Clean Room。一个协作只能有一个所有者。
数据提供商: 向协作提供数据产品,例如表和视图,并指定哪些分析运行者可以使用这些产品。也就是说,如协作描述中所指定,账户 A 是账户 B 和 C 的数据提供商。
分析运行者: 根据协作定义的指定,在允许的数据产品上运行允许的模板。
一个协作者可以在一个协作中拥有多个角色,多个协作者可以在一个协作中拥有相同的角色(所有者角色除外,该角色仅分配给一个用户)。例如,协作的所有者也可以是数据提供商和分析运行者。
您可以通过调用 GET_STATUS,在 ROLES 中查看协作的可用角色,ROLES 列中列出了您的角色。例如,如果您是数据提供商,并且想查看可以与谁共享数据,请检查协作规范以查看您的角色详细信息。以下是加入协作后,如何在单次调用中查看协作规范:
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS() ->>
SELECT "COLLABORATION_SPEC" FROM $1
WHERE "SOURCE_NAME" = $collaboration_name;
所有者在创建协作时指定所有协作者及其角色。创建协作后,将无法更改协作者及其角色。因此,创建协作后,以下角色功能是固定的:
无法更改所有者。
无法添加或移除分析运行者。
无法更改每个分析运行者的数据提供商列表。如果创建协作时未将账户 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: []
之前的协作定义了以下协作者和角色:
alice是协作所有者、分析运行者,以及bob和她自己的数据提供商。alice是为账户corp1.acct123在协作中定义的别名。bob是分析运行者,也是alice的数据提供商,但 不是 他自己的数据提供商。bob为账户corp2.acctxyz在协作中定义的别名。
创建协作后,无法修改这些角色,也无法添加新的协作者。
数据提供商可以在创建协作后添加数据产品。创建协作后,任何协作者都可以添加模板。以下示例展示了如何使用 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可以使用template1运行分析,数据来自alice_data_1、alice_data_2和bob_data_1。bob可以使用来自alice_data_1的数据运行template2。