Analyse exécutée par le fournisseur¶
La configuration par défaut de la clean room permet uniquement au consommateur d’effectuer une analyse dans la clean room. Toutefois, le fournisseur peut demander l’autorisation au consommateur d’exécuter des modèles utilisant les données du consommateur dans une clean room spécifique. L’analyse effectuée par le fournisseur peut être activée et exécutée à l’aide de l’UI clean room ou d’un code.
Modèles pris en charge¶
L’analyse effectuée par le fournisseur est activée au niveau du modèle dans une clean room donnée. Les modèles suivants permettent d’effectuer des analyses dirigées par le fournisseur :
Chevauchement et analyse de la segmentation
Requête SQL (UI uniquement)
Modèles personnalisés (API uniquement)
Détails de la facturation¶
Les consommateurs sont facturés pour toutes les analyses effectuées par le fournisseur dans une clean room. Pour ne plus avoir à supporter les coûts supplémentaires liés aux analyses du fournisseur, le consommateur doit désinstaller la clean room.
Un consommateur peut estimer le nombre de crédits consommés par le fournisseur au cours des derniers N jours en exécutant la requête suivante, en spécifiant le nombre de jours précédents comme un nombre négatif :
-- Estimate the number of credits consumed in the past 5 days.
SELECT * FROM TABLE(SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.PRA_CONSUMPTION_UDTF(-5));
Sélection d’une taille d’entrepôt¶
Clean rooms utilise une logique de mise à l’échelle automatique basée sur la taille des ensembles de données pour choisir un entrepôt pour votre analyse. Toutefois, le fournisseur peut explicitement choisir une taille d’entrepôt dans une liste de tailles et de types autorisés par le consommateur. Le fournisseur choisit la taille de l’entrepôt comme suit :
Le consommateur appelle
consumer.enable_templates_for_provider_run
, en précisant quels types et tailles d’entrepôts peuvent être utilisés avec quels modèles.Le fournisseur appelle
provider.view_warehouse_sizes_for_template
pour connaître les tailles et les types d’entrepôts autorisés pour les analyses gérées par le fournisseur.Le fournisseur précise la combinaison de taille et de type à utiliser dans sa requête d’analyse (
provider.submit_analysis_request
).
Un fournisseur ne peut requérir que les tailles et types d’entrepôts explicitement listés par le consommateur.
Consommateur
CALL samooha_by_snowflake_local_db.CONSUMER.enable_templates_for_provider_run(
$cleanroom_name,
[$template1, $template2],
TRUE,
{
$template1: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'LARGE']},
$template1: {'warehouse_type': 'SNOWPARK-OPTIMIZED', 'warehouse_size': ['MEDIUM', 'XLARGE']},
$template2: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'XLARGE']}
});
Fournisseur
CALL samooha_by_snowflake_local_db.PROVIDER.VIEW_WAREHOUSE_SIZES_FOR_TEMPLATE($cleanroom_name, $template_name, $consumer_account_loc);
CALL samooha_by_snowflake_local_db.provider.submit_analysis_request(
$cleanroom_name,
$consumer_locator_id,
$template1,
['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', -- If this type and size pair were not listed by view_warehouse_sizes_for_template,
'warehouse_size', 'LARGE' -- the request will automatically fail.
));
Mise en œuvre des analyses gérées par les fournisseurs¶
Astuce
Si le consommateur et le fournisseur se trouvent dans des régions Cloud différentes, vous devez activer exécution automatique inter-Cloud dans les deux comptes et pour les deux clean rooms.
Les autorisations d’exécuter des requêtes dans une clean room sont gérées dans l’UI de la clean room à l’aide de la bascule Enable run analysis & query dans le panneau Share clean room du flux de configuration de la clean room. Pour activer ou désactiver les analyses gérées par les fournisseurs, le fournisseur de la clean room active la case à cocher située à côté de son propre compte dans ce panneau. Cette option ne peut pas être modifiée après la création d’une clean room ; si vous souhaitez modifier l’autorisation pour un compte spécifique d’exécuter des requêtes dans une clean room publiée, vous devez supprimer la clean room et en créer une nouvelle.
Voici les étapes à suivre pour permettre l’exécution d’une analyse par le fournisseur dans une nouvelle clean room :
Le fournisseur crée et configure une clean room en utilisant l’un des modèles pris en charge.
Dans l’étape Share Clean Room de la configuration de la clean room, activez Enable run analysis & query en regard de votre compte pour vous permettre d’exécuter des modèles qui prennent en charge l’analyse du fournisseur dans cette clean room.
Lorsque le consommateur rejoint la clean room, il est averti que l’analyse par le fournisseur est activée pour cette clean room.
Le consommateur configure la clean room comme d’habitude pour tous les modèles de la clean room, y compris les modèles qui prennent en charge l’analyse du fournisseur. Si le consommateur ne souhaite pas permettre à un fournisseur d’exécuter un modèle spécifique, il peut omettre les exigences relatives à ce modèle. Notez que les modèles qui prennent en charge l’analyse du fournisseur prennent également en charge l’analyse du consommateur.
Une fois que le consommateur a rejoint et configuré la clean room, le fournisseur et le consommateur peuvent exécuter des modèles dans la clean room par le biais du flux d’analyse normal.
Les autorisations d’analyse par le fournisseur ne peuvent pas être révoquées après avoir été accordées. Le seul moyen d’arrêter les analyses d’exécution effectuées par le fournisseur est que le fournisseur ou le consommateur supprime la clean room.
Le fournisseur peut activer et désactiver les analyses gérées par le fournisseur et par le consommateur dans une clean room en effectuant les appels d’API appropriés. Toutefois, chaque fois qu’une modification est apportée à une clean room existante en vue d’un paramètre d’analyse géré par le fournisseur, la clean room doit être réinstallée par tous les consommateurs pour que la modification prenne effet. Comme il peut être difficile de forcer tous les collaborateurs à réinstaller une clean room, il est plus fiable pour le fournisseur de supprimer une clean room publiée et partagée lorsqu’il modifie les autorisations d’analyse, puis de créer une nouvelle clean room avec les autorisations souhaitées.
Voici le déroulement général de la création d’une nouvelle clean room permettant des analyses effectuées par le fournisseur :
Fournisseur
Créez et configurez votre clean room, vos données et vos politiques de manière standard.
Ajoutez des consommateurs de la manière habituelle.
Activez l’analyse d’exécution du fournisseur pour des comptes consommateurs spécifiques dans la clean room en appelant
provider.enable_provider_run_analysis
. Cette procédure doit être appelée après avoir ajouté des consommateurs à une clean room, mais avant qu’un consommateur n’installe la clean room. Chaque compte de consommateur doit approuver cette requête séparément, faute de quoi ses données ne seront pas accessibles pour les analyses effectuées par le fournisseur dans cette clean room.Publier la clean room.
Faites savoir à vos consommateurs que la clean room est disponible, le nom de la clean room, et les modèles que vous voulez exécuter dans la clean room.
Consommateur
Installez la clean room, créez des liens avec vos données et définissez des politiques de jointure et de colonne de manière standard.
Permettez l’analyse du fournisseur pour des modèles spécifiques dans la clean room en appelant
consumer.enable_templates_for_provider_run
. Il est important que vous appeliez cette procédure après avoir configuré vos politiques de jointure et de colonnes ; si vous activez cette fonction en premier, le fournisseur pourra joindre et projeter toutes vos colonnes jusqu’à ce que vous ayez défini ces paramètres. En règle générale, le fournisseur vous indiquera que vous devez approuver les analyses effectuées par le fournisseur dans une clean room, mais vous pouvez également vérifier si cette requête est en cours en appelantlibrary.is_provider_run_enabled
.Informez le fournisseur que vous avez installé la clean room et approuvé les analyses effectuées par le fournisseur.
Fournisseur
Permettez à vos analyses d’accéder aux données du consommateur en appelant
provider.mount_request_logs_for_all_consumers
après que le consommateur a installé la clean room. Si un nouveau compte consommateur installe la clean room ultérieurement et que vous souhaitez utiliser ses données dans ce modèle, vous devez réexécuter cette procédure pour pouvoir accéder à ces données.Exécutez l’analyse en appelant
provider.submit_analysis_request
avec le nom du modèle, les noms des tables et les arguments du modèle. Enregistrez l’ID de réponse, qui est nécessaire pour vérifier le statut et les résultats de l’analyse.Vérifiez le statut de l’analyse en appelant
provider.check_analysis_status
. Lorsque le statut est indiqué comme étantCOMPLETED
, appelezprovider.get_analysis_result
pour obtenir les résultats de l’analyse.
Astuce
Si vous modifiez le paramètre de l’analyse du cycle du fournisseur pour votre clean room, vous devez désinstaller puis réinstaller la clean room pour que la modification prenne effet.
Installez et exécutez l’exemple de code
Vous pouvez télécharger et installer un exemple complet de clean room qui permet d’effectuer une analyse pour le compte d’un fournisseur. Pour exécuter cet exemple, vous avez besoin de deux comptes Snowflake dans la même organisation et la même région d’hébergement Cloud avec l’environnement Clean Room installé.
:download :
Téléchargez le notebook d'exemples </samples/clean-rooms/provider-analysis-notebook.ipynb>
.Installez le Notebooks dans vos comptes fournisseur et consommateur. Pour télécharger un notebook, procédez comme suit :
Naviguez jusqu’à Projects » Notebooks dans Snowsight.
Sélectionnez + Notebook » Import .ipynb file.
Sélectionnez le fichier .ipynb que vous avez téléchargé.
Nommez le fichier comme vous le souhaitez et choisissez une base de données et un schéma.
Conservez l’entrepôt par défaut
APP_WH
.Sélectionnez Create.
Ouvrez le carnet dans le compte fournisseur et complétez la partie fournisseur pour créer la clean room.
Ouvrez le Notebooks dans le compte du consommateur et complétez la partie consommateur pour installer et configurer la clean room et exécuter le modèle.
Astuce
Les procédures suivantes permettent de déterminer quel côté peut effectuer une analyse dans la clean room :
Analyse du consommateur (autorisé par défaut) : Toute modification est appliquée immédiatement.
provider.enable_consumer_run_analysis
provider.disable_consumer_run_analysis
Analyse du fournisseur (désactivé par défaut) : Toute modification nécessite une réinstallation par le consommateur.
provider.enable_provider_run_analysis
(exige que le consommateur l’approuve en appelant consumer.enable_templates_for_provider_run)provider.disable_provider_run_analysis