Ativação de resultados de consulta

Visão geral da ativação

Um colaborador pode enviar resultados de modelo para fora da sala limpa em um processo chamado ativação. O modelo deve oferecer suporte à ativação, e cada provedor de dados deve aprovar a ativação no nível da coluna na especificação da oferta de dados.

A ativação é implementada usando um modelo de ativação dedicado. Um modelo de ativação não retorna resultados para o executor de consultas, mas os grava em uma tabela de resultados na conta do usuário de destino.

Nota

A ativação de resultados para outra conta Snowflake requer o Snowflake Enterprise Edition ou superior.

Implementando a ativação

Aqui estão os passos para implementar a ativação:

  1. Você deve usar uma função que tenha o privilégio REGISTER DATA OFFERING para ingressar em qualquer colaboração em que você seja um executor de análises e a especificação da colaboração inclua um campo activation_destinations.

  2. Certifique-se de que todas as especificações estejam configuradas corretamente:

    A especificação da oferta de dados para a tabela com a coluna ativada deve definir activation_allowed: TRUE para essa coluna:

     api_version: 2.0.0
     spec_type: data_offering
     name: 2025_orders
     version: 2025_01_01_v1
     description: Activating Cleveland sales results for 2025
    
     datasets:
      - alias: customers
        data_object_fqn: db1.schema1.orders
        allowed_analyses: template_only
        object_class: custom
        schema_and_template_policies:
          email:
            category: join_standard
            column_type: hashed_email_sha256
            activation_allowed: TRUE
          purchase_amount:
            category: passthrough
            activation_allowed: TRUE
    
  3. Você deve usar um modelo de ativação. Esse modelo salva os resultados em uma tabela interna. Todas as colunas projetadas desse modelo são ativadas.

    Qualquer coluna no modelo com o filtro activation_policy aplicado deve ter activation_allowed: TRUE na especificação da oferta de dados.

    Nota

    Se um modelo não aplicar o filtro activation_policy a uma coluna, ela poderá ser ativada independentemente de activation_allowed: TRUE estar definido para essa coluna na especificação da oferta de dados.

    O exemplo a seguir mostra um modelo com a política de ativação aplicada a duas colunas fornecidas pelo executor de análise:

    BEGIN
      CREATE OR REPLACE TABLE cleanroom.activation_data_analysis_results AS
        SELECT count(*) AS ITEM_COUNT, c.status, c.age_band
        FROM IDENTIFIER({{ my_table[0] }}) AS c
        JOIN IDENTIFIER({{ source_table[0] }}) AS p
        ON {{ c_join_col | sqlsafe | activation_policy }} = {{ p_join_col | sqlsafe | activation_policy }}
        GROUP BY c.status, c.age_band
        ORDER BY c.age_band;
      RETURN 'analysis_results';
    END;
    
  4. O executor de análise chama RUN para executar a análise e ativar os resultados.

    • Se a ativação for feita para você mesmo, os resultados ficarão disponíveis imediatamente na conta do autor da chamada.

    • Se a ativação for feita para outro colaborador:

      1. O colaborador chama VIEW_ACTIVATIONS até retornar o status SHARED.

        A ativação em outra conta pode levar um tempo considerável para grandes conjuntos de resultados, pois os dados precisam ser compartilhados com a conta do colaborador. Colaboradores em nuvens diferentes também sofrerão atrasos adicionais devido às configurações de frequência de replicação.

      2. Quando o status da ativação é SHARED, o colaborador chama PROCESS_ACTIVATION para enviar os resultados à conta dele.

        A resposta a PROCESS_ACTIVATION inclui os nomes de tabelas e segmentos. Isso define o status da ativação como PROCESSED.

  5. O executor de análise pode ler os resultados conforme descrito na próxima seção.

Lendo os resultados da ativação

Quando a ativação for concluída, conforme descrito na seção anterior, os resultados serão armazenados na tabela collaboration_name.activation.segment_records em sua conta.

A tabela tem o seguinte esquema:

Coluna

Descrição

BATCH_ID

UID para o trabalho em lote que foi processado.

SEGMENT_NAME

Nome da carga útil de ativação.

TEMPLATE_ID

ID do modelo utilizado para ativação.

SHARED_BY

Nome do colaborador que ativou os dados.

UPDATED_ON

Carimbo de data/hora de quando o lote foi processado com sucesso.

RECORDS

Carga útil dos IDs ativados e atributos do modelo de ativação.

Nota

Se um colaborador sair da sala limpa, ele perderá o acesso ao aplicativo, incluindo a tabela que contém os resultados ativados.

Para recuperar os resultados da ativação, execute o seguinte comando SQL, filtrando opcionalmente pelo nome do segmento:

SELECT *
  FROM <collaboration_name>.activation.segment_records
    [WHERE segment_name = '<segment_name>'];