Análises executadas pelo provedor¶
Visão geral¶
A configuração padrão da sala limpa permite que apenas o consumidor execute uma análise na sala limpa. No entanto, o provedor pode solicitar permissão do consumidor para executar um modelo específico em uma sala limpa específica usando dados do consumidor. A análise executada pelo provedor pode ser ativada e executada usando código ou a UI do Clean Rooms.
O diagrama a seguir mostra o fluxo de dados e os principais componentes em uma análise básica executada pelo provedor:
Em uma análise básica executada pelo provedor, o consumidor e o provedor vinculam os dados à sala limpa. Os dados de origem são vinculados à sala limpa como exibições privadas na conta em que os dados residem.
Quando o provedor executa uma análise, os dados dele são compartilhados com o app da sala limpa na conta do consumidor. A análise é executada na conta do consumidor.
Os resultados criptografados são temporariamente gravados no DB e na conta do consumidor.
Os resultados criptografados são copiados para o compartilhamento de resultados da análise na conta do provedor (também chamado de compartilhamento de governança) e descriptografados. Como a análise é executada na conta do consumidor, sua cobrança é feita ao consumidor.
Para obter mais informações, consulte Snowflake Data Clean Rooms: objetos instalados.
Modelos que são compatíveis com análises executadas pelo provedor¶
Os seguintes modelos são compatíveis com análises executadas pelo provedor:
Audience Overlap & Segmentation
SQL Query (UI somente)
Modelos personalizados (somente na API)
Detalhes de faturamento e custo¶
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 das análises executadas pelo provedor, o consumidor deve desinstalar a sala limpa.
O consumidor pode estimar o número de créditos consumidos pelo provedor nos últimos N dias executando a seguinte consulta. Especifique 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));
Quando um provedor executa uma análise na UI do Clean Rooms, a sala limpa usa lógica de dimensionamento automático com base nos tamanhos dos conjuntos de dados para escolher um warehouse para a análise do provedor.
Quando um provedor cria e executa uma sala limpa usando a API, ele pode escolher explicitamente um tamanho e um tipo de warehouse a partir de um conjunto de valores permitidos especificados pelo consumidor.
Notas gerais¶
Os provedores podem ativar os resultados para sua própria conta usando a UI ou a API ou para provedores terceirizados se usarem a UI. Para obter informações sobre como habilitar a ativação e visualizar os resultados, consulte Ativação de resultados de consulta.
Se o consumidor e o provedor estiverem em regiões de nuvem diferentes, o preenchimento automático entre nuvens deve ser habilitado em ambas as contas e para ambas as salas limpas.
Observe que as consultas entre nuvens executadas pelo provedor podem levar algum tempo para serem executadas, pois os dados de origem do provedor devem ser replicados do provedor para o consumidor e os resultados da consulta do consumidor para o provedor, em todas as regiões da nuvem.
Todos os modelos executados pelo provedor exigem nomes de coluna ou aliases para todas as colunas geradas nos resultados. Se uma coluna for agregada (por exemplo,
SUM(col1)) ou chamar uma função personalizada (por exemplo,cleanroom.my_function(p.hashed_email)), o modelo deverá especificar explicitamente um alias de nome de coluna, conforme mostrado aqui:SELECT SUM(col1) AS TOTAL FROM my_db.my_sch.T; -- Correct SELECT SUM(col1) FROM my_db.my_sch.T; -- Error: aggregated column needs an explicit alias.
Análises executadas pelo provedor na UI¶
Veja como habilitar a análise executada pelo provedor em uma nova sala limpa ao usar a UI do Clean Rooms:
O provedor :ref:` cria e configura uma sala limpa <label_dcr_create_cleanroom>`, usando um dos :ref:` modelos compatíveis <label-dcr_templates_that_support_provider_analysis>`. Configure a sala limpa até a etapa Share Clean Room.
Na etapa Share Clean Room da configuração da sala limpa, o provedor seleciona Enable run analysis & query ao lado da própria conta para habilitar a execução de todos os modelos nesta sala limpa que são compatíveis com análise executada pelo 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 :ref:` ingressa e configura a sala limpa <label-cleanrooms_web_app_install>` 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 ocorre apenas durante a etapa inicial de entrada; 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.
Após a conclusão da etapa de junção, a sala limpa estará disponível para análises executadas pelo provedor e análises executadas pelo consumidor.
Importante:
Os provedores devem aguardar cerca de 10 minutos após o consumidor instalar a sala limpa antes de poderem executar uma análise. O atraso se deve à configuração adicional em segundo plano necessária para análises executadas pelo provedor.
O consumidor é cobrado por todas as análises nesta sala limpa, sejam elas executadas pelo provedor ou pelo consumidor.
Análises executadas pelo provedor na API¶
Veja como habilitar a análise executada pelo provedor em uma nova sala limpa usando a API do Clean Rooms:
Provedor
Cria e configura a sala limpa, os dados e as políticas da maneira padrão.
Adiciona consumidores da maneira padrão.
Habilita a análise executada pelo provedor para contas de consumidores específicas na sala limpa chamando
provider.enable_provider_run_analysis.Importante:
O provedor deve chamar
provider.enable_provider_run_analysisapós adicionar consumidores a uma sala limpa, mas antes que qualquer consumidor instale a sala limpa. Cada conta de consumidor deve aprovar esta solicitação para que os dados sejam acessíveis para análises executadas pelo provedor nesta sala limpa.Sempre que o provedor alterar a configuração de análise executada pelo provedor para uma sala limpa, 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 que o provedor exclua uma sala limpa compartilhada e publicada ao alterar as permissões de análise e, em seguida, crie uma nova sala limpa com as permissões desejadas.
Publica a sala limpa.
Informa ao consumidor que a sala limpa está disponível, o nome da sala limpa e quais modelos você deseja executar na sala limpa.
Consumidor
Instala a sala limpa e vincula os dados da maneira padrão.
Define quaisquer políticas de junção e coluna necessárias para os dados.
Permite análises executadas pelo 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).Nota
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) Um consumidor pode limitar o tipo ou tamanho do warehouse disponível para análises executadas pelo provedor: consulte Restrição de limites de tamanho e tipo de warehouse.
Informa ao provedor que ele instalou a sala limpa e aprovou as análises executadas pelo provedor.
Provedor
Depois que o consumidor instala a sala limpa, o provedor permite que as análises acessem os dados do consumidor, habilitando o compartilhamento de dados do consumidor para 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 da nuvem, o provedor chama
provider.mount_request_logs_for_all_consumersuma vez. Se uma nova conta de consumidor instalar a sala limpa posteriormente e o provedor quiser usar os dados do consumidor neste modelo, o provedor deverá executar este procedimento novamente para poder acessar esses dados.Se o provedor e o consumidor estiverem em regiões de nuvem diferentes, deverão habilitar o preenchimento automático entre nuvens. Quando um provedor executa uma análise em várias regiões, a consulta pode demorar um pouco para ser concluída, pois os dados da consulta são enviados da região do provedor para a do consumidor e vice-versa.
Chama
provider.view_warehouse_sizes_for_templatepara verificar se o consumidor limitou o tipo e o tamanho do warehouse utilizado para a análise. Se o consumidor tiver limitado os tamanhos de warehouse para análises executadas pelo provedor, o provedor deverá especificar os valores permitidos parawarehouse_typeewarehouse_sizena solicitação de análise na próxima etapa. Se o consumidor não tiver especificado limites de warehouse, esses campos serão opcionais na solicitação de análise. Para obter mais informações, consulte Restrição de limites de tamanho e tipo de warehouse.Executa a análise chamando
provider.submit_analysis_requestcom o nome do modelo, os nomes das tabelas e os argumentos do modelo. Se o consumidor tiver especificado limites para tamanhos ou tipos de warehouse, o provedor também deverá especificar o tamanho e o tipo do warehouse na solicitação de análise.Salve o ID da solicitação resultado por
provider.submit_analysis_request; o ID é necessário para verificar o status e os resultados da análise.
Verifica o status da análise chamando
provider.check_analysis_status. Quando o status for relatado comoCOMPLETED, chameprovider.get_analysis_resultpara obter os resultados da análise.
Restrição de limites de tamanho e tipo de warehouse¶
Como o consumidor é cobrado pelas análises executadas pelo provedor, pode determinar quais tamanhos e tipos de warehouse o provedor pode usar para executar uma análise em sua conta. Veja como um consumidor define as limitações de tamanho e tipo de warehouse e como um provedor escolhe um tamanho e tipo de 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 específico. No trecho de código a seguir, o consumidor limita os provedores a usar warehouses STANDARD de tamanho MEDIUM ou LARGE ao executartemplate_1:CALL samooha_by_snowflake_local_db.consumer.set_provider_run_configuration( $cleanroom_name, { 'template_1': { '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_1', $consumer_account_loc );
O provedor especifica um tamanho e tipo de warehouse para usar na solicitação de execução de análise.
CALL samooha_by_snowflake_local_db.provider.submit_analysis_request( $cleanroom_name, $consumer_locator_id, 'template_1', ['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. ) );
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(requer aprovação do consumidor chamando consumer.enable_templates_for_provider_run)
provider.disable_provider_run_analysis
Instalar e executar o exemplo de código¶
Você pode baixar e instalar um exemplo completo para criar e executar uma análise executada pelo provedor. Para executar este exemplo, você precisa de duas contas Snowflake na mesma organização e região de hospedagem em nuvem com o ambiente Snowflake Data Clean Room instalado.
Instale o notebook nas suas contas de provedor e consumidor.
Para carregar um notebook, faça o seguinte:
Sign in to Snowsight.
In the navigation menu, select 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.
Para criar a sala limpa, abra o notebook na conta do provedor e preencha a parte do provedor.
Abra o notebook na conta de consumidor e conclua a parte do consumidor para instalar e configurar a clean room e executar o modelo.
Execute as ações do provedor e do consumidor conforme indicado, na ordem mostrada no notebook.