Funções de colaborador no Collaboration Data Clean Rooms

Visão geral

Os colaboradores atuam como uma ou mais das funções a seguir em um cenário de colaboração de sala limpa. Nesse caso, uma função é um conjunto de recursos, não uma função RBAC:

  • Proprietário: o proprietário define, cria e detém a propriedade da colaboração, além de definir quais colaboradores são convidados e as funções deles. Um proprietário não é automaticamente um executor de análise ou provedor de dados e não tem nenhum privilégio de execução elevado. As principais habilidades do proprietário são criar a sala limpa, atribuir funções, determinar quem pode compartilhar dados com quem e desinstalar a sala limpa. Uma colaboração pode ter apenas um proprietário.

  • Provedor de dados: apresenta ofertas de dados, como tabelas e exibições, para uma colaboração e especifica quais executores de análise podem usá-las. Isto é, a conta A é provedora de dados para as contas B e C, conforme especificado na descrição da colaboração.

  • Executor de análise: executa modelos permitidos em ofertas de dados permitidas, conforme especificado pela definição da colaboração.

Um colaborador pode ter diversas funções em uma colaboração, e vários colaboradores podem ter a mesma função em uma colaboração (exceto a função de proprietário, que é atribuída somente a um usuário). Por exemplo, o proprietário de uma colaboração também pode ser provedor de dados e executor de análise.

Você pode ver suas funções disponíveis para uma colaboração na coluna ROLES chamando GET_STATUS, que lista suas funções na coluna ROLES. Por exemplo, se você for provedor de dados e quiser ver com quem pode compartilhar dados, examine as especificações da sua colaboração para ver os detalhes da sua função. Veja abaixo como verificar a especificação da colaboração em uma única chamada depois de ingressar em uma colaboração:

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

O proprietário especifica todos os colaboradores e as respectivas funções quando criam a colaboração. Os colaboradores e as respectivas funções não podem ser alterados após a criação de uma colaboração. Como consequência, os seguintes recursos de função são corrigidos após a criação de uma colaboração:

  • O proprietário não pode ser alterado.

  • Os executores de análise não podem ser adicionados ou removidos.

  • A lista de provedores de dados para cada executor de análise não pode ser alterada. Se a conta A não foi definida como provedora de dados para a conta B quando a colaboração foi criada, a conta A nunca pode ser provedora de dados para a conta B.

No entanto, os colaboradores podem adicionar ou remover recursos após a criação de uma colaboração.

Exemplo

O exemplo a seguir mostra uma definição de colaboração muito básica que define funções, mas não define recursos. Você pode criar uma colaboração com ou sem recursos, e adicioná-los ou removê-los posteriormente.

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

A colaboração anterior define os seguintes colaboradores e funções:

  • alice é proprietária da colaboração, executora de análise e provedora de dados para bob e ela mesma. alice é o alias definido na colaboração para a conta corp1.acct123.

  • bob é executor de análise e provedor de dados para alice, mas não para ele mesmo. bob é o alias definido na colaboração para a conta corp2.acctxyz.

Essas funções não podem ser modificadas, e novos colaboradores não podem ser adicionados após a criação da colaboração.

Os provedores de dados podem adicionar ofertas de dados após a criação de uma colaboração. Qualquer colaborador pode adicionar modelos após a criação de uma colaboração. O exemplo a seguir mostra como você pode usar a API Collaboration para adicionar recursos à colaboração anterior após sua criação:

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

A colaboração modificada agora oferece suporte aos seguintes recursos e funcionalidades:

  • alice pode executar análises usando template1 com dados de alice_data_1, alice_data_2 e bob_data_1.

  • bob pode executar template2 usando dados de alice_data_1.