Análise executada pelo provedor¶
A configuração padrão da clean room permite que apenas o consumidor execute uma análise na clean room. No entanto, o provedor pode solicitar a permissão do consumidor para executar modelos usando dados do consumidor em uma clean room específica. A análise executada pelo provedor pode ser ativada e executada usando a UI ou o código de clean rooms.
Modelos compatíveis¶
A análise de execução do provedor é ativada no nível do modelo em uma determinada clean room. Os modelos a seguir oferecem suporte a análises executadas pelo provedor:
Sobreposição e análise de segmentação
Consulta SQL (somente na UI)
Modelos personalizados (somente na API)
Detalhes de faturamento¶
Os consumidores são cobrados por qualquer análise realizada pelo provedor em uma clean room. Para não incorrer em custos adicionais com as análises do provedor, o consumidor deve desinstalar a clean room.
Um consumidor pode estimar o número de créditos consumidos pelo provedor nos últimos N dias executando a seguinte consulta, especificando o número de dias anteriores como um número negativo:
-- Estimate the number of credits consumed in the past 5 days.
SELECT * FROM TABLE(SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.PRA_CONSUMPTION_UDTF(-5));
Escolha do tamanho de um warehouse¶
As clean rooms usam a lógica de dimensionamento automático com base no tamanho do conjunto de dados para escolher um warehouse para sua análise. No entanto, o provedor pode escolher explicitamente um tamanho de warehouse de uma lista de tamanhos e tipos permitidos pelo consumidor. O provedor escolhe o tamanho do warehouse da seguinte forma:
O consumidor chama
consumer.enable_templates_for_provider_run
, especificando quais tamanhos e tipos de warehouse podem ser usados com quais modelos.O provedor chama
provider.view_warehouse_sizes_for_template
para ver quais tamanhos e tipos de warehouse são permitidos para análises executadas pelo provedor.O provedor especifica a combinação de tamanho e tipo a ser usada em sua solicitação de análise (
provider.submit_analysis_request
).
Um provedor pode solicitar apenas os tamanhos e tipos de warehouse listados explicitamente pelo consumidor.
Consumidor
CALL samooha_by_snowflake_local_db.CONSUMER.enable_templates_for_provider_run(
$cleanroom_name,
[$template1, $template2],
TRUE,
{
$template1: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'LARGE']},
$template1: {'warehouse_type': 'SNOWPARK-OPTIMIZED', 'warehouse_size': ['MEDIUM', 'XLARGE']},
$template2: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'XLARGE']}
});
Provedor
CALL samooha_by_snowflake_local_db.PROVIDER.VIEW_WAREHOUSE_SIZES_FOR_TEMPLATE($cleanroom_name, $template_name, $consumer_account_loc);
CALL samooha_by_snowflake_local_db.provider.submit_analysis_request(
$cleanroom_name,
$consumer_locator_id,
$template1,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
object_construct(
'dimensions', ['c.REGION_CODE'],
'measure_type', ['AVG'],
'measure_column', ['c.DAYS_ACTIVE'],
'warehouse_type', 'STANDARD', -- If this type and size pair were not listed by view_warehouse_sizes_for_template,
'warehouse_size', 'LARGE' -- the request will automatically fail.
));
Implementação de análises administradas pelo provedor¶
Dica
Se o consumidor e provedor estiverem em regiões de nuvem diferentes, você precisará ativar o preenchimento automático entre nuvens em ambas as contas e para ambas as clean rooms.
A permissão para executar consultas em uma clean room é gerenciada na UI de clean rooms usando a opção Enable run analysis & query no painel Share clean room no fluxo de configuração da clean room. Para ativar ou desativar as análises executadas pelo provedor, o provedor da clean room ativa o botão de alternância ao lado de sua própria conta nesse painel. Essa alternância não pode ser alterada depois que uma clean room é criada; se você quiser alterar a permissão de uma conta específica para executar consultas em uma clean room publicada, deverá excluir a clean room e criar uma nova.
Aqui estão as etapas para permitir a análise executada pelo provedor em uma nova clean room:
O provedor cria e configura uma clean room, usando um dos modelos compatíveis.
Na etapa Share Clean Room da configuração da clean room, ative Enable run analysis & query ao lado de sua conta para permitir que você execute modelos que ofereçam suporte à análise do provedor nessa clean room.
Quando o consumidor entrar na clean room, ele será avisado antes de entrar que a análise executada pelo provedor está ativada para essa clean room.
O consumidor configura a clean room normalmente para todos os modelos na clean room, incluindo quaisquer modelos que suportem a análise do provedor. Se o consumidor não quiser permitir que um provedor execute um modelo específico, ele poderá omitir os detalhes necessários para esse modelo. Observe que os modelos que oferecem suporte à análise do provedor também oferecem suporte à análise do consumidor.
Depois que o consumidor tiver ingressado na clean room e realizado sua configuração, tanto o provedor quanto o consumidor poderão executar modelos na clean room por meio do fluxo de análise normal.
As permissões de análise executadas pelo provedor não podem ser revogadas após serem concedidas. A única maneira de interromper as análises executadas pelo provedor é o provedor ou o consumidor excluir a clean room.
O provedor pode ativar e desativar a análise executada pelo provedor e consumidor em uma clean room, fazendo as chamadas apropriadas para API. No entanto, sempre que uma alteração for feita em uma clean room existente para a configuração de análise executada pelo provedor, a clean room deverá ser reinstalada por todos os consumidores para que a alteração tenha efeito. Como pode ser difícil forçar todos os colaboradores a reinstalar uma clean room, é mais confiável para o provedor excluir uma clean room publicada e compartilhada ao alterar as permissões de análise e, em seguida, criar uma nova clean room com as permissões desejadas.
Este é o fluxo geral para a criação de uma nova clean room que permita análises executadas pelo provedor:
Provedor
Crie e configure sua clean room e seus dados e políticas da maneira padrão.
Adicione consumidores da maneira padrão.
Para habilitar a análise executada pelo provedor para contas específicas de consumidores na clean room, chame
provider.enable_provider_run_analysis
. Esse procedimento deve ser chamado após adicionar consumidores a uma clean room, mas antes que qualquer consumidor instale a clean room. Cada conta de consumidor deve aprovar essa solicitação separadamente, ou seus dados não poderão ser acessados para análises executadas pelo provedor nessa clean room.Publique a clean room.
Informe aos seus consumidores que a clean room está disponível, o nome da clean room e quais modelos você deseja executar na clean room.
Consumidor
Instale a clean room, conecte seus dados e defina políticas de junção e coluna da maneira padrão.
Permita a análise do provedor para modelos específicos na clean room, chamando
consumer.enable_templates_for_provider_run
. É importante que você chame esse procedimento após configurar as políticas de junção e coluna; se ativar esse recurso primeiro, o provedor poderá unir e projetar todas as suas colunas até que você defina essas políticas. Normalmente, o provedor informará que você precisa aprovar as análises executadas pelo provedor em uma clean room, mas também é possível verificar se esse recurso é solicitado chamandolibrary.is_provider_run_enabled
.Informe ao provedor que você instalou a clean room e aprovou as análises realizadas pelo provedor.
Provedor
Permita que suas análises acessem os dados do consumidor chamando
provider.mount_request_logs_for_all_consumers
após o consumidor ter instalado a clean room. Se uma nova conta de consumidor instalar a clean room posteriormente e você quiser usar os dados dela nesse modelo, deverá executar novamente esse procedimento para poder acessar esses dados.Execute a análise chamando
provider.submit_analysis_request
com o nome do modelo, os nomes das tabelas e os argumentos do modelo. Salve o ID de resposta, que é necessário para verificar o status e os resultados da análise.Para verificar o status da análise, chame
provider.check_analysis_status
. Quando o status é relatado comoCOMPLETED
, chameprovider.get_analysis_result
para obter os resultados da análise.
Dica
Se você alterar a configuração de análise executada pelo provedor para sua clean room, deverá desinstalar e reinstalar a clean room para que a alteração tenha efeito.
Instale e execute o exemplo de código
Você pode fazer o download e instalar um exemplo completo de uma clean room que permite e efetuar uma análise executada pelo provedor. Para executar esse exemplo, você precisa de duas contas Snowflake na mesma organização e região de hospedagem na nuvem com o ambiente de Clean Room instalado.
Instale o notebook em suas contas de provedor e consumidor. Para realizar o upload de um notebook, faça o seguinte:
Navegue até Projects » Notebooks no Snowsight.
Selecione + Notebook » Import .ipynb file.
Selecione o arquivo .ipynb que você baixou.
Dê ao arquivo o nome que desejar e escolha um banco de dados e um esquema.
Mantenha o warehouse padrão
APP_WH
.Selecione Create.
Abra o notebook na conta de provedor e preencha a parte do provedor para criar a clean room.
Abra o notebook na conta de consumidor e conclua a parte do consumidor para instalar e configurar a clean room e executar o modelo.
Dica
Os procedimentos a seguir gerenciam o lado que pode executar uma análise na clean room:
Análise executada pelo consumidor (permitido por padrão): todas as alterações são aplicadas imediatamente.
provider.enable_consumer_run_analysis
provider.disable_consumer_run_analysis
Análise executada pelo provedor (desativado por padrão): qualquer alteração exige a reinstalação pelo consumidor.
provider.enable_provider_run_analysis
(exige que o consumidor aprove chamando consumer.enable_templates_for_provider_run)provider.disable_provider_run_analysis