Activation des résultats de la requête

Aperçu de l’activité

Un collaborateur peut envoyer les résultats d’un modèle en dehors de la salle blanche dans le cadre d’un processus appelé activation. Le modèle doit prendre en charge l’activation, et chaque fournisseur de données doit approuver l’activation au niveau des colonnes dans la spécification de son offre de données.

L’activation est mise en œuvre à l’aide d’un modèle d’activation dédié. Un modèle d’activation ne renvoie pas de résultats à l’exécuteur de requêtes, mais les écrit à la place dans une table de résultats dans le compte de l’utilisateur cible.

Note

L’activation des résultats vers un autre compte Snowflake nécessite Snowflake Enterprise Edition ou une version supérieure.

Mise en œuvre de l’activation

Voici les étapes de la mise en œuvre de l’activation :

  1. Vous devez utiliser un rôle qui dispose du privilège REGISTER DATA OFFERING pour rejoindre toute collaboration dans laquelle vous êtes un exécuteur d’analyses et où la spécification de la collaboration inclut un champ activation_destinations.

  2. Assurez-vous que toutes les spécifications sont correctement configurées :

    La spécification de l’offre de données pour la table avec la colonne activée doit définir activation_allowed: TRUE pour cette colonne :

     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. Vous devez utiliser un modèle d’activation. Ce modèle enregistre les résultats dans une table interne. Toutes les colonnes projetées de ce modèle sont activées.

    Toute colonne dans le modèle avec le filtre activation_policy appliqué doit présenter activation_allowed: TRUE dans la spécification de l’offre de données.

    Note

    Si un modèle n’applique pas le filtre activation_policy à une colonne, la colonne peut être activée, que activation_allowed: TRUE soit défini ou non pour cette colonne dans la spécification de l’offre de données.

    L’exemple suivant montre un modèle avec la politique d’activation appliquée à deux colonnes fournies par le gestionnaire d’analyses :

    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. L’exécuteur d’analyses appelle RUN pour exécuter l’analyse et activer les résultats.

    • Si l’option est activée pour vous-même, les résultats sont disponibles immédiatement dans le compte de l’appelant.

    • Si l’option est activée pour un autre collaborateur :

      1. Le collaborateur appelle VIEW_ACTIVATIONS jusqu’à ce qu’un statut SHARED soit renvoyé.

        L’activation sur un autre compte peut prendre beaucoup de temps pour les grands jeux de résultats, car les données doivent être partagées sur le compte du collaborateur. Les collaborateurs inter-cloud seront également affectés par des retards supplémentaires en raison des paramètres de fréquence de réplication.

      2. Lorsque le statut de l’activation est SHARED, le collaborateur appelle PROCESS_ACTIVATION pour envoyer les résultats sur son compte.

        La réponse à PROCESS_ACTIVATION comprend les noms de la table et du segment. Cette opération définit le statut d’activation sur PROCESSED.

  5. L’exécuteur d’analyses peut lire les résultats comme décrit dans la section suivante.

Lecture des résultats de l’activation

Lorsque l’activation est terminée, comme décrit dans la section précédente, les résultats sont stockés dans la table collaboration_name.activation.segment_records de votre compte.

La table possède le schéma suivant :

Colonne

Description

BATCH_ID

UID pour la tâche par lots qui a été traitée.

SEGMENT_NAME

Nom de la charge utile d’activation.

TEMPLATE_ID

ID du modèle utilisé pour l’activation.

SHARED_BY

Nom du collaborateur qui a activé les données.

UPDATED_ON

Horodatage du moment où le lot a été correctement traité.

RECORDS

Charge utile des IDs et des attributs activés du modèle d’activation.

Note

Si un collaborateur quitte la salle blanche, il perd l’accès à l’application, y compris la table qui contient les résultats activés.

Pour récupérer les résultats de l’activation, exécutez la commande SQL suivante, en filtrant éventuellement par nom de segment :

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