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 e limitação do tamanho e tipo de warehouse¶
As salas limpas usam lógica de dimensionamento automático com base no tamanho dos conjuntos de dados para escolher um warehouse para sua análise. No entanto, o provedor pode escolher explicitamente o tamanho de um warehouse usando a API.
Um consumidor pode limitar o tamanho e o tipo de warehouses disponíveis para o provedor ao executar um determinado modelo. A limitação do tamanho do warehouse pode ser feita apenas na API, não na UI.
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.
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 sala limpa, o provedor ativa Enable run analysis & query ao lado da própria conta para permitir a execução de todos os modelos nesta sala limpa compatíveis com a análise do provedor.
Essa configuração não pode ser alterada após a criação de uma sala limpa; se você quiser alterar a permissão de uma conta específica para executar consultas em uma sala limpa publicada, deverá excluir a sala limpa e criar uma nova.
O consumidor ingressa e configura a sala limpa normalmente para todos os modelos nela contidos, incluindo quaisquer modelos compatíveis com a análise do provedor. Se o consumidor não quiser permitir que um provedor execute um modelo específico, poderá omitir os detalhes necessários para esse modelo.
Quando o consumidor ingressa na sala limpa, ele é avisado antes de ingressar que a análise executada pelo provedor está ativada para essa sala limpa.
O consumidor pode executar consultas assim que entrar na sala limpa, mas há um atraso de até 30 minutos antes que o provedor possa executar o modelo. Esse atraso de configuração é apenas para a etapa inicial de ingresso; se o provedor adicionar posteriormente outros modelos executados pelo provedor, ele poderá executá-los assim que o consumidor configurar a sala limpa para esse modelo.
A sala limpa agora está disponível para análises de execução pelo provedor (após o atraso de configuração inicial) e execução pelo consumidor (sem atraso).
O consumidor é cobrado por todas as análises nesta sala limpa, sejam elas executadas pelo provedor ou pelo consumidor.
O provedor pode ativar e desativar as análises executadas pelo provedor e pelo consumidor em uma sala limpa, fazendo as chamadas de API apropriadas.
No entanto, sempre que o provedor alterar a configuração de análise executada pelo provedor, a sala limpa deverá ser reinstalada por todos os consumidores para que a alteração entre em vigor. Como pode ser difícil forçar todos os colaboradores a reinstalar uma sala limpa, é mais confiável para o provedor excluir uma sala limpa publicada e compartilhada ao alterar as permissões de análise e, em seguida, criar uma nova com as permissões desejadas.
Importante
Todos os modelos executados pelo provedor exigem nomes de coluna ou aliases para todas as colunas geradas nos resultados. Se uma coluna for uma função de agregação (SUM(*)) ou chamar uma função personalizada (cleanroom.my_function(p.hashed_email)), você deverá fornecer explicitamente um alias para o nome da coluna: SELECT SUM(*) AS TOTAL FROM mydb.mysch.T;
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.
Ative a análise executada pelo provedor para contas de consumidores específicas na sala limpa chamando
provider.enable_provider_run_analysis. Chame esse procedimento somente após adicionar consumidores a uma sala limpa, mas antes que qualquer consumidor instale a sala limpa. Cada conta de consumidor deve aprovar essa solicitação separadamente, ou os dados não estarão acessíveis para análises executadas pelo provedor nesta sala limpa.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 sala limpa e vincule seus dados da maneira padrão.
Defina políticas de junção e coluna em seus dados. Se você não definir as duas políticas em uma sala limpa, o provedor não poderá executar um modelo usando seus dados. Isso é diferente das análises executadas pelo consumidor, em que a ausência total de uma política significa que todas as colunas são aprovadas para esse tipo de política.
Permita a análise do provedor para modelos específicos na sala limpa chamando
consumer.enable_templates_for_provider_run(para vários modelos) ouconsumer.approve_template(para um modelo).
Se o provedor alterar um modelo após o consumidor aprová-lo, o consumidor deverá aprová-lo novamente. Até que o modelo seja reaprovado, a versão antiga em cache do modelo aprovado será executada pelo provedor.
(Opcional) As análises executadas pelo provedor ocorrem na conta do consumidor e são cobradas dele. 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_requestcom o nome do modelo, os nomes das tabelas e os argumentos do modelo. Opcionalmente, você pode especificar um tamanho e tipo de warehouse, conforme mostrado posteriormente neste tópico.Salve o ID da resposta, 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_resultpara 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.
Especificação de limites de warehouse e escolha de um tipo de warehouse
Veja como um consumidor define uma limitação de tamanho e tipo de warehouse e como um provedor escolhe um warehouse ao executar uma análise:
O consumidor chama
consumer.set_provider_run_configuratione especifica quais tamanhos e tipos de warehouse um provedor pode usar para um modelo especificado.CALL samooha_by_snowflake_local_db.consumer.set_provider_run_configuration( $cleanroom_name, { $template1: { 'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'LARGE']} });
O provedor chama
provider.view_warehouse_sizes_for_templatepara ver quais tamanhos e tipos de warehouse são permitidos para análises executadas pelo provedor naquele modelo.CALL samooha_by_snowflake_local_db.provider.view_warehouse_sizes_for_template( $cleanroom_name, $template_name, $consumer_account_loc );
O provedor especifica qual tamanho e tipo de warehouse usar na solicitação de execução de análise. Um provedor pode especificar apenas tamanhos e tipos de warehouse que o consumidor permite para aquele modelo.
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', -- Any other value would cause the request to fail. 'warehouse_size', 'LARGE' -- Only MEDIUM and LARGE supported. ) );
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 nas suas contas de provedor e consumidor.
Para carregar um notebook, faça o seguinte:
No menu de navegação, selecione Projects » Notebooks.
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 (permitida por padrão): as alterações são aplicadas imediatamente.
provider.enable_consumer_run_analysis
provider.disable_consumer_run_analysis
Análise executada pelo provedor (desabilitada por padrão): as alterações exigem 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