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:

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 chamado activation_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 chamada cleanroom.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 for cleanroom.activation_data_analysis_results, a cadeia de caracteres analysis_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;
Copy

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.

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' ]);
Copy

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');
Copy

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');
Copy

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'
  });
Copy

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'
));
Copy

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' ]);
Copy

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');
Copy

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'
));
Copy

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.