Résolution des problèmes Snowflake Data Clean Rooms

Cette page est un guide général de dépannage lors de l’utilisation de salles blanches. Si vous utilisez l” API, assurez-vous de lire la documentation de référence de toutes les procédures que vous appelez, ainsi que les instructions relatives aux cas d’utilisation, pour voir si votre problème y est traité.

Si vous êtes un développeur, consultez les instructions de dépannage du développeur pour en savoir plus.

Problèmes relatifs à l’installation

Analysis and template issues

Erreur:

Échec lors du développement de la vue partagée <CLEAN ROOM VIEW NAME> en tant que propriétaire de vue : Autorisation insuffisante pour résoudre la table externe/Iceberg <TABLE_NAME> partagée par l’application SAMOOHA_CLEANROOM_APP_<CLEAN ROOM ID>

Cause:

Vous essayez d’accéder à des tables externes ou Iceberg, mais les tables externes et Iceberg ne sont pas activées à la fois dans les comptes du fournisseur et du consommateur.

Solution:

Assurez-vous que les comptes de fournisseur et de consommateur ont activé les tables externes et Iceberg.


 

Erreur:

Erreur de compilation SQL : Échec lors du développement de la vue partagée '<CLEAN ROOM VIEW NAME>' en tant que propriétaire de vue : L’objet '<some object name>' n’existe pas ou n’est pas autorisé.

Cause:

Les autorisations de salle blanche n’existent plus dans l’ensemble de données auquel vous essayez d’accéder. Cela est probablement dû au fait que l’objet source a été renommé ou remplacé.

Solution:
  • Si le nom de la table a été modifié, remplacez-le par celui qui est lié dans la salle blanche. Vous devrez peut-être aussi réenregistrer l’objet.

  • Si la table a été recréée, enregistrez à nouveau l’objet dans la salle blanche.


 

Erreur:

Query returns zero results and you think that’s wrong.

Causes possibles et solutions:
  • Confirmez qu’aucun côté ne dispose d’une politique de masquage sur les données qui pourrait empêcher leur jointure ou leur affichage.

  • Confirmez que les colonnes de jointure sont formatées de la même manière.

  • Confirm that you are not falling below any fixed threshold settings. The audience overlap has a default threshold of five, meaning that fewer than five rows will be omitted from the results. Ask the provider what the threshold is, and confirm whether you have any overlaps greater than that number; temporarily modify the overlap specifications to guarantee large segment groups to see whether you get results then.


 

Erreur:

Uncaught exception of type 'STATEMENT_ERROR' ... SQL compilation error: invalid URL prefix found ...

Cause:

Le modèle utilise une valeur de chaîne, plutôt qu’un identificateur, pour une colonne ou un nom de table. Cela se produit lorsque le modèle ne convertit pas correctement les variables de chaîne en identificateurs en utilisant soit le filtre sqlsafe ou la fonction IDENTIFIER.

Par exemple, la transmission de p.col1 dans my_column vers le modèle SELECT {{ my_column }} ... se résout en SELECT "p.col1" .... « p.col1 » est une chaîne, et non un identificateur valide (et p. est interprété comme un préfixe URL).

Solution:

Appliquez la fonction IDENTIFIER (préféré) ou le filtre sqlsafe vers la variable :

  • SELECT IDENTIFIER({{ my_column }}) ... (préféré)

  • SELECT {{ my_column | sqlsafe }} ...


 

Erreur:

**FAILURE**: Unauthorized columns: column_name

Cause:

Votre requête utilise une colonne de données du collaborateur qui ne fait pas partie de la politique d’utilisation du collaborateur dans la salle blanche. Par exemple, vous essayez de SELECT une colonne de données de collaborateur qui ne figure pas dans sa politique de colonnes.

Solution:

Utilisez une colonne que votre collaborateur a approuvée pour la projection, la jointure ou l’activation dans votre requête. Inspectez le modèle pour les filtres de politique en appelant consumer.view_template_definition, puis regardez quelles colonnes le fournisseur vous autorise à projeter ou à joindre en appelant consumer.view_provider_join_policy ou consumer.view_provider_column_policy. Enfin, mettez à jour votre requête pour passer dans une colonne approuvée, ou demandez à votre collaborateur d’ajuster sa politique d’utilisation pour inclure la colonne que vous souhaitez utiliser.


 

Erreur:

**FAILURE**: Invalid aliases: P.column name' ou **FAILURE**: Invalid aliases: C.column name'

Cause:

Vous devez utiliser des alias de table en lettres majuscules P ou C pour définir un nom de colonne. Vous devez utiliser des alias en lettres minuscules p ou c pour définir un nom de colonne. (Le modèle lui-même peut utiliser des majuscules ou des minuscules pour*déclarer* l’alias).

Solution:

Utilisez toujours un alias en minuscules pour définir une colonne.

Exemple :

-- Always scope the column name with a lowercase alias.
-- The casing of the alias declared for the table doesn't matter.

-- These will fail.
SELECT P.hashed_email FROM mydb.mysch.t1 AS P;
SELECT P.hashed_email FROM mydb.mysch.t1 AS p;

-- These will succeed.
SELECT p.hashed_email FROM mydb.mysch.t1 AS P;
SELECT p.hashed_email FROM mydb.mysch.t1 AS p;
Copy

 

Erreur:

**FAILURE**: Invalid aliases: database name.schema name.column name

Cause:

Vous devez toujours référencer les colonnes à l’aide des alias p ou c déclarés pour une table. Les colonnes ne peuvent pas référencer une table par son chemin complet.

Non valide : SELECT hashed_email FROM mydb.mysch.t1;

Solution:

Utilisez l’alias de table p ou c (en minuscules !) pour référencer une colonne :

Valide : SELECT p.hashed_email FROM mydb.mysch.t1 AS p;

Problèmes inter-cloud

Erreur:

Analysis Execution Failure: 'SnowparkSQLException' due to Database Listing Conflict dans une salle blanche de test à compte unique

Cause:

L’exécution automatique inter-cloud n’est pas prise en charge avec les salles blanches de test à compte unique.

Solution:

Désactivez l’exécution automatique inter-cloud dans ce compte de salles blanches en appelant library.disable_laf_on_account pendant les tests, ou n’essayez pas de faire des appels de procédures inter-cloud dans cette salle blanche.

Problèmes liés au connecteur de données cloud

Si vous rencontrez des problèmes avec un connecteur de données externe pour AWS, Azure ou Google Cloud Storage, voir Snowflake Data Clean Rooms : dépannage des connecteurs de données externes.

Problèmes relatifs aux journaux de requêtes

Erreur:

**Failure**: Request logs unable to be mounted. Try again.

Cause:

Le montage des journaux de requêtes a abouti pour la salle blanche interne, mais a échoué pour la salle blanche externe du même compte. Les salles blanches internes ont moins d’exigences que les salles blanches externes. Votre installation répondait aux exigences pour l’utilisation de salles blanches internes, mais pas pour les salles blanches externes.

Solution:

Confirmez que votre adresse e-mail a été validée par des salles blanches et que vous remplissez toutes les exigences du compte des salles blanches.

Problèmes relatifs à l’accès aux données

Directives générales sur les problèmes d’accès aux données

Vous pouvez obtenir un message d’erreur signalant l’impossibilité d’accéder à une source de données à plusieurs points du flux d’utilisation :

Si l’erreur s’est produite lors du processus d’enregistrement :

  • Vous avez mal orthographié le nom ou le chemin d’accès de la table, si vous utilisez l’API.

  • S’il s’agit d’une table externe ou Iceberg, confirmez que vous avez rempli les exigences et procédure pour l’enregistrement d’une table externe ou Iceberg.

  • Confirmez que votre rôle actuel dispose du privilège OWNERSHIP pour l’objet en cours d’enregistrement.

Si l’erreur s’est produite pendant le processus de liaison :

  • Dans l’API, vous utilisez peut-être le mauvais rôle.

  • L’objet n’a peut-être pas été enregistré. Dans l’API, si vous essayez de lier un objet qui n’est pas enregistré, une erreur apparaîtra. Dans l’UI, vous ne devez voir que les objets qui ont été enregistrés comme disponibles pour la liaison.

  • Confirmez que SAMOOHA_APP_ROLE dispose des privilèges USAGE et SELECT pour votre objet.

  • La table a peut-être été déplacée, renommée ou ses autorisations (ou toute autorisation de politique Snowflake) ont peut-être été modifiées depuis son enregistrement. Lorsque cela se produit, vous pouvez également voir l’erreur Erreur de contrôle d’accès SQL : Privilèges insuffisants pour effectuer des opérations sur la table...

Si l’erreur s’est produite après que les données ont été enregistrées et liées correctement :

Si vous utilisez l’API, confirmez que vous avez bien orthographié le nom complet de la table.

Data access errors

Erreur:

L’objet '<some_object_name>' n’existe pas ou n’est pas autorisé

Cause:

La table source a peut-être été déplacée, renommée ou ses autorisations (ou les autorisations sur une politique ou un objet ancêtre dont elle dépend) ont peut-être été modifiées.

Solution:

Essayez de réenregistrer et de lier à nouveau l’objet dans votre compte, ou déplacez l’objet à l’ancien emplacement, ou annulez toutes les autorisations supplémentaires ajoutées.


 

Erreur:

Autorisation insuffisante pour résoudre la table externe/Iceberg

Cause:

Si une table externe ou Iceberg est utilisée dans votre requête, la table n’a pas été enregistrée correctement.

Solution:

Voir Activation des tables externes et Apache Iceberg™ pour vous assurer que vous remplissez les exigences et les procédures relatives à l’utilisation de ces types de tables. Vous pouvez parfois résoudre ce problème en accordant explicitement SELECT sur la table à SAMOOHA_BY_SNOWFLAKE.


 

Erreur:

non approuvé : colonnes non autorisées utilisées erreur à la suite de l’analyse de l’exécution

Cause:

Vous joignez ou projetez la colonne d’un collaborateur par rapport à la politique de jointure ou de colonne du collaborateur.

Solution:

Afficher les politiques de jointure et de colonne définies par votre collaborateur en appelant consumer.view_provider_column_policy et consumer.view_provider_join_policy.

CALL samooha_by_snowflake_local_db.consumer.view_provider_join_policy($cleanroom_name);
CALL samooha_by_snowflake_local_db.consumer.view_provider_column_policy($cleanroom_name);
Copy

Vous avez peut-être également épuisé votre budget de confidentialité :

CALL samooha_by_snowflake_local_db.consumer.view_remaining_privacy_budget($cleanroom_name);
Copy

 

Erreur:

Lorsque le consommateur appelle une procédure qui prend un nom de salle blanche et obtient Application 'SAMOOHA_CLEANROOM_APP<un nom>' does not exist or not authorized.

Cause:

Si le nom de la salle blanche est indiqué comme SAMOOHA_CLEANROOM_APP<cleanroom name> plutôt que SAMOOHA_CLEANROOM_APP_<cleanroom name>, (absence du trait de soulignement après SAMOOHA_CLEANROOM_APP), le fournisseur n’a pas installé l’environnement des salles blanches de la bonne manière dans son compte.

Solution:

Indiquez au fournisseur qu’il doit installer l’environnement des salles blanches dans son compte en suivant les instructions données ici : Installation de l’environnement Snowflake Data Clean Rooms. Après cela, le fournisseur peut recréer et partager la salle blanche.

Problèmes relatifs aux tables externes et Iceberg

Erreur:

Échec lors du développement de la vue partagée <CLEAN ROOM VIEW NAME> en tant que propriétaire de vue : Autorisation insuffisante pour résoudre la table externe/Iceberg <TABLE_NAME> partagée par l’application SAMOOHA_CLEANROOM_APP_<CLEAN ROOM ID>

Cause:

Les tables externes ou Iceberg ne sont pas activées à la fois dans les comptes fournisseur et consommateur.

Solution:

Assurez-vous que les comptes de fournisseur et de consommateur ont activé les tables externes et Iceberg.


 

Erreur:

Le consommateur obtient Fonctionnalité restreinte non valide 'external_data' lors de la liaison dans une table externe ou Iceberg.

Cause:

Le fournisseur n’a pas encore activé les tables externes et Iceberg.

Solution:

Le fournisseur doit terminer le processus d’activation des tables externes et Iceberg pour leur compte. Si cela est effectué dans le code, le fournisseur doit vérifier les résultats de l’analyse de sécurité et, en cas de succès, mettre à jour la version par défaut.


 

Erreur:

Autorisation insuffisante pour résoudre la table externe/Iceberg erreur lors de l’exécution d’une analyse impliquant une table externe ou Iceberg.

Cause:

La table n’a probablement pas été enregistrée correctement par le fournisseur et par le consommateur.

Solution:

Lisez les informations d’enregistrement des tables externes et Iceberg et veillez à suivre toutes les instructions, tant du côté du fournisseur que du côté du consommateur.