Requêtes SQL libres¶
Un fournisseur de données peut permettre à ses données d’être exposées à un exécutant d’analyse via un modèle ou des requêtes libres. Lorsqu’un fournisseur de données active des requêtes libres sur un ensemble de données, tous les gestionnaires d’analyses ayant accès à l’offre de données peuvent exécuter des requêtes SQL dans leur environnement par rapport à cet ensemble de données.
Les gestionnaires d’analyses et les fournisseurs de données doivent tous deux avoir rejoint la collaboration avant que les données ne soient disponibles.
Vue d’ensemble¶
Voici les étapes à suivre pour exécuter des requêtes libres sur des données dans une salle blanche :
Fournisseurs de données
Enregistrer une offre de données qui contient un ou plusieurs ensembles de données où
allowed_analyses: template_and_freeform_sqlest spécifié.Si le fournisseur de données souhaite appliquer des politiques Snowflake aux colonnes dans l’ensemble de données, il doit créer ces politiques avant d’enregistrer les données, et associer les politiques aux colonnes de la spécification de l’offre de données.
Lier l’offre de données à la collaboration de la manière standard.
Exécutant d’analyses
Une fois la collaboration installés sur son compte, l’exécutant d’analyse, appelle VIEW_DATA_OFFERINGS. S’il y a une valeur dans la colonne freeform_sql_view_name, l’ensemble de données peut être interrogé directement en utilisant la vue nommée dans cette colonne.
Toute politique répertoriée dans freeform_sql_column_policies sont appliquées aux données par la collaboration. Toutes les politiques appliquées directement aux données sources par le fournisseur de données sont appliquées, mais ne seront pas affichées dans cette colonne.
Les détails sur le fournisseur de données et les étapes d’analyse sont donnés dans les sections suivantes.
Enregistrement d’un ensemble de données pour requête libre (fournisseur de données)¶
Les étapes suivantes montrent comment activer les requêtes libres lors de l’enregistrement d’une offre de données :
Spécifiez
allowed_analyses: template_and_freeform_sqldans la spécification de collaboration. L’ensemble de données peut ainsi être interrogé à l’aide d’un modèle ou d’une requête libre.Seules les colonnes répertoriées sous
schema_and_template_policiessont disponibles pour les requêtes via des modèles ou des requêtes libres.Si vous souhaitez appliquer des politiques Snowflake dans des requêtes libres sans les appliquer à vos données sources, procédez comme suit :
Créez vos politiques Snowflake de la manière standard. Ne les appliquez pas à votre table.
Le rôle qui crée la collaboration doit avoir le privilège USAGE sur la base de données, le schéma et l’objet de politique.
Ces politiques sont liées dynamiquement ; toutes les modifications que vous apportez à ces politiques affectent immédiatement tous les ensembles de données qui utilisent ces politiques, même si l’offre de données est déjà enregistrée et liée.
Attribuez vos politiques dans la spécification de l’offre de données sous le champ
freeform_sql_policies. Important : Tous les noms de colonnes utilisés sousfreeform_sql_policiesdoit utiliser le nom de colonne généré automatiquement si la colonne a été renommée. Le renommage affecte uniquement les colonnes de catégories standard de jointure.Ces politiques ne sont pas appliquées directement à la table source, mais uniquement à la vue enregistrée par la collaboration.
Enregistrez l’offre de données de la manière standard en appelant REGISTER_DATA_OFFERING.
Exécution de requêtes libres (exécution d’analyses)¶
Lorsqu’un exécutant d’analyse appelle VIEW_DATA_OFFERINGS, si une valeur apparaît dans la colonne freeform_sql_view_name, la vue SQL libre peut être interrogée directement, sans utiliser de modèle. Toutes les politiques Snowflake appliquées à la table source ou définies dans la section freeform_sql_policies de l’offre de données sont appliquées dans les requêtes.
Colonne |
Valeur |
|---|---|
TEMPLATE_VIEW_NAME |
|
TEMPLATE_JOIN_COLUMNS |
|
ANALYSIS_ALLOWED_COLUMNS |
|
ACTIVATION_ALLOWED_COLUMNS |
|
FREEFORM_SQL_VIEW_NAME |
|
FREEFORM_SQL_COLUMN_POLICIES |
|
SHARED_BY |
|
SHARED_WITH |
|
DATA_OFFERING_ID |
|
Vous devez utiliser la valeur de freeform_sql_view_name et pas la valeur de template_view_name.
Exemple : Collaboration entre deux parties¶
L’exemple suivant illustre une collaboration à deux parties, où une partie (le « fournisseur ») est le propriétaire de la collaboration et un fournisseur de données pour le consommateur. L’autre partie (le « consommateur ») est un exécutant d’analyses qui peut exécuter le modèle et utiliser les données fournies par le fournisseur, et exécuter les requêtes SQL libres sur les données, sous réserve des politiques définies dans la spécification du fournisseur de données.
Pour exécuter cet exemple, vous devez disposer de deux comptes distincts avec Snowflake Data Clean Rooms installé.
Vous pouvez soit télécharger les fichiers et les importer sur votre compte Snowflake, soit copier et coller le code d’exemple dans les feuilles de calcul de deux comptes distincts en utilisant Snowsight.
Téléchargez les fichiers SQL sources, puis importez-les dans deux comptes distincts qui disposent de Snowflake Data Clean Rooms :