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.
Nota
O provedor tem duas maneiras disponíveis de executar uma análise na sala limpa: como um modelo padrão, que retorna resultados a cada consulta, e como uma ativação, que salva os resultados em um arquivo na conta do provedor. Se você precisa persistir os dados para si mesmo ou para exportar a terceiros, ou refinar os resultados para um grande conjunto de dados, geralmente é melhor ativar os resultados em sua conta. Se você quer executar novamente um modelo com novos parâmetros ou dados, sem a necessidade de persistir os resultados, o uso das consultas padrão executadas pelo provedor descritas aqui é o caminho certo.
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¶
As análises executadas pelo provedor são feitas na conta do consumidor, e os consumidores são cobrados por uma análise executada pelo provedor. Para parar de gerar custos adicionais das análises de provedor, o consumidor deve desinstalar a sala limpa.
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.set_provider_run_configuration
especificando os tamanhos e tipos de warehouse que podem ser usados para um determinado modelo quando executado pelo provedor.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¶
Importante
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
.As análises executadas pelo provedor são feitas na conta do consumidor e cobradas do consumidor. Se você quer limitar o tipo ou os tamanhos de warehouse disponíveis para um provedor ao executar um modelo, chame
consumer.set_provider_run_configuration
.Informe ao provedor que você instalou a clean room e aprovou as análises realizadas pelo provedor.
Provedor
Depois que o consumidor instalar a sala limpa, você deverá permitir que suas análises acessem os dados do consumidor habilitando o compartilhamento de dados do consumidor com a conta do provedor. O processo para isso depende se o provedor e o consumidor estão na mesma região de nuvem ou em regiões diferentes:
Se o provedor e o consumidor estiverem na mesma região de nuvem, o provedor chamará
provider.mount_request_logs_for_all_consumers
. Se uma nova conta de consumidor instalar a sala limpa mais tarde e você quiser usar os respectivos dados neste modelo, será necessário executar novamente esse procedimento para acessar os dados.Se o provedor e o consumidor estiverem em regiões de nuvem diferentes, eles deverão habilitar o preenchimento automático entre nuvens.
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