Criação, junção, remoção e desinstalação de clean rooms¶
Esta página mostra como criar uma clean room básica, ingressar em uma clean room para a qual você foi convidado, excluir uma clean room que você criou ou remover uma clean room na qual ingressou como consumidor.
Crie uma nova clean room¶
Você deve ter a permissão adequada em uma conta Snowflake para poder criar uma clean room. O criador da clean room é chamado de provedor.
A página Clean Rooms no aplicativo da web permite que você, como provedor, gerencie o ciclo de vida de uma sala limpa, incluindo a criação e o compartilhamento. Se você não tiver acesso ao aplicativo da Web de clean rooms, fale com um administrador de clean rooms para sua conta Snowflake.
Para criar e compartilhar uma clean room, faça o seguinte:
Na navegação da esquerda, selecione Clean Rooms.
Selecione + Clean Room. O processo de criação tem as seguintes etapas:
Use a etapa Add Data para nomear a sala limpa e selecionar as tabelas que serão compartilhadas com o consumidor. O nome pode ter no máximo 80 caracteres, sem distinção de maiúsculas e minúsculas, a–z, 0–9, espaços e sublinhados.
Use a etapa Specify Join Policies para habilitar os provedores de identidade habilitados pelo administrador de conta de clean rooms e selecione em quais colunas o consumidor pode ingressar.
Use a etapa Configure Analysis & Query para definir quais modelos estão disponíveis na clean room, definições de configuração específicas do modelo e recursos adicionais, como configurações de ativação e privacidade.
Use a etapa Share Clean Room para convidar os consumidores a usar a sala limpa para colaborar. Você também pode usar a opção Enable Run Analysis & Query para especificar quais colaboradores podem executar análises na sala limpa.
Para obter um passo a passo completo sobre a criação de uma nova clean room na UI de clean room, experimente o tutorial do aplicativo da Web de clean rooms
Para criar uma nova clean room em código, você deve ter a função SAMOOHA_APP_ROLE em sua conta.
USE WAREHOUSE app_wh;
USE ROLE samooha_app_role;
SET cleanroom_name = 'Developer Tutorial';
CALL samooha_by_snowflake_local_db.provider.cleanroom_init(
$cleanroom_name,
'INTERNAL'); -- Use EXTERNAL to share outside your Snowflake org
Depois de criar a clean room, você deve, no mínimo, executar as seguintes etapas para configurar uma clean room básica:
Importe dados para a clean room.
Defina políticas de associação para seus dados.
Especifique um ou mais modelos na clean room.
Defina políticas de coluna em seus dados para cada modelo.
Defina uma diretiva de lançamento padrão.
Especifique os consumidores com quem compartilhar a clean room.
Publique a clean room.
Para obter um passo a passo completo da criação de uma nova clean room em código, experimente o tutorial de código de clean rooms
Nota
Há um limite para o número de (clean rooms + colaboradores) que você pode criar em uma única conta. Se você criar muitas clean rooms de teste, talvez seja necessário excluir algumas para criar novas clean rooms. Se você precisar de mais clean rooms do que sua conta pode comportar, entre em contato com o suporte Snowflake.
Instale (ingresse em) a uma clean room¶
Se você tiver sido convidado a participar de uma clean room, receberá uma mensagem de e-mail com um link para instalar, configurar e executar a clean room na UI de clean room. Você pode seguir o link e usar a UI de clean room ou instalar e executar a clean room usando o código.
A página Clean Rooms no aplicativo da web permite que você, como consumidor, instale salas limpas que foram compartilhadas com você por um provedor. Para instalar uma clean room, faça o seguinte:
Na navegação da esquerda, selecione Clean Rooms.
Na aba Invited, encontre a sala limpa e selecione Join. Você deve receber um link direto para esta página em um e-mail de convite quando for adicionado como colaborador na UI de clean room.
Selecione as tabelas que você deseja usar para colaborar com os dados do provedor e, em seguida, selecione Next.
Selecione todos os provedores de identidade disponíveis no ambiente de Clean Room que você precisa usar nessa clean room.
Especifique quais colunas da sua tabela podem ser unidas e as colunas correspondentes dos dados do provedor.
Selecione Next.
Forneça configurações específicas do modelo para todos os modelos atribuídos à clean room.
Clique em Finish e, opcionalmente, execute um modelo imediatamente ou agende uma execução repetida desse modelo.
Se você foi convidado a participar de uma clean room como consumidor, poderá instalar, configurar e executar a clean room em código.
Para entrar em uma clean room em código, abra a conta que foi convidada a adicionar a clean room e execute o seguinte código:
USE WAREHOUSE app_wh;
USE ROLE samooha_app_role;
SET cleanroom_name = 'Developer Tutorial'; -- Get the actual clean room name and provider's account locator from the provider.
CALL samooha_by_snowflake_local_db.consumer.
install_cleanroom($cleanroom_name, <PROVIDER_LOCATOR>);
Depois que a clean room for instalada, você deve seguir as seguintes etapas, no mínimo, para poder executar modelos nessa clean room:
Vincule seus dados.
Defina políticas de junção e coluna em suas tabelas e para os modelos que deseja executar.
Execute o modelo.
Para obter um passo a passo completo sobre como ingressar em uma clean room em código, experimente o tutorial de código de clean rooms
Nota
Algumas clean rooms apresentam o seguinte erro quando você tenta ingressar nelas:
Application role `SAMOOHA_BY_SNOWFLAKE.DCR_DELEGATED_CLEANROOM_ROLE` does not exist
or not authorized.
Se encontrar esse erro, execute o código a seguir e tente entrar na clean room novamente:
USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.PREPARE_MOUNT_SCRIPT();
EXECUTE IMMEDIATE FROM @SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.MOUNT_CODE_STAGE/dcr_loader.sql;
Exclusão de uma sala limpa que você criou¶
Após a exclusão, uma clean room não estará mais visível aos usuários compartilhados na próxima vez que eles abrirem o aplicativo da Web da clean room. Se uma análise estiver em andamento quando uma sala limpa for excluída, ela poderá não ser concluída antes que a sala limpa seja excluída.
Para usar a UI de clean room para excluir uma clean room que você criou, faça o seguinte:
Na navegação da esquerda, selecione Clean Rooms.
Para excluir uma única sala limpa usando a API, chame provider.drop_cleanroom.
Para listar as salas limpas que você criou, chame provider.view_cleanrooms:
USE ROLE samooha_app_role; USE WAREHOUSE app_wh; -- List created and published clean rooms CALL samooha_by_snowflake_local_db.provider.view_cleanrooms(); SELECT CLEANROOM_ID AS "cleanroom_name" FROM TABLE(RESULT_SCAN(last_query_id())) WHERE STATE = 'CREATED' AND IS_PUBLISHED = TRUE; -- Specify a clean room name from the list and drop it CALL samooha_by_snowflake_local_db.provider.drop_cleanroom($cleanroom_name);
Para obter um passo a passo completo sobre como criar, configurar, usar e excluir uma clean room em código, experimente o tutorial de código de clean rooms
Desinstale (saia de) uma clean room¶
É possível desinstalar uma sala limpa que você instalou (em que ingressou) como consumidor. Isso desinstalará a sala limpa para todos os usuários da conta.
Na navegação da esquerda, selecione Clean Rooms.
Navegue até Clean Rooms » Joined
Para listar suas clean rooms instaladas (unidas)
Chame samooha_by_snowflake_local_db.consumer.view_cleanrooms e filtre as linhas para IS_ALREADY_INSTALLED = TRUE
. Isso mostra que as salas limpas estão instaladas em vez de simplesmente convites para ingressar.
USE ROLE samooha_app_role;
USE WAREHOUSE app_wh;
CALL samooha_by_snowflake_local_db.consumer.view_cleanrooms();
SELECT CLEANROOM_ID AS "cleanroom_name"
FROM TABLE(RESULT_SCAN(last_query_id()))
WHERE IS_ALREADY_INSTALLED = TRUE;
CALL samooha_by_snowflake_local_db.consumer.uninstall_cleanroom($cleanroom_name);
Para desinstalar (sair de) uma única clean room:
USE ROLE samooha_app_role;
USE WAREHOUSE app_wh;
CALL samooha_by_snowflake_local_db.consumer.
uninstall_cleanroom($cleanroom_name).
Para obter um passo a passo completo sobre como criar, configurar, usar e excluir uma clean room em código, experimente o tutorial de código de clean rooms
Adicione ou remova tabelas de uma clean room¶
Veja como adicionar ou remover (vincular ou desvincular) tabelas de uma clean room:
Ao usar a UI, somente tabelas ou exibições registradas por um administrador podem ser vinculadas a uma clean room. Se você não vir uma tabela ou exibição como disponível para uso em sua clean room, peça ao administrador para registrar o objeto em sua conta.
Como provedor, você escolhe quais tabelas serão vinculadas à clean room na etapa Add Data ao criar ou editar uma clean room.
Como consumidor, você escolhe as tabelas que serão vinculadas à clean room na etapa Add Data ao ingressar em uma clean room ou editá-la.
Depois que uma tabela é adicionada a uma clean room, ela não pode ser removida dessa clean room. Você pode, no entanto, remover os dados de toda a conta. Se precisar remover uma tabela ou exibição de uma clean room, fale com o administrador da clean room.
Ao usar a API de clean room, qualquer pessoa com privilégios OWNERSHIP em um objeto de dados pode registrá-lo na conta. Depois que um objeto é registrado, você pode vinculá-lo a qualquer clean room dessa conta. (Somente a conta que registrou um objeto pode vinculá-lo a uma clean room)
Você não pode desvincular uma tabela ou exibição depois de ela ter sido vinculada a uma clean room. No entanto, você pode cancelar o registro da tabela ou exibição de toda a conta, tornando-a indisponível para qualquer clean room dessa conta. Se você cancelar o registro de uma tabela, não se esqueça de alterar todas as políticas de linha ou coluna, ou modelos, que se referem a essa tabela.
Saiba como registrar ou cancelar o registro de objetos de dados para torná-los disponíveis para serem vinculados a uma clean room.