Como usar as APIs de desenvolvedor para enviar resultados a uma conta Snowflake para ativação¶
Os provedores podem adicionar modelos de ativação (modelos SQL Jinja) a uma sala limpa para que os resultados da análise possam ser enviados a uma conta Snowflake para ativação.
Para análises executadas pelo provedor, o provedor pode enviar os resultados para sua própria conta Snowflake (ativação do provedor). Para análises executadas pelo consumidor, o consumidor pode enviar os resultados para a conta Snowflake do provedor (ativação do provedor) ou para sua própria conta (ativação do consumidor), dependendo de como o provedor configurou o modelo de ativação.
O provedor pode adicionar uma interface de usuário ao modelo de ativação para que os usuários possam usar o aplicativo da Web para enviar resultados para a conta Snowflake. Nesse caso, as opções para enviar resultados aparecem no hub de ativação como outras opções de ativação. Como alternativa, o provedor e o consumidor podem usar as APIs de desenvolvedor para usar o modelo de ativação e enviar resultados.
Provedor¶
Como provedor, você deseja fazer o seguinte:
Configure o modelo de ativação para que ele possa ser usado pelo provedor e/ou consumidor para enviar os resultados para uma conta Snowflake.
Ative os resultados de volta à conta Snowflake do provedor.
Exibição dos resultados na conta Snowflake
Configuração do provedor¶
Esta seção discute as etapas que um provedor pode seguir para criar, adicionar e configurar um modelo de ativação em uma sala limpa. Ele contém as seguintes seções:
Vinculação da tabela necessária (somente ativação do provedor)
Habilitação da ativação do consumidor (somente análises executadas pelo consumidor)
Solicitação de permissão do consumidor (somente ativação do provedor)
Criação de um modelo para ativação do provedor¶
Um modelo usado para ativar resultados é semelhante a um modelo usado para executar uma análise. Por exemplo, ele é adicionado à sala limpa com o comando provider.add_custom_sql_template
como um modelo de análise. No entanto, um modelo de ativação tem as seguintes diferenças importantes:
O nome do modelo de ativação deve começar com a cadeia de caracteres
activation
. Por exemplo, um modelo de ativação chamadoactivation_my_template
atende ao requisito.O modelo de ativação deve criar uma tabela com um nome que esteja em conformidade com convenções específicas e retorne explicitamente o nome da tabela.
Definição da tabela em um modelo de ativação¶
Para armazenar os resultados da ativação na sala limpa, cada modelo de ativação deve criar uma tabela. Existem dois requisitos para esta tabela:
O nome da tabela deve começar com a cadeia de caracteres
cleanroom.activation_data_
. Por exemplo, uma tabela chamadacleanroom.activation_data_analysis_results
atende ao requisito.A parte da definição do modelo que cria a tabela deve retornar a cadeia de caracteres que foi anexada em
cleanroom.activation_data_
para formar o nome da tabela. Por exemplo, se o nome da tabela forcleanroom.activation_data_analysis_results
, a cadeia de caracteresanalysis_results
deverá ser retornada.
A seguir está um exemplo do que deve ser incluído na definição do modelo para definir uma tabela e exportá-la:
BEGIN
CREATE OR REPLACE TABLE cleanroom.activation_data_analysis_results AS
SELECT * FROM identifier({{ my_table[0] }})
RETURN 'analysis_results';
END;
Para obter mais informações sobre como chamar o comando provider.add_custom_sql_template
para adicionar um modelo de ativação a uma sala limpa, consulte Snowflake Data Clean Rooms: Guia de referência da API do provedor.
Vinculação da tabela necessária (somente ativação do provedor)¶
Se o provedor ou consumidor for enviar os resultados para a conta Snowflake do provedor, ele deverá vincular a tabela samooha_by_snowflake_local_db.library.temp_public_key
à sala limpa. Por exemplo, para vincular a tabela necessária a uma sala limpa my_activation_cleanroom
, execute:
CALL samooha_by_snowflake_local_db.provider.link_datasets(
'my_activation_cleanroom',
['samooha_by_snowflake_local_db.library.temp_public_key']);
O provedor também poderia usar uma única chamada para vincular a tabela necessária ao vincular suas outras tabelas e exibições.
Definição de uma política de ativação¶
Uma política de ativação define quais colunas podem ser usadas nos modelos de ativação. Isso pode ser usado com modelos de ativação para garantir que somente as colunas aprovadas pelo provedor possam ser usadas com o modelo de ativação.
Um provedor usa a API provider.set_activation_policy
para definir a política de ativação. Por exemplo:
CALL samooha_by_snowflake_local_db.provider.set_activation_policy('my_cleanroom', [
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:STATUS',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:AGE_BAND',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:DAYS_ACTIVE',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:REGION_CODE' ]);
Habilitação da ativação do consumidor (somente análises executadas pelo consumidor)¶
Se o consumidor for enviar os resultados para sua própria conta, o provedor deverá executar a API provider.enable_template_for_consumer_activation
. Por exemplo:
CALL samooha_by_snowflake_local_db.provider.enable_template_for_consumer_activation(
'my_cleanroom', 'activation_my_template');
Solicitação de permissão do consumidor (somente ativação do provedor)¶
Se o provedor configurar o modelo de ativação para permitir que ele próprio ou o consumidor envie resultados para a conta Snowflake do provedor, o provedor deverá executar a API provider.request_provider_activation_consent
. Esta API solicita que o consumidor aprove o modelo para essa finalidade. Por exemplo,
CALL samooha_by_snowflake_local_db.provider.request_provider_activation_consent('my_cleanroom', 'activation_my_template');
O consumidor precisa aprovar a solicitação antes que o provedor possa ativar os resultados de uma análise executada pelo provedor.
Configuração da ativação no aplicativo da Web (opcional)¶
Se o provedor estiver criando uma interface de usuário para a sala limpa para que os usuários possam executar análises no aplicativo da Web, ele também poderá configurar a sala limpa para que os usuários possam ativar os resultados usando o hub de ativação no aplicativo da Web. Quando o provedor executa a API provider.add_ui_form_customizations
para criar a interface de usuário, ele especifica o nome do modelo de ativação e se o modelo está sendo usado para ativação do provedor, do consumidor ou de ambos.
Por exemplo, o exemplo a seguir permite que os usuários usem o hub de ativação tanto para a ativação do provedor quanto para a ativação do consumidor.
CALL samooha_by_snowflake_local_db.provider.add_ui_form_customizations(
$cleanroom_name,
'prod_test_references_1',
{
'display_name': 'PROD TEST REFERENCE FIRST',
'description': 'Use our customized ML techniques to find lookalike audiences.',
'methodology': 'Specify your own seed audience, while matching against our users. Then customize the lookalike model across number of boosting rounds and removing outliers.',
'render_table_dropdowns': {
'render_consumer_table_dropdown': TRUE,
'render_provider_table_dropdown': TRUE
},
'activation_template_name': 'activation_my_template',
'enabled_activations': ['consumer', 'provider']
},
{
'reference_provider_join': {
'display_name': 'Provider join column',
'order': 4,
'description': 'Which provider col do you want to join on',
'size': 'S',
'group': 'Seed Audience Selection',
'references': ['PROVIDER_JOIN_POLICY'],
'provider_parent_table_field': 'source_table',
'type': 'dropdown'
},
'reference_consumer_join': {
'display_name': 'Consumer join column',
'order': 4,
'description': 'Which consumer col do you want to join on',
'size': 'S',
'group': 'Seed Audience Selection',
'references': ['CONSUMER_COLUMNS'],
'consumer_parent_table_field': 'my_table',
'type': 'dropdown'
}
},
{
'measure_columns': ['count'],
'default_output_type': 'BAR'
});
Ativação após uma análise executada pelo provedor¶
Se o provedor configurou a sala limpa para que seus usuários possam usar o aplicativo da Web para executar análises e ativar resultados, os usuários podem selecionar o botão Activate após executar uma análise para abrir o hub de ativação, onde podem selecionar a conta do provedor para enviar os resultados.
Se o provedor estiver usando as APIs de desenvolvedor em vez do aplicativo da Web para executar análises, ele poderá executar a API submit_analysis_request
para ativar os resultados. Por exemplo:
CALL samooha_by_snowflake_local_db.submit_analysis_request(
'my_clean_room',
'CONSUMER_1_LOCATOR',
'activation_custom_template',
['provider_source_table'],
['consumer_source_table'],
object_construct(
'dimensions', ['p.CAMPAIGN'],
'where_clause', 'p.EMAIL=c.EMAIL'
));
Exibição de resultados ativados como um provedor¶
Depois que o consumidor ou provedor ativar os resultados para o provedor, ele poderá visualizar esses resultados em sua conta Snowflake (não no ambiente de sala limpa).
Nota
Se o consumidor ativar os resultados, o provedor deverá fazer login em seu ambiente de sala limpa antes de fazer login em sua conta Snowflake para visualizar os resultados.
Para obter mais informações, consulte Visualização de resultados da análise na conta Snowflake do provedor.
Consumidor¶
Como consumidor, você deseja fazer o seguinte:
Configure a sala limpa para que o modelo de ativação possa ser usado pelo provedor e/ou pelo consumidor para enviar os resultados para uma conta Snowflake.
Ative os resultados de volta para uma conta Snowflake.
Exibição dos resultados na conta Snowflake
Configuração do consumidor¶
Um consumidor deve definir uma política de ativação antes de ativar os resultados. Para a ativação do provedor, eles também precisam aprovar a solicitação do provedor.
Definição da política de ativação¶
Uma política de ativação define quais colunas podem ser usadas nos modelos de ativação. Essa política pode ser usada com modelos de ativação para garantir que somente as colunas aprovadas pelo consumidor possam ser usadas com o modelo de ativação.
Um consumidor usa a API consumer.set_activation_policy
para definir a política de ativação. Por exemplo:
CALL samooha_by_snowflake_local_db.consumer.set_activation_policy('my_cleanroom', [
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:REGION_CODE' ]);
Aprovação da solicitação do provedor (somente ativação do provedor)¶
Se o provedor tiver executado a API provider.request_provider_activation_consent
para um modelo de ativação destinado a ser usado para enviar resultados para a conta Snowflake do provedor, o consumidor deverá aprovar a solicitação. Essa aprovação é necessária independentemente de ser o provedor ou o consumidor que está enviando os resultados para a conta do provedor.
Se o consumidor estiver usando o aplicativo da Web, a instalação da sala limpa fornecerá o consentimento de que o provedor precisa.
Se o consumidor estiver usando as APIs de desenvolvedor, ele executará a API consumer.approve_provider_activation_consent
. Por exemplo:
CALL samooha_by_snowflake_local.consumer.approve_provider_activation_consent('my_cleanroom', 'activation_my_template');
Ativação após uma análise executada pelo consumidor¶
Se o provedor configurou a sala limpa para que os usuários possam usar o aplicativo da Web para executar análises e ativar resultados, os usuários podem selecionar o botão Activate após executar uma análise para abrir o hub de ativação, onde podem selecionar a conta do provedor (se a ativação do provedor foi configurada) ou a conta do consumidor (se a ativação do consumidor foi configurada) para enviar resultados.
Se o consumidor estiver usando as APIs de desenvolvedor em vez do aplicativo da Web, o consumidor enviará resultados para uma conta Snowflake chamando o comando consumer.run_activation
para executar o modelo de ativação, que é semelhante à execução do comando consumer.run_analysis
. A diferença é o segundo argumento, que especifica uma cadeia de caracteres que ajuda a identificar o conteúdo da ativação.
Por exemplo, o consumidor pode chamar:
CALL samooha_by_snowflake_local_db.consumer.run_activation(
'activation_clean_room',
'my_activation_segment',
'activation_custom_template',
['consumer_source_table'],
['provider_source_table'],
object_construct(
'dimensions', ['p.CAMPAIGN'],
'where_clause', 'p.EMAIL=c.EMAIL'
));
Para obter mais informações sobre a sintaxe do comando consumer.run_activation
, consulte Snowflake Data Clean Rooms: Guia de referência da API do consumidor.
Visualização dos resultados ativados como um consumidor¶
Se o consumidor enviar os resultados para sua própria conta Snowflake, ele poderá visualizar os resultados no Snowsight.