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.
Note
Un fournisseur peut exécuter une analyse dans une salle blanche de deux façons : sous la forme d’un modèle de requête standard, qui renvoie les résultats avec chaque requête, et sous la forme d’une activation des résultats, qui enregistre les résultats dans un fichier du compte du fournisseur. Si vous devez conserver les données pour vous-même ou pour les exporter vers un tiers, ou pour affiner les résultats par rapport à un grand ensemble de données, il est généralement préférable d’activer les résultats sur votre compte. Si vous souhaitez réexécuter un modèle avec de nouveaux paramètres ou données, et si vous n’avez pas besoin de conserver les résultats, l’utilisation des requêtes standard exécutées par les fournisseurs décrites ici est la bonne solution.
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 analyses gérées par le fournisseur sont exécutées sur le compte du consommateur et les consommateurs sont facturés pour une analyse exécutée par le fournisseur. Pour éviter d’encourir des frais supplémentaires liés aux analyses du fournisseur, le consommateur doit désinstaller la salle blanche.
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));
Choix et limitation de la taille et du type d’entrepôt¶
Les salles blanches utilisent une logique de mise à l’échelle automatique basée sur les tailles des ensemble de données pour choisir un entrepôt pour votre analyse. Toutefois, le fournisseur peut explicitement choisir une taille d’entrepôt à l’aide de l’API.
Un consommateur peut limiter la taille et le type des entrepôts dont dispose le fournisseur lors de l’exécution d’un modèle donné. La limitation de la taille des entrepôts ne peut être effectuée que dans l’API, et non dans l’UI.
Mise en œuvre des analyses gérées par les fournisseurs¶
Important
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.
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 salle blanche, le fournisseur active Enable run analysis & query à côté de son propre compte pour lui permettre d’exécuter tous les modèles dans cette salle blanche qui prennent en charge l’analyse du fournisseur.
Ce paramètre ne peut pas être modifié après la création d’une salle blanche ; si vous souhaitez modifier l’autorisation d’un compte spécifique pour exécuter des requêtes dans une salle blanche publiée, vous devez supprimer la salle blanche et en créer une nouvelle.
Le consommateur rejoint et configure la salle blanche comme d’habitude pour tous les modèles de la salle blanche, y compris pour tous 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 détails requis pour ce modèle.
Lorsque le consommateur rejoint la salle blanche, il est averti avant de rejoindre que l’analyse exécutée par le fournisseur est activée pour cette salle blanche.
Le consommateur peut exécuter des requêtes dès qu’il rejoint la salle blanche, mais il y a un délai de 30 minutes avant que le fournisseur puisse exécuter le modèle. Ce délai de configuration ne concerne que l’étape initiale pour rejoindre la salle blanche ; si le fournisseur ajoute ultérieurement d’autres modèles exécutés par le fournisseur, le fournisseur peut les exécuter dès que le consommateur configure sa salle blanche pour ce modèle.
La salle blanche est désormais disponible pour les analyses exécutées par le fournisseur (après le délai de la configuration initiale) et exécutées par le consommateur (sans délai).
Le consommateur est facturé pour toutes les analyses dans cette salle blanche, qu’elles soient effectuées par le fournisseur ou par le consommateur.
Le fournisseur peut activer et désactiver à la fois l’analyse du fournisseur et celle du consommateur dans une salle blanche en effectuant les appels d’API appropriés.
Toutefois, chaque fois que le fournisseur modifie le paramètre d’analyse exécutée par le fournisseur, la salle blanche doit être réinstallée par tous les consommateurs pour que le changement prenne effet. Comme il peut être difficile de forcer tous les collaborateurs à réinstaller une salle blanche, il est plus fiable pour le fournisseur de supprimer une salle blanche publiée et partagée lors de la modification des autorisations d’analyse, puis de créer une nouvelle salle blanche avec les autorisations souhaitées.
Important
Tous les modèles exécutés par le fournisseur nécessitent des noms de colonnes ou des alias pour toutes les colonnes générées dans les résultats. Si une colonne est une fonction d’agrégation (SUM(*)) ou appelle une fonction personnalisée (cleanroom.my_function(p.hashed_email)), vous devez explicitement fournir un alias pour le nom de la colonne : SELECT SUM(*) AS TOTAL FROM mydb.mysch.T;
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 exécutée par le fournisseur pour des comptes de consommateurs spécifiques dans la salle blanche en appelant
provider.enable_provider_run_analysis. Appelez cette procédure uniquement après avoir ajouté des consommateurs à une salle blanche, mais avant qu’un consommateur n’installe la salle blanche. Chaque compte de consommateur doit approuver cette demande séparément, ou ses données ne seront pas accessibles pour les analyses effectuées par le fournisseur dans cette salle blanche.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 salle blanche et liez vos données de manière standard.
Définissez les politiques de jointure et de colonne sur vos données. Si vous ne définissez pas les deux politiques dans une salle blanche, le fournisseur ne peut pas exécuter un modèle en utilisant vos données. Cela diffère des analyses exécutées par les consommateurs, où l’absence totale d’une politique signifie que toutes les colonnes sont approuvées pour ce type de politique.
Autorisez l’analyse du fournisseur pour des modèles spécifiques dans la salle blanche en appelant soit
consumer.enable_templates_for_provider_run(pour plusieurs modèles) ouconsumer.approve_template(pour un modèle).
Si le fournisseur modifie un modèle après que le consommateur l’a approuvé, ce dernier doit approuver à nouveau le modèle. Jusqu’à ce que le modèle soit réapprouvé, l’ancienne version mise en cache du modèle approuvé sera exécutée par le fournisseur.
Les analyses exécutées par le fournisseur se produisent sur le compte du consommateur et sont facturées au consommateur. Si vous souhaitez limiter le type ou les tailles d’entrepôt disponibles pour un fournisseur lors de l’exécution d’un modèle, appelez
consumer.set_provider_run_configuration.Informez le fournisseur que vous avez installé la clean room et approuvé les analyses effectuées par le fournisseur.
Fournisseur
Une fois que le consommateur a installé la salle blanche, vous devez permettre à vos analyses d’accéder aux données du consommateur en activant le partage de données du consommateur au compte du fournisseur. Le processus pour cela diffère selon si le fournisseur et le consommateur se trouvent dans la même région Cloud ou s’ils se trouvent dans des régions Cloud différentes :
Si le fournisseur et le consommateur se trouvent dans la même région Cloud, le fournisseur appelle
provider.mount_request_logs_for_all_consumers. Si un nouveau compte consommateur installe la salle blanche 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 aux données.Si le fournisseur et le consommateur se trouvent dans des régions Cloud différentes, le fournisseur et le consommateur doivent activer l’exécution automatique inter-cloud.
Exécutez l’analyse en appelant
provider.submit_analysis_requestavec le nom du modèle, les noms des tables et les arguments du modèle. Vous pouvez éventuellement spécifier une taille et un type d’entrepôt, comme indiqué plus loin dans cette rubrique.Enregistrez l’ID de réponse, qui est nécessaire pour vérifier l’état 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_resultpour 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.
Spécification des limites des entrepôts et sélection du type d’entrepôt
Voici comment un consommateur définit une limite de taille et de type d’entrepôt, et comment un fournisseur choisit un entrepôt lors de l’exécution d’une analyse :
Le consommateur appelle
consumer.set_provider_run_configurationet spécifient les tailles et les types d’entrepôt qu’un fournisseur peut utiliser pour un modèle spécifié.CALL samooha_by_snowflake_local_db.consumer.set_provider_run_configuration( $cleanroom_name, { $template1: { 'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'LARGE']} });
Le fournisseur appelle
provider.view_warehouse_sizes_for_templatepour voir quels tailles et types d’entrepôt sont autorisés pour les analyses exécutées par le fournisseur sur ce modèle.CALL samooha_by_snowflake_local_db.provider.view_warehouse_sizes_for_template( $cleanroom_name, $template_name, $consumer_account_loc );
Le fournisseur spécifie la taille et le type d’entrepôt à utiliser dans sa requête d’exécution d’analyse. Un fournisseur ne peut spécifier que les tailles et les types d’entrepôt que le consommateur autorise pour ce modèle.
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', -- Any other value would cause the request to fail. 'warehouse_size', 'LARGE' -- Only MEDIUM and LARGE supported. ) );
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 notebook à la fois dans vos comptes de fournisseur et de consommateur.
Pour charger un notebook, procédez comme suit :
Dans le menu de navigation, sélectionnez Projects » Notebooks.
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 exécutée par le consommateur (autorisée par défaut) : Les modifications s’appliquent immédiatement.
provider.enable_consumer_run_analysis
provider.disable_consumer_run_analysis
Analyse exécutée par le fournisseur (désactivée par défaut) : Les modifications nécessitent 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