Funções de colaborador no Collaboration Data Clean Rooms

Visão geral das funções de colaboração

Em um cenário de colaboração de sala limpa, os colaboradores têm uma ou mais das seguintes funções de colaboração. Nesse caso, uma função de colaboração é um conjunto de capacidades, 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 de colaboração. 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, designar funções de colaboração, 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 das contas B e C, conforme indicado na especificação da colaboração.

  • Executor de análise: executa modelos permitidos em ofertas de dados permitidas, conforme determinado pela especificação da colaboração. Por padrão, um executor de análise não é um provedor de dados para si, exceto se isso for definido na especificação de colaboração.

Um colaborador pode ter diversas funções em uma colaboração, e vários colaboradores podem ter a mesma funçã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.

O proprietário especifica todos os colaboradores e as respectivas funções no momento em que cria a colaboração. Os colaboradores e as respectivas funções não podem ser alterados após criar uma colaboração. Por isso, as seguintes atribuições de funções de colaboração são corrigidas após ela ser criada:

  • 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 poderá ser provedora de dados para a conta B.

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

Consultar a função

Chame GET_STATUS para ver suas funções em uma colaboração na coluna ROLES:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);

Se quiser ver mais detalhes sobre as funções, por exemplo, se você é um provedor de dados e quer ver com quem pode compartilhar dados, analise as especificações. 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;

Exemplo

O exemplo a seguir mostra uma 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: []

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

  • 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 de colaboração 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 vincular ofertas de dados após a criação de uma colaboração. Qualquer colaborador pode solicitar a adição de modelos após uma colaboração ser criada. O exemplo a seguir mostra como usar a API Collaboration para vincular recursos à colaboração anterior ela ser criada:

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.

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.