Snowflake Data Clean Rooms API de collaboration

Introduction

Il s’agit de la page de référence de l’API de collaboration Snowflake Data Clean Rooms. Cette API utilise les schémas COLLABORATION et REGISTRY.

Note

Vous devez désactiver les rôles secondaires dans votre environnement lorsque vous utilisez l’API de collaboration :

USE SECONDARY ROLES NONE;

Pour savoir comment configurer votre environnement de développement, consultez Paramétrage de votre environnement.

Pour savoir comment gérer l’accès aux procédures de l’API de collaboration, consultez Utiliser les privilèges DCR pour gérer les privilèges des comptes, des objets et des procédures.

Aide-mémoire en matière de métadonnées

Voici comment trouver des informations fréquemment demandées sur une collaboration :

Pour apprendre cela…

Appeler cette

Quelles collaborations puis-je rejoindre ?

VIEW_COLLABORATIONS - Rechercher des collaborations où la colonne collaboration_name est NULL.

Quelles collaborations ai-je rejointes ?

VIEW_COLLABORATIONS - Rechercher des collaborations où la colonne collaboration_name n’est pas NULL, qui peut signifier que vous avez créé ou rejoint la collaboration.

Quelles collaborations puis-je posséder ?

VIEW_COLLABORATIONS - Regarder dans la colonne owner_account.

Quel est le statut de tous les collaborateurs d’une collaboration ?

GET_STATUS

Quel est mon statut de jointure ou de création dans une collaboration ?

GET_STATUS ou VIEW_COLLABORATIONS

Qui possède une collaboration donnée ?

GET_STATUS - Rechercher OWNER dans la colonne roles.

Quel est mon rôle de collaboration dans une collaboration donnée ?

GET_STATUS - Regarder dans la colonne roles.

Quels rôles de collaboration sont attribués dans une collaboration donnée ?

GET_STATUS - Regarder dans la colonne roles.

Quelles sont les spécifications dans une collaboration donnée ?

VIEW_COLLABORATIONS - Regarder dans la colonne collaboration_spec.

Les spécifications sont-elles à jour ?

Il n’y a aucun moyen de savoir si les spécifications données ont des modifications en cours, mais vous pouvez appeler VIEW_COLLABORATIONS pour savoir quand les dernières mises à jour ont été appliquées.

Quelles sont les demandes de mise à jour en attente ?

VIEW_UPDATE_REQUESTS. Rechercher des lignes où STATUS = PENDING_MY_APPROVAL.

Afficher les spécifications d’une collaboration donnée

REVIEW renvoie les spécifications de collaboration. Si vous avez déjà appelé REVIEW ou rejoint la collaboration, appelez la commande SQL suivante avec le nom de votre collaboration comme indiqué :

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.
  VIEW_COLLABORATIONS() ->>
    SELECT "COLLABORATION_SPEC" FROM $1
      WHERE "SOURCE_NAME" = <collaboration name>;

Procédures de modèle

REGISTER_TEMPLATE

Schéma:

REGISTRY

Enregistre un modèle pour lui permettre d’être utilisé dans une collaboration. Chaque modèle enregistré doit disposer d’une combinaison nom-version unique pour tous les modèles dans tous les registres de votre compte.

Syntaxe

REGISTER_TEMPLATE( ['<registry_name>' ,] <template_spec> )

Arguments

registry_name (Facultatif)

Nom d’un registre personnalisé dans lequel enregistrer ce modèle. Si non spécifié, enregistre le modèle dans le registre de compte par défaut.

template_spec

Définition du modèle en format YAML, sous forme de chaîne.

Renvoie

Un ID de modèle à utiliser dans la spécification de collaboration.

Exemples

Enregistrer un modèle dans le registre par défaut :

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_TEMPLATE(
  $$
  api_version: 2.0.0
  spec_type: template
  name: my_test_template
  version: 2026_01_12_V1
  type: sql_analysis
  description: A test template
  template:
    SELECT * FROM IDENTIFIER({{ source_table[0] }}) LIMIT 10;
$$);

Enregistrer un modèle dans un registre personnalisé :

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_TEMPLATE(
  'my_custom_registry',
  $$
  api_version: 2.0.0
  spec_type: template
  name: my_test_template
  version: 2026_01_12_V1
  type: sql_analysis
  description: A test template
  template:
    SELECT * FROM IDENTIFIER({{ source_table[0] }}) LIMIT 10;
$$);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle qui s’est vu accorder des privilèges en appelant les procédures suivantes.

Pour enregistrer des objets dans le registre par défaut :

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER TEMPLATE', 'role name')

Pour enregistrer des éléments dans un registre personnalisé :

  • Vous disposez de privilèges de lecture et d’écriture sur tout registre personnalisé que vous avez créé vous-même.

  • Pour accéder à un registre personnalisé créé par un autre utilisateur, vous devez GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'MY_REGISTRY', 'role name').


VIEW_REGISTERED_TEMPLATES

Schéma:

REGISTRY

Répertorie tous les modèles que vous avez enregistrés. Pour enregistrer un modèle, appelez REGISTRY.REGISTER_TEMPLATE.

Syntaxe

VIEW_REGISTERED_TEMPLATES( [ '<registry_name>' ] )

Arguments

registry_name (Facultatif)

Nom d’un registre personnalisé pour répertorier des modèles. Si non spécifié, répertorie les modèles à partir du registre de compte par défaut.

Renvoie

Une table qui répertorie les détails de tous les modèles que vous avez enregistrés dans ce compte. Le tableau comprend les colonnes suivantes :

  • TEMPLATE_ID : ID du modèle.

  • NAME : Nom du modèle.

  • VERSION : Version du modèle.

  • TEMPLATE_SPEC : Spécification YAML complète du modèle.

  • REGISTRY : Registre dans lequel le modèle est enregistré.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_TEMPLATES();

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes.

Pour voir les éléments du registre par défaut :

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED TEMPLATES', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Pour afficher les éléments d’un registre personnalisé :

  • Vous disposez de privilèges de lecture et d’écriture sur tout registre personnalisé que vous avez créé vous-même.

  • Pour accéder à un registre personnalisé créé par un autre utilisateur, vous devez GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'MY_REGISTRY', 'role name').


ADD_TEMPLATE_REQUEST

Schéma:

COLLABORATION

Envoie une requête pour lier un modèle à une collaboration existante. Si l’expéditeur est concerné par la requête, il approuve automatiquement la requête ; tous les autres collaborateurs concernés doivent approuver la demande d’application de la modification. Tous les collaborateurs doivent appeler cette procédure pour lier un modèle à une collaboration existante, même le propriétaire de la collaboration.

Pour ajouter des partages de modèles supplémentaires, vous pouvez rappeler cette procédure avec leurs alias. Chaque appel ajoute les utilisateurs répertoriés dans share_with à la liste existante des contributeurs.

Pour voir le statut de la requête, appelez VIEW_UPDATE_REQUESTS.

Consultez le flux de lien de modèles.

Syntaxe

ADD_TEMPLATE_REQUEST( <collaboration_name>, <template_id>, <share_with> )

Arguments

collaboration_name

Nom de la collaboration à laquelle lier le modèle.

template_id

ID du modèle à lier à la collaboration. Enregistrez le modèle pour obtenir cette valeur.

share_with

Tableau d’alias de gestionnaires d’analyses avec lesquels partager ce modèle. Les collaborateurs répertoriés ici seront ajoutés en plus des autres collaborateurs associés à ce modèle. Tous les collaborateurs répertoriés ici doivent être des gestionnaires d’analyses, sinon la procédure échouera sans partager ce modèle avec personne.

Renvoie

Une chaîne représentant un message de réussite.

Exemple

-- Ask to link the template only for Collaborator3 in this collaboration.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.ADD_TEMPLATE_REQUEST(
  $collaboration_name,
  $template_alias,
  ['Collaborator3']
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle qui s’est vu accorder des privilèges en appelant les procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • Un des privilèges suivants :

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name'), ainsi que tous les privilèges supplémentaires au niveau du compte qui doivent être accordés manuellement au rôle.

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name'), ainsi que tous les privilèges supplémentaires au niveau du compte qui doivent être accordés manuellement au rôle.

  • Si le modèle se trouve dans un registre personnalisé, vous devez également disposer de GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE( 'READ', 'registry name', 'role name').


REMOVE_TEMPLATE

Schéma:

COLLABORATION

Requête asynchrone pour supprimer un modèle d’une collaboration donnée pour des collaborateurs spécifiés. Seul le collaborateur qui a enregistré le modèle peut supprimer un modèle. Aucune approbation n’est nécessaire pour supprimer un modèle que vous avez enregistré. Lorsqu’un modèle est supprimé pour un collaborateur, ce collaborateur ne peut pas voir ou utiliser le modèle.

Syntaxe

REMOVE_TEMPLATE( <collaboration_name>, <template_id>, <remove_for> )

Arguments

collaboration_name

Nom de la collaboration à partir de laquelle le modèle doit être supprimé.

template_id

ID du modèle à supprimer de la collaboration.

remove_for

Tableau d’un ou plusieurs alias de gestionnaires d’analyses de cette collaboration qui ne devraient plus être en mesure de voir ou d’utiliser ce modèle.

Renvoie

Une chaîne représentant un message de réussite. Pour voir si un modèle a été supprimé pour un collaborateur, consultez les spécifications de la collaboration.

Exemple

-- Prevent collaborator_1234 from using the specified template
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REMOVE_TEMPLATE(
  $collaboration_name,
  $template_id,
  ['collaborator_1234']
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle qui s’est vu accorder des privilèges en appelant les procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • Un des privilèges suivants :

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name'), ainsi que tous les privilèges supplémentaires au niveau du compte qui doivent être accordés manuellement au rôle.

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name'), ainsi que tous les privilèges supplémentaires au niveau du compte qui doivent être accordés manuellement au rôle.

  • Si le modèle se trouve dans un registre personnalisé, ou fait référence à une spécification de code dans un registre personnalisé, vous devez également disposer de GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE( 'READ', 'registry name', 'role name').


VIEW_TEMPLATES

Schéma:

COLLABORATION

Affiche tous les modèles que vous pouvez exécuter ou que vous avez soumis à la collaboration spécifiée.

Syntaxe

VIEW_TEMPLATES( <collaboration_name> )

Arguments

collaboration_name

Nom de la collaboration. Vous devez consulter ou rejoindre cette collaboration avant de pouvoir répertorier ses modèles.

Renvoie

Une table qui répertorie les informations sur les modèles que vous pouvez exécuter dans cette collaboration, y compris les modèles que vous avez enregistrés. Le tableau comprend les colonnes suivantes :

  • template_id : ID du modèle. Spécifiez cette valeur dans le champ template ou pour le paramètre template_id de votre commande RUN.

  • template_spec : La spécification de modèle pour ce modèle, qui inclut l’ensemble du JinjaSQL pour ce modèle.

  • parameters : Une description de tous les arguments acceptés par ce modèle, au format JSON. Les informations relatives à chaque paramètre comprennent le nom, la valeur par défaut, la description rédigée par le fournisseur du modèle, et une mention indiquant si le paramètre est obligatoire ou non. Spécifiez les valeurs pour ces paramètres dans votre commande RUN.

  • shared_by : Le collaborateur qui a enregistré ce modèle.

  • shared_with : Les collaborateurs avec lesquels ce modèle est partagé.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_TEMPLATES(
  $collaboration_name
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW TEMPLATES', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


ENABLE_TEMPLATE_AUTO_APPROVAL

Schéma:

COLLABORATION

Toutes les demandes de mise à jour des modèles envoyées par d’autres collaborateurs sont approuvées automatiquement. Les demandes apparaîtront toujours dans le journal des demandes. Cela concerne uniquement les demandes envoyées après l’activation de l’approbation automatique.

Syntaxe

ENABLE_TEMPLATE_AUTO_APPROVAL( <collaboration_name> )

Arguments

collaboration_name

Nom de la collaboration.

Renvoie

Une chaîne représentant un message de réussite.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.ENABLE_TEMPLATE_AUTO_APPROVAL(
  $collaboration_name
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


DISABLE_TEMPLATE_AUTO_APPROVAL

Schéma:

COLLABORATION

Désactive l’approbation automatique des requêtes de modèles soulevées par d’autres collaborateurs. Toutes les requêtes futures doivent être approuvées manuellement en appelant APPROVE_UPDATE_REQUEST.

Syntaxe

DISABLE_TEMPLATE_AUTO_APPROVAL( <collaboration_name> )

Arguments

collaboration_name

Nom de la collaboration.

Renvoie

Une chaîne représentant un message de réussite.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.DISABLE_TEMPLATE_AUTO_APPROVAL(
  $collaboration_name
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Procédures relatives à l’offre de données

REGISTER_DATA_OFFERING

Schéma:

REGISTRY

Enregistre une offre de données afin qu’elle puisse être liée à une définition de collaboration. Vous ne pouvez pas annuler l’enregistrement d’une offre de données enregistrée. Vous ne pouvez pas remplacer une offre de données existante, mais vous pouvez en enregistrer une nouvelle portant le même nom et affichant une nouvelle version. La création d’une nouvelle version d’une offre de données ne supprime pas les versions antérieures.

Chaque offre de données doit disposer d’une combinaison nom-version unique pour toutes les offres de données dans tous les registres de votre compte.

Si vous souhaitez partager cette table avec d’autres personnes au sein de la collaboration, incluez la table dans la spécification de la collaboration avant que la collaboration ne soit créée.

Vous devez disposer du privilège REFERENCE_USAGE avec GRANT OPTION sur toutes les données que vous partagez dans le cadre d’une collaboration. Si cela n’est pas le cas, vous obtiendrez une erreur de type « octroi d’utilisation de référence manquante » lorsque vous essayerez de rejoindre la collaboration ou d’enregistrer l’objet. Découvrez comment résoudre ce problème.

Syntaxe

REGISTER_DATA_OFFERING( ['<registry_name>' ,] <data_offering_spec> )

Arguments

registry_name (Facultatif)

Nom d’un registre personnalisé dans lequel enregistrer cette offre de données. Si non spécifié, enregistre l’offre de données dans le registre de comptes par défaut.

data_offering_spec

Une définition de l’offre de données en format YAML qui décrit cette offre de données.

Renvoie

L’ID d’offre de données à utiliser dans un champ data_offerings.id de collaboration.

Exemples

Enregistrer une offre de données dans le registre par défaut :

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_DATA_OFFERING(
    $$
    api_version: 2.0.0
    spec_type: data_offering
    version: v1
    name: customers
    datasets:
     - alias: customers_1
       data_object_fqn: SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS
       allowed_analyses: template_only
       schema_and_template_policies:
         hashed_email:
           category: join_custom
         status:
           category: passthrough
    $$
  );

Enregistrer une offre de données dans un registre personnalisé :

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_DATA_OFFERING(
    'my_custom_registry',
    $$
    api_version: 2.0.0
    spec_type: data_offering
    version: v1
    name: customers
    datasets:
     - alias: customers_1
       data_object_fqn: SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS
       allowed_analyses: template_only
       schema_and_template_policies:
         hashed_email:
           category: join_custom
         status:
           category: passthrough
    $$
  );

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle qui s’est vu accorder des privilèges en appelant les procédures suivantes.

Enregistrer une offre de données dans le registre par défaut :

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER DATA OFFERING', 'role name')

Pour enregistrer des éléments dans un registre personnalisé :

  • Vous disposez de privilèges de lecture et d’écriture sur tout registre personnalisé que vous avez créé vous-même.

  • Pour accéder à un registre personnalisé créé par un autre utilisateur, vous devez GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'MY_REGISTRY', 'role name').


VIEW_REGISTERED_DATA_OFFERINGS

Schéma:

REGISTRY

Répertorie toutes les offres de données que vous avez enregistrées. Pour voir les offres de données dans une collaboration liée par d’autres personnes, appelez COLLABORATION.VIEW_DATA_OFFERINGS.

Syntaxe

VIEW_REGISTERED_DATA_OFFERINGS( [ '<registry_name>' ] )

Arguments

registry_name (Facultatif)

Nom d’un registre personnalisé pour répertorier des offres de données. Si non spécifié, répertorie les offres de données du registre de comptes par défaut.

Renvoie

Une table qui répertorie les détails de toutes les offres de données que vous avez enregistrées dans ce compte. Le tableau comprend les colonnes suivantes :

  • DATA_OFFERING_ID : ID de l’offre de données.

  • NAME : Nom de l’offre de données.

  • VERSION : Version de l’offre de données.

  • DATA_OFFERING_SPEC : Spécification YAML complète de l’offre de données.

  • REGISTRY : Registre dans lequel l’offre de données est enregistrée.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS();

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes.

Pour voir les éléments du registre par défaut :

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED DATA OFFERINGS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Pour afficher les éléments d’un registre personnalisé :

  • Vous disposez de privilèges de lecture et d’écriture sur tout registre personnalisé que vous avez créé vous-même.

  • Pour accéder à un registre personnalisé créé par un autre utilisateur, vous devez GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'MY_REGISTRY', 'role name').


VIEW_DATA_OFFERINGS

Schéma:

COLLABORATION

Répertorie toutes les offres de données présentes dans une collaboration spécifiée auxquelles vous pouvez accéder en tant qu’exécuteur d’analyses ou que vous avez liées vous-même. Pour voir uniquement les offres de données que vous avez enregistrées, appelez REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS.

Vous pouvez voir les offres de données du collaborateur X uniquement après que X a rejoint la collaboration.

Syntaxe

VIEW_DATA_OFFERINGS( <collaboration_name> )

Arguments

collaboration_name

Nom de la collaboration à explorer.

Renvoie

Informations sur toutes les offres de données de la collaboration spécifiée. Le tableau comprend les colonnes suivantes :

  • template_view_name : Nom de la vue pleinement qualifié utilisé pour référencer les offres lors de l’appel de RUN pour interroger à l’aide d’un modèle. Spécifiez ce nom dans le champ source_tables dans la spécification RUN.

  • template_join_columns : Noms des colonnes de cette table qui peuvent être utilisées dans les jointures dans les requêtes basées sur des modèles.

  • analysis_allowed_columns : Noms des colonnes de cette table qui peuvent être projetées dans les requêtes basées sur des modèles.

  • activation_allowed_columns : Noms des colonnes de cette table qui peuvent être activées.

  • freeform_sql_view_name : Nom de la vue pleinement qualifié utilisé dans les requêtes SQL de forme libre, lorsque l’ensemble de données prend en charge les requêtes SQL de forme libre. Cette cellule est vide si l’ensemble de données ne propose pas de requêtes SQL de forme libre.

  • freeform_sql_column_policies : Une représentation JSON de toutes les politiques de colonnes de forme libre dans cette collaboration, classées par type de politique.

  • shared_by : Le collaborateur qui a lié cette offre de données.

  • shared_with : Qui peut utiliser les données dans une analyse. Si cette valeur est LOCAL, il s’agit d’un ensemble de données local qui n’est partagé avec aucun collaborateur, à l’exception de la partie qui héberge les données.

  • data_offering_id : L’ID unique de cette offre de données, générée lors de son enregistrement.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_DATA_OFFERINGS(
  $collaboration_name
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW DATA OFFERINGS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Procédures de fonctions personnalisées

REGISTER_CODE_SPEC

Schéma:

REGISTRY

Enregistre un bundle de code. Cela stocke le code dans l’environnement des salles blanches dans la table REGISTRY.CODE_SPECS. Une fois qu’une spécification de code est enregistrée, elle peut être utilisée par un modèle.

Chaque spécification de code enregistrée doit avoir une combinaison nom-version unique dans tous les registres de votre compte.

Syntaxe

REGISTER_CODE_SPEC( ['<registry_name>' ,] <code_spec> )

Arguments

registry_name (Facultatif)

Nom d’un registre personnalisé dans lequel enregistrer cette spécification de code. Si non spécifié, enregistre le bundle de code dans le registre de compte par défaut.

code_spec

Définition de la spécification du bundle de code au format YAML, sous forme de chaîne.

Renvoie

L’ID de la spécification du bundle de code générée.

Exemples

Enregistrer un bundle de code dans le registre par défaut :

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_CODE_SPEC(
  $$
  api_version: 2.0.0
  spec_type: code_spec
  name: custom_udf
  version: v1
  description: Custom UDF for data normalization

  functions:
    - name: normalize_value
      type: UDF
      language: PYTHON
      runtime_version: "3.10"
      handler: normalize
      arguments:
        - name: value
          type: FLOAT
        - name: min_val
          type: FLOAT
        - name: max_val
          type: FLOAT
      returns: FLOAT
      code_body: |
        def normalize(value, min_val, max_val):
            if max_val == min_val:
                return 0.0
            return (value - min_val) / (max_val - min_val)
  $$
);

Enregistrer un bundle de code dans un registre personnalisé :

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_CODE_SPEC(
  'my_custom_registry',
  $$
  api_version: 2.0.0
  spec_type: code_spec
  name: custom_udf
  version: v1
  description: Custom UDF for data normalization

  functions:
    - name: normalize_value
      type: UDF
      language: PYTHON
      runtime_version: "3.10"
      handler: normalize
      arguments:
        - name: value
          type: FLOAT
        - name: min_val
          type: FLOAT
        - name: max_val
          type: FLOAT
      returns: FLOAT
      code_body: |
        def normalize(value, min_val, max_val):
            if max_val == min_val:
                return 0.0
            return (value - min_val) / (max_val - min_val)
  $$
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle qui s’est vu accorder des privilèges en appelant les procédures suivantes.

Pour enregistrer des objets dans le registre par défaut :

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER CODE SPEC', 'role name')

Pour enregistrer des éléments dans un registre personnalisé :

  • Vous disposez de privilèges de lecture et d’écriture sur tout registre personnalisé que vous avez créé vous-même.

  • Pour accéder à un registre personnalisé créé par un autre utilisateur, vous devez GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'MY_REGISTRY', 'role name').


VIEW_REGISTERED_CODE_SPECS

Schéma:

REGISTRY

Répertorie toutes les spécifications de bundle de code enregistrées par ce rôle dans le registre de comptes local.

Syntaxe

VIEW_REGISTERED_CODE_SPECS( [ '<registry_name>' ] )

Arguments

registry_name (Facultatif)

Nom d’un registre personnalisé pour répertorier les bundles de code. Si non spécifié, répertorie les bundles de code du registre de comptes par défaut.

Renvoie

Une table qui répertorie les détails de tous les bundles de code que vous avez enregistrés dans ce compte. Le tableau comprend les colonnes suivantes :

  • code_spec_id : ID de la spécification du bundle de code.

  • name : Nom de la spécification du bundle de code.

  • version : Version de la spécification du bundle de code.

  • code_spec : Spécification YAML complète de la spécification du bundle de code.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_CODE_SPECS();

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes.

Pour voir les éléments du registre par défaut :

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED CODE SPECS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Pour afficher les éléments d’un registre personnalisé :

  • Vous disposez de privilèges de lecture et d’écriture sur tout registre personnalisé que vous avez créé vous-même.

  • Pour accéder à un registre personnalisé créé par un autre utilisateur, vous devez GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'MY_REGISTRY', 'role name').


VIEW_CODE_SPECS

Schéma:

COLLABORATION

Renvoie toutes les spécifications de bundle de code qui sont référencées par n’importe quel modèle que vous avez créé ou que vous pouvez exécuter dans la collaboration spécifiée.

Syntaxe

VIEW_CODE_SPECS( <collaboration_name> )

Arguments

collaboration_name

Nom de la collaboration.

Renvoie

Une table qui répertorie les bundles de code disponibles dans la collaboration spécifiée. Le tableau comprend les colonnes suivantes :

  • code_spec_id : ID de cette spécification de bundle de code.

  • code_spec : Spécification YAML complète de la spécification du bundle de code.

  • shared_by : Alias du collaborateur qui a partagé la spécification du bundle de code.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_CODE_SPECS(
  $collaboration_id
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW CODE SPECS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Mettre à jour les procédures de demande

Ces procédures sont utilisées pour gérer les demandes de mise à jour de la collaboration qui nécessitent une approbation, telles que le flux de lien de modèles.

VIEW_UPDATE_REQUESTS

Schéma:

COLLABORATION

Consultez toutes les demandes de mise à jour que vous avez créées ou que vous pouvez approuver ou refuser, dans la collaboration spécifiée. Cela inclut toutes les modifications de collaboration telles que l’ajout d’offres de données, de modèles et de paquets de code. Cette procédure indique l’état de la mise à jour. L’apparition dans la liste des requêtes d’une demande de mise à jour peut prendre quelques secondes, de sorte que vous ne verrez peut-être pas une demande que vous venez tout juste d’envoyer.

Consultez le flux de lien de modèles.

Syntaxe

VIEW_UPDATE_REQUESTS( <collaboration_name> )

Arguments

collaboration_name

Nom de la collaboration.

Renvoie

Une table des demandes de mise à jour envoyées dans cette collaboration. Informations comprises

  • id : l’ID de la requête. Utilisez cette information pour approuver ou refuser une demande.

  • type : Type de requête. Les valeurs suivantes sont prises en charge :

    • Ajouter un modèle

    • Associer l’offre de données

    • Dissocier l’offre de données

    • Supprimer un modèle

  • status : Statut actuel de la demande. Les statuts suivants peuvent être signalés :

    • REQUESTED : La demande a été soumise.

    • PENDING_MY_APPROVAL : La demande est en attente de votre approbation ou de votre rejet.

    • PENDING_PARTNER_APPROVAL : Vous avez approuvé la demande, mais celle-ci doit encore être approuvée par un ou plusieurs autres collaborateurs.

    • REJECTED : Un utilisateur de la collaboration a rejeté cette demande.

    • APPROVED : Tous les approbateurs requis ont approuvé la requête.

    • COMPLETED : L’action de mise à jour a été achevée et les modifications ont été appliquées à la collaboration. Pour les modèles qui incluent un bundle de codes, vous devez toujours vérifier l’état de la mise à niveau pour voir quand le bundle de codes est prêt à être appelé.

    • FAILED : l’action de mise à jour a échoué. Voir la colonne DETAILS pour connaître les détails de l’échec.

  • approval_log : Journal de toutes les approbations et de tous les rejets de la demande. Si la demande est rejetée, la raison invoquée par la partie qui l’a rejetée est également fournie ici.

  • details : Détails spécifiques au type de demande, tels que le nom du modèle, sa description et les personnes avec lesquelles il est partagé pour une demande « Ajouter un modèle ».

  • spec : Les détails de la ressource en cours de mise à jour, comme la spécification du modèle pour une demande « Ajouter un modèle ».

  • updated_on : L’horodatage de la dernière action entreprise sur cette demande (par exemple, une approbation ou un rejet).

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_UPDATE_REQUESTS(
  $collaboration_name
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW UPDATE REQUESTS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


APPROVE_UPDATE_REQUEST

Schéma:

COLLABORATION

Approuve une demande de mise à jour de la collaboration. Consultez la liste des demandes en attente en appelant VIEW_UPDATE_REQUESTS. Une fois que vous avez approuvé une demande, vous ne pouvez pas la rejeter ultérieurement.

Tous les collaborateurs concernés doivent approuver une demande avant que la modification ne soit effectivement appliquée à la collaboration.

Consultez le flux de lien de modèles.

Syntaxe

APPROVE_UPDATE_REQUEST( <collaboration_name>, <request_id> )

Arguments

collaboration_name

Nom de la collaboration.

request_id

L’ID de la requête.

Renvoie

Une chaîne représentant un message de réussite.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.APPROVE_UPDATE_REQUEST(
  $collaboration_name,
  $request_id
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE UPDATE REQUEST', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


REJECT_UPDATE_REQUEST

Schéma:

COLLABORATION

Rejette une demande de mise à jour de la collaboration. Un seul rejet empêche l’application de la modification à la collaboration. Vous ne pouvez pas approuver une demande après l’avoir rejetée.

Syntaxe

REJECT_UPDATE_REQUEST( <collaboration_name>, <request_id>, <reason> )

Arguments

collaboration_name

Nom de la collaboration.

request_id

L’ID de la requête.

reason

Une description compréhensible expliquant pourquoi la demande a été rejetée. L’argument est obligatoire, mais vous pouvez soumettre une chaîne vide.

Renvoie

Une chaîne représentant un message de réussite.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REJECT_UPDATE_REQUEST(
  $collaboration_name,
  'request_1324f934457',
  'Needs more cowbell'
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE UPDATE REQUEST', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Procédures de gestion de la collaboration

INITIALIZE

Schéma:

COLLABORATION

Le propriétaire appelle cette procédure pour créer une collaboration et, éventuellement, rejoindre la collaboration. Si auto_join_warehouse est défini sur FALSE, vous devez appeler JOIN séparément pour mettre la collaboration à la disposition d’autres collaborateurs. Vous devez utiliser le même rôle pour appeler INITIALIZE et JOIN.

Soumettre une définition de collaboration avec la même valeur name en tant que collaboration existante génère une erreur.

Créer et rejoindre une collaboration demande un certain temps. Vous devez donc appeler GET_STATUS pour savoir quand la collaboration a été créée.

Syntaxe

INITIALIZE( <collaboration_spec> [, '<auto_join_warehouse>'] )

Arguments

collaboration_spec

Définition de la collaboration en format YAML, sous forme de chaîne.

auto_join_warehouse (Facultatif)

Chaîne qui spécifie un nom d’entrepôt comme identificateur Snowflake valide. Si spécifiée, la collaboration sera créée et jointe à l’aide de cet entrepôt. Si non spécifiée, l’entrepôt actuel sera utilisé pour créer la collaboration, et vous devez appeler JOIN pour rejoindre la collaboration. Un entrepôt XS est recommandé.

Renvoie

Une table avec les colonnes suivantes :

  • collaboration_name : Nom de la collaboration. Utilisez cette clause dans toutes les procédures qui nécessitent la spécification d’une collaboration.

  • message : Informations sur la demande d’initialisation.

  • auto_join_task : Si auto_join_warehouse a été spécifié, indique si la tâche d’auto-jointure a été créée.

Exemples

L’exemple suivant crée une collaboration dont Alice est la propriétaire et peut exécuter une analyse à l’aide des données fournies par Bob.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.INITIALIZE(
  $$
  api_version: 2.0.0
  spec_type: collaboration
  name: basic_collaboration
  owner: alice
  collaborator_identifier_aliases:
    alice: corp_id.account_id
    bob: corp2_id.account2_id
  analysis_runners:
    alice:
      data_providers:
        bob:
          data_offerings:
          - id: bob_data_v1
      templates:
      - id: alice_test_template_2026_01_12_V1
  $$,
  'APP_WH'
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle qui s’est vu accorder des privilèges en appelant la procédure suivante :

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

    Si vous fournissez le paramètre auto-join-warehouse et que vous utilisez un rôle autre que SAMOOHA_APP_ROLE, le rôle doit également se voir accorder le privilège au niveau du compte EXECUTE TASK.

Consultez GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE pour les autorisations de rôle supplémentaires requises.


TEARDOWN

Schéma:

COLLABORATION

Appelée par le propriétaire pour supprimer une collaboration pour toutes les parties.

Vous devez appeler cette procédure deux fois. Appelez-la une fois, puis appelez GET_STATUS jusqu’à ce qu’elle renvoie LOCAL_DROP_PENDING, puis appelez à nouveau cette procédure.

Note

Cette procédure ne peut être appelée que sur une collaboration que vous avez créée et rejointe. Si vous avez créé la collaboration, mais que vous ne l’avez pas encore rejointe, vous devez la rejoindre avant de pouvoir la supprimer.

Syntaxe

TEARDOWN( <collaboration_name> )

Arguments

collaboration_name

Nom de la collaboration à supprimer.

Renvoie

Une chaîne représentant un message de réussite.

Exemple

-- Start the process.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.TEARDOWN($collaboration_name);

-- Call until it returns LOCAL_DROP_PENDING.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);

-- Final call.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.TEARDOWN($collaboration_name);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Consultez GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE pour les autorisations de rôle supplémentaires requises.


GET_STATUS

Schéma:

COLLABORATION

Affiche des informations sur tous les collaborateurs d’une collaboration donnée.

Lors de l’exécution d’une opération asynchrone telle que la création ou la jointure d’une collaboration, vous devez vérifier le statut pour savoir quand la dernière opération a été terminée avant de pouvoir effectuer des actions supplémentaires sur cette collaboration, telles que l’exécution d’analyses. Cette procédure peut être appelée par tout collaborateur invité à une collaboration.

Les propriétaires de la collaboration peuvent voir le chemin d’état suivant :

  • CREATING » CREATED » INSTALLING » IN_REVIEW (ou INSTALLATION_FAILED) » JOINING » JOINED (ou JOIN_FAILED)

Les non-propriétaires verront le chemin d’état suivant :

  • INSTALLING » IN_REVIEW (ou INSTALLATION_FAILED) » JOINING » JOINED (ou JOIN_FAILED)

Syntaxe

GET_STATUS( <collaboration_name> )

Arguments

collaboration_name

Nom de la collaboration dont vous souhaitez consulter le statut. Vous pouvez afficher une liste de vos collaborations en appelant COLLABORATION.VIEW_COLLABORATIONS. Vous devez être invité à rejoindre une collaboration, ou l’avoir rejointe, avant de pouvoir appeler GET_STATUS.

Renvoie

Une table qui indique les détails de la dernière tentative de jointure pour tous les collaborateurs de la collaboration spécifiée. Le tableau comprend les colonnes suivantes :

  • updated_on : Horodatage lorsque le statut a été signalé par le système.

  • collaborator_account : ID de compte de partage de données de ce collaborateur.

  • collaborator_name : L’alias du collaborateur, tel que déclaré dans la spécification de la collaboration.

  • roles : Les rôles réels et potentiels de ce collaborateur. Les valeurs incluent owner, data_provider, analysis_runner.

  • status : Statut au moment de la mise à jour. Les valeurs suivantes sont prises en charge et indiquent le statut du collaborateur nommé dans la collaboration spécifiée.

    • CREATING : La création de la collaboration a commencé.

    • CREATE_FAILED : Échec de la création de la collaboration.

    • CREATE_TIMED_OUT : La création de la collaboration a expiré.

    • CREATED : La collaboration a été créée et est prête à fonctionner.

    • INSTALLING : Installation du paquet d’application et préparation des détails de la collaboration pour examen.

    • IN_REVIEW : La collaboration est en cours d’examen.

    • INSTALLATION_FAILED : L’installation a échoué. Le paquet d’application n’a pas été installé et ne peut pas être examiné.

    • INVITED : Le participant a été invité.

    • JOINING : Le processus de jointure a commencé.

    • JOIN_FAILED : Le processus de jointure a échoué.

    • JOINED : Vous avez bien joint la collaboration. Vous pouvez commencer à utiliser la collaboration.

    • LEAVING : Le processus de départ a commencé.

    • LEAVE_FAILED : Échec du processus de départ.

    • LEFT : A quitté la collaboration avec succès.

    • LOCAL_DROP_PENDING : Votre demande de quitter la collaboration a bien été enregistrée. Finalisez le processus en appelant TEARDOWN ou LEAVE à nouveau.

    • DROPPING : Le processus visant à quitter la collaboration a commencé.

    • DROPPED : Collaboration quittée avec succès.

    • DROP_FAILED : Échec du processus visant à quitter la collaboration.

  • details : Détails supplémentaires sur l’état actuel, si disponibles.

  • region : La région Cloud de ce collaborateur.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS(
  $collaboration_name
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('GET STATUS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION

Schéma:

ADMIN

Active les tables externes et Apache Iceberg™ à utiliser pour exécuter une analyse de votre compte. Un gestionnaire d’analyse doit appeler cette clause avant d’exécuter une analyse qui inclut des tables externes ou Iceberg. Cette procédure est appelée une fois par collaboration, et non une fois par analyse.

Syntaxe

ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION( <collaboration_name> )

Arguments

collaboration_name

Nom de la collaboration.

Renvoie

Une table avec une colonne MESSAGE contenant un message de réussite.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION(
  $collaboration_name
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel le privilège MANAGE FIREWALL CONFIGURATION a été accordé pour appeler cette procédure.


VIEW_COLLABORATIONS

Schéma:

COLLABORATION

Affichez les informations relatives aux collaborations que vous avez créées, que vous pouvez consulter ou auxquelles vous avez participé.

Syntaxe

VIEW_COLLABORATIONS()

Arguments

Aucun

Renvoie

Une table qui répertorie les détails de toutes les collaborations auxquelles vous pouvez accéder. Le tableau comprend les colonnes suivantes :

  • source_name : Le nom de la collaboration, tel qu’indiqué par la valeur name dans la spécification de collaboration.

  • collaboration_name : Nom de la collaboration installée. Valeur NULL jusqu’à ce que la collaboration soit installée en appelant JOIN (propriétaires) ou REVIEW (non-propriétaires).

  • owner_account : ID de partage de données du compte qui a créé la collaboration.

  • updated_on : Quand la collaboration a été mise à jour pour la dernière fois.

  • collaboration_spec : La spécification de cette collaboration au format YAML. Affiche la dernière version de la collaboration, y compris toutes les ressources liées ou supprimées après la création de la collaboration. Toutefois, il peut y avoir des demandes de mise à jour en cours qui seront bientôt liées, telles que des modèles ou des offres de données nouveaux ou supprimés.

Exemples

Affichez toutes les collaborations :

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS();

Affichez la spécification d’une collaboration donnée par son nom :

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS() ->>
SELECT "COLLABORATION_SPEC" FROM $1 WHERE "SOURCE_NAME" = $collaboration_name;

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW COLLABORATIONS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


REVIEW

Schéma:

COLLABORATION

Fournit des détails sur une collaboration à laquelle vous avez été invité. Appelez COLLABORATION.VIEW_COLLABORATIONS pour voir les collaborations auxquelles vous avez été invité et que vous n’avez pas encore rejointes. Tous les collaborateurs, à l’exception du propriétaire, doivent appeler cette procédure avant d’appeler JOIN. Vous ne pouvez pas appeler cette procédure sur une collaboration que vous avez rejointe. Vous devez utiliser le même rôle pour appeler REVIEW et JOIN. Si votre compte se trouve au sein d’une région d’hébergement Cloud différente de celle du propriétaire, vous devrez peut-être appeler cette procédure plusieurs fois jusqu’à ce qu’elle renvoie une réponse réussie.

Cette procédure installe l’application sous-jacente dans votre compte.

Remarques importantes :

  • Les propriétaires ne peuvent pas appeler REVIEW sur leurs propres collaborations.

  • Tout le monde, sauf le propriétaire, doit appeler REVIEW avant d’appeler JOIN.

  • Après avoir rejoint une collaboration, vous ne pouvez pas appeler REVIEW à nouveau.

Syntaxe

REVIEW( <source_name>, <owner_account> )

Arguments

source_name

Nom de la collaboration à laquelle vous avez été invité à participer. Vous pouvez afficher une liste de vos collaborations en appelant COLLABORATION.VIEW_COLLABORATIONS.

owner_account

Identificateur du compte de partage de données du propriétaire. Vous pouvez le trouver dans la réponse à COLLABORATION.VIEW_COLLABORATIONS.

Renvoie

Table d’informations sur la collaboration, y compris l’ID de collaboration, le propriétaire et la spécification de collaboration.

Si votre compte se situe dans une région d’hébergement Cloud différente que celle du propriétaire de la collaboration, REVIEW peut renvoyer un message indiquant que des étapes de configuration supplémentaires sont encore en cours d’exécution. Si vous obtenez ce message, continuez d’appeler REVIEW jusqu’à ce que la table d’informations sur la collaboration soit renvoyée.

Exemple

-- View the collaboration for your own usage.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REVIEW(
  $collaboration_name,
  'org1.account1234'
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REVIEW COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Consultez GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE pour les autorisations de rôle supplémentaires requises.


JOIN

Schéma:

COLLABORATION

Méthode asynchrone pour rejoindre une collaboration spécifiée. Notez que vous ne pouvez accéder qu’aux ressources répertoriées dans la collaboration au moment de la jointure. L’exécution de cette procédure prend un certain temps.

Vous devez disposer du privilège de compte REGISTER DATA OFFERING pour rejoindre toute collaboration dans laquelle vous pouvez activer des données (c’est-à-dire que vous êtes un gestionnaire d’analyses et que la spécification de la collaboration inclut un champ activation_destinations). Voir le guide de référence de l’API de gestion des accès.

Vous ne pouvez pas avoir de rôle secondaire actif lorsque vous exécutez cette procédure. Exécutez le code SQL suivant pour désactiver tout rôle secondaire :

USE SECONDARY ROLES NONE;

Tout le monde, à l’exception du créateur de la collaboration, doit appeler COLLABORATION.REVIEW avant d’appeler cette procédure.

Cette procédure est asynchrone ; appelez GET_STATUS pour déterminer quand vous avez réussi à rejoindre la collaboration.

Toute personne qui soumet une ressource à la collaboration ou qui souhaite exécuter un modèle dans la collaboration doit d’abord rejoindre la collaboration. Le créateur de la collaboration est automatiquement joint lors de l’appel de INITIALIZE (sauf si auto_join_warehouse est défini sur FALSE).

Syntaxe

JOIN( <collaboration_name> )

Arguments

collaboration_name

Nom de la collaboration à rejoindre. Vous pouvez afficher une liste de vos collaborations en appelant COLLABORATION.VIEW_COLLABORATIONS. Si vous avez été invité à rejoindre plusieurs collaborations portant le même nom, le système sélectionne par défaut la dernière sur laquelle vous avez appelé COLLABORATION.REVIEW.

Renvoie

Une chaîne représentant un message de réussite. Si vous obtenez une erreur concernant l’absence d’autorisation d’utilisation de référence, consultez le guide de dépannage.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.JOIN(
  $collaboration_name
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Consultez GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE pour les autorisations de rôle supplémentaires requises.


LEAVE

Schéma:

COLLABORATION

Quitte une collaboration que vous avez rejointe. Vous ne pouvez pas rejoindre à nouveau une collaboration après l’avoir quittée.

Vous devez appeler cette procédure deux fois. Appelez-la une fois, puis appelez GET_STATUS jusqu’à ce qu’elle renvoie LOCAL_DROP_PENDING, puis appelez à nouveau cette procédure.

Syntaxe

LEAVE( <collaboration_name> )

Arguments

collaboration_name

Nom de la collaboration à quitter.

Renvoie

Une chaîne représentant un message de réussite.

Exemple

-- Start the process.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.LEAVE($collaboration_name);

-- Call until it returns LOCAL_DROP_PENDING.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);

-- Final call.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.LEAVE($collaboration_name);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Consultez GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE pour les autorisations de rôle supplémentaires requises.


GET_CONFIGURATION

Schéma:

COLLABORATION

Renvoie les paramètres de configuration actuels d’une collaboration. Vous devez avoir rejoint la collaboration avant d’appeler cette procédure.

Syntaxe

GET_CONFIGURATION( <collaboration_name> )

Arguments

collaboration_name

Nom de la collaboration.

Renvoie

Une table avec les colonnes suivantes :

Colonne

Description

CONFIGURATION

Nom du paramètre de configuration.

VALUE

Valeur actuelle de la configuration.

STATUS

Indique si la valeur est ACTIVE ou PENDING (une modification a été demandée, mais pas encore appliquée).

Configurations prises en charge

Nom de la configuration

Description

TEMPLATE_AUTO_APPROVAL

Indique si les demandes de mise à jour de modèles provenant d’autres collaborateurs sont automatiquement approuvées. Valeurs : true ou false. Par défaut : false.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_CONFIGURATION(
  $collaboration_name
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


SET_CONFIGURATION

Schéma:

COLLABORATION

Définit une valeur de configuration pour une collaboration. Le changement est asynchrone : appelez GET_CONFIGURATION pour vérifier quand la nouvelle valeur a été appliquée. Vous devez avoir rejoint la collaboration avant d’appeler cette procédure.

Utilisez cette procédure pour gérer l’approbation automatique des modèles au lieu des procédures ENABLE_TEMPLATE_AUTO_APPROVAL et DISABLE_TEMPLATE_AUTO_APPROVAL obsolètes. Définir TEMPLATE_AUTO_APPROVAL sur true active l’approbation automatique, et le définir sur false la désactive.

Syntaxe

SET_CONFIGURATION( <collaboration_name>, <config_name>, <value> )

Arguments

collaboration_name

Nom de la collaboration.

config_name

Nom de la configuration à définir. Consultez GET_CONFIGURATION pour voir les noms de configuration pris en charge.

value

La nouvelle valeur de la configuration. Doit être une valeur valide pour le nom de configuration spécifié.

Renvoie

Un message de chaîne confirmant que la requête a été acceptée.

Exemple

-- Enable automatic approval of template requests
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.SET_CONFIGURATION(
  $collaboration_name,
  'TEMPLATE_AUTO_APPROVAL',
  'true'
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Exécution d’analyses et d’activations

RUN

Schéma:

COLLABORATION

Effectue une analyse dans la salle blanche des données. Vous pouvez transmettre les détails de l’exécution soit sous forme de paramètres individuels, soit en transmettant une analyse de chaîne de spécifications YAML.

Lisez la référence consumer.run_analysis pour obtenir des informations générales sur l’exécution d’un modèle dans une salle blanche de données.

Il existe deux versions de cette procédure : l’une qui prend les arguments d’exécution comme une seule chaîne au format YAML, et une qui prend les arguments comme paramètres individuels.

Syntaxe

Syntaxe de l’argument YAML :

RUN( <collaboration_name>, <analysis_spec> )

Syntaxe des paramètres explicites :

RUN( <collaboration_name>, <template_id>, <template_view_names>, <local_template_view_names>, <arguments> )

Arguments

collaboration_name

Nom de la collaboration dans laquelle cette analyse doit être exécutée.

analysis_spec

Définition de l’analyse au format YAML sous forme de chaîne, décrivant le modèle, les tables et les valeurs de modèle à utiliser dans cette analyse. Utilisée avec la syntaxe de l’argument YAML.

template_id

ID du modèle à exécuter.

template_view_names

Tableau de noms de chaînes des tables sources à utiliser dans l’analyse. Utilisez les noms de table renvoyés par VIEW_DATA_OFFERINGS dans la colonne template_view_name. Le format pour chaque entrée est user_alias.data_offering_id.dataset_alias

local_template_view_names

Tableau des IDs de chaîne de vos propres tables à utiliser dans l’analyse. Vous devez d’abord associer ces tables en appelant LINK_LOCAL_DATA_OFFERING.

arguments

Objet JSON qui contient des arguments nommés utilisés par le modèle, où chaque clé est un nom d’argument du modèle, et la valeur est la valeur de cet argument.

Renvoie

Résultats de l’analyse au format de table.

Exemples

Exemple de transmission de paramètres :

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.RUN(
  $collaboration_name,
  $template_name,
  ['Provider.data_offering_1_2026_01_12_v0.test_dataset'], -- Tables to pass to source_tables variable.
  [],
  {} -- Template takes no parameters.
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


VIEW_ACTIVATIONS

Schéma:

COLLABORATION

Affiche le statut d’activation de toute exécution d’analyse que vous avez déclenchée pour envoyer à un collaborateur ou des activations qu’un collaborateur a déclenché pour vous envoyer. Les demandes d’activation pour vous envoyer des données ne sont pas répertoriées.

Pour en savoir plus sur l’activation, voir Mise en œuvre de l’activation.

Syntaxe

VIEW_ACTIVATIONS( <collaboration_name> )

Arguments

collaboration_name

Nom de la collaboration.

Renvoie

Une table contenant des détails pour chaque activation. Le tableau comprend les colonnes suivantes :

  • updated_on : Heure à laquelle le statut a été mis à jour pour la dernière fois.

  • segment_name : Chaîne arbitraire attribuée par le gestionnaire d’analyses pour identifier cette activation. Pour plus d’informations, voir Activation des résultats de la requête.

  • batch_id : ID de lot de cette demande d’activation. Pour plus d’informations, voir Vue des résultats de l’activation des fournisseurs et des consommateurs.

  • template_id : Modèle utilisé pour produire ces données d’activation.

  • shared_by : Le collaborateur qui a exécuté l’analyse.

  • shared_with : Le collaborateur qui doit recevoir les données d’analyse.

  • status : Statut de l’activation. Les valeurs suivantes sont prises en charge :

    • PENDING : L’activation a été demandée, mais est en attente de traitement.

    • REPLICATING : Les données d’activation sont répliquées dans la région de destination.

    • SHARED : Les données d’activation sont prêtes à être traitées. Appelez PROCESS_ACTIVATION pour envoyer les résultats sur votre compte.

    • FAILED : Le traitement de l’activation a échoué. Voir les informations dans la colonne details.

    • PROCESSED : Les résultats de l’activation ont été envoyés au compte spécifié dans la demande d’activation.

  • details : Détails relatifs à l’échec, si l’activation a échoué.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_ACTIVATIONS(
  $collaboration_name
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW ACTIVATIONS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


PROCESS_ACTIVATION

Schéma:

COLLABORATION

Si le gestionnaire d’analyses envoie des données sur le compte d’un autre collaborateur, ce dernier doit appeler PROCESS_ACTIVATION pour importer les données d’activation dans leur compte. Le collaborateur doit appeler VIEW_ACTIVATIONS et attendre que la sortie indique que le statut d’activation d’un segment donné est SHARED avant d’appeler PROCESS_ACTIVATION.

Pour plus d’informations, voir Mise en œuvre de l’activation.

Syntaxe

PROCESS_ACTIVATION( <collaboration_name> [, <segment_name> | <array_of_batch_ids> ] )

Arguments

collaboration_name

Nom de la collaboration.

segment_name (Facultatif)

Nom de chaîne d’un segment d’activation spécifique à traiter.

batch_ids (Facultatif)

Tableau de chaîne des IDs de lot des activations à traiter. Cette valeur est renvoyée par VIEW_ACTIVATIONS. Si cette valeur n’est pas incluse, la requête traitera toutes les activations en attente dans la collaboration désignée pour l’appelant.

Renvoie

Nom de la table dans laquelle l’utilisateur peut récupérer les résultats, et nom du segment spécifié pour les résultats. Voir Mise en œuvre de l’activation pour découvrir comment lire les résultats.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.PROCESS_ACTIVATION(
  $collaboration_name
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('PROCESS ACTIVATION', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Procédures de gestion des registres

Cette section contient des procédures utilisées pour enregistrer des objets. Pour plus d’informations :

CREATE_REGISTRY

Schéma:

REGISTRY

Crée un registre personnalisé pour organiser les ressources telles que les modèles et les offres de données. Un registre personnalisé peut stocker des ressources d’un seul type, désignées lors de la création du registre.

Utilisez des registres personnalisés pour regrouper les ressources associées séparément du registre local par défaut. Ajoutez des ressources à ce registre en utilisant le paramètre facultatif de nom de registre.

Syntaxe

CREATE_REGISTRY( '<registry_name>', <registry_type> )

Arguments

registry_name

Nom du registre à créer. Doit être un nom unique parmi tous les registres du compte.

registry_type

Le type de ressources que ce registre contiendra. Valeurs prises en charge : TEMPLATE, DATA OFFERING.

Renvoie

Une chaîne représentant un message de réussite.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.CREATE_REGISTRY(
  'my_custom_registry',
  'TEMPLATE'
);

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle qui s’est vu accorder des privilèges en appelant la procédure suivante :

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE REGISTRY', 'role name')


VIEW_REGISTRIES

Schéma:

REGISTRY

Répertorie tous les registres auxquels vous avez accès, y compris le registre local par défaut et tous les registres personnalisés.

Syntaxe

VIEW_REGISTRIES()

Arguments

Aucun.

Renvoie

Une table avec une ligne pour chaque registre auquel vous pouvez accéder.

Exemple

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTRIES();

Exigences d’accès

Si vous n’utilisez pas le rôle SAMOOHA_APP_ROLE, vous devez utiliser un rôle auquel des privilèges ont été accordés en appelant l’une des procédures suivantes :

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTRIES', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE REGISTRY', 'role name')

Pour qu’un registre personnalisé soit visible pourVIEW_REGISTRIES, vous devez aussi avoir les privilèges READ ouREGISTER, accordés par l’un des appels de procédure suivants :

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'registry name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'registry name', 'role name')

Procédures de gestion des accès

Le rôle SAMOOHA_APP_ROLE donne accès à toutes les procédures de l’API Data Clean Room Collaboration. Toutefois, si un administrateur souhaite accorder des privilèges plus granulaires à des rôles spécifiques, vous pouvez créer un rôle et lui accorder des privilèges spécifiques à l’aide des procédures décrites dans cette section. Pour en savoir plus sur la gestion des accès à l’API de collaboration : Documentation relative à la gestion des accès.

Les procédures suivantes sont utilisées pour gérer l’accès affiné à l’API de salle blanche de données Snowflake :

GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE

Schéma:

ADMIN

Accorde à un rôle spécifié le privilège qui lui permet d’appeler des procédures spécifiques sur un objet spécifique.

Vous pouvez appeler cette procédure plusieurs fois pour accorder plusieurs autorisations au même rôle. Exécutez cette procédure en utilisant le rôle qui possède l’objet.

Syntaxe

GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  '<privilege>',
  '<object_type>',
  '<object_name>',
  '<account_role_name>'
);

Arguments

'privilege'

L’autorisation qui doit être accordée à ce rôle. Consultez le tableau ci-dessous pour savoir quels privilèges sont disponibles pour quels objets.

'object_type'

Le type d’objet pour lequel ce rôle se voit attribuer des autorisations. Valeurs prises en charge :

  • COLLABORATION

  • REGISTRY

'object_name'

L’ID de l’objet, tel que spécifié dans la spécification de l’objet.

'account_role_name'

Le rôle attribué.

Les combinaisons de privilèges et de types d’objets suivantes sont prises en charge :

Privilèges composés

Les privilèges composés suivants permettent d’accéder à plusieurs procédures à la fois :

Privilège

Type d’objet

Procédures activées

READ

COLLABORATION

VIEW_COLLABORATIONS, GET_STATUS, GET_CONFIGURATION, VIEW_CODE_SPECS, VIEW_DATA_OFFERINGS, VIEW_UPDATE_REQUESTS, VIEW_TEMPLATES

RUN

COLLABORATION

RUN, VIEW_ACTIVATIONS, VIEW_COLLABORATIONS

UPDATE

COLLABORATION

LINK_LOCAL_DATA_OFFERING, UNLINK_LOCAL_DATA_OFFERING, ADD_TEMPLATE_REQUEST, REMOVE_TEMPLATE, APPROVE_UPDATE_REQUEST, REJECT_UPDATE_REQUEST, ENABLE_TEMPLATE_AUTO_APPROVAL, DISABLE_TEMPLATE_AUTO_APPROVAL, SET_CONFIGURATION, VIEW_UPDATE_REQUESTS

READ

REGISTRY

Affichez les ressources enregistrées dans un registre personnalisé.

REGISTER

REGISTRY

Affichez ou enregistrez des ressources telles que des modèles et des offres de données dans un registre personnalisé.

Privilèges précis

Les privilèges précis suivants permettent d’accéder à des procédures individuelles sur une collaboration spécifique :

Privilège

Procédures activées

GET STATUS

GET_STATUS

VIEW DATA OFFERINGS

VIEW_DATA_OFFERINGS

VIEW TEMPLATES

VIEW_TEMPLATES

VIEW CODE SPECS

VIEW_CODE_SPECS

VIEW UPDATE REQUESTS

VIEW_UPDATE_REQUESTS

VIEW ACTIVATIONS

VIEW_ACTIVATIONS

ADD TEMPLATE REQUEST

ADD_TEMPLATE_REQUEST

REMOVE TEMPLATE

REMOVE_TEMPLATE

MANAGE UPDATE REQUEST

APPROVE_UPDATE_REQUEST, REJECT_UPDATE_REQUEST

MANAGE TEMPLATE AUTO APPROVAL

ENABLE_TEMPLATE_AUTO_APPROVAL, DISABLE_TEMPLATE_AUTO_APPROVAL, GET_CONFIGURATION, SET_CONFIGURATION

LINK LOCAL DATA OFFERINGS

LINK_LOCAL_DATA_OFFERING

UNLINK LOCAL DATA OFFERINGS

UNLINK_LOCAL_DATA_OFFERING

PROCESS ACTIVATION

PROCESS_ACTIVATION

Renvoie

Une table avec une colonne MESSAGE contenant un message de réussite.

Exemple

Cet exemple crée un rôle que les analystes peuvent utiliser pour exécuter des analyses dans une collaboration nommée my_collaboration et l’attribue à un utilisateur.

USE ROLE role_that_created_this_collaboration;

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  'RUN',
  'COLLABORATION',
  $collaboration_name,
  'collaborator_analyst_role'
);
GRANT ROLE collaborator_analyst_role to USER alexander_hamilton;

Exigences d’accès

Vous devez utiliser le même rôle que celui qui a créé l’objet pour appeler GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE sur cet objet.

  • Pour les collaborations, tout rôle avec CREATE COLLABORATION ou JOIN COLLABORATION peut appeler GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE sur toute collaboration.

  • Pour les registres, seul le rôle qui a créé le registre peut appeler GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE sur ce registre.


GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE

Schéma:

ADMIN

Accorde des privilèges au niveau du compte à un rôle. Cette procédure permet à toute personne utilisant ce rôle d’appeler les procédures répertoriées pour ce privilège.

Syntaxe

GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE( '<privilege>', '<account_role_name>' );

Arguments

'privilege'

Le privilège d’accorder ce rôle. Les valeurs de chaîne suivantes sont prises en charge :

  • JOIN COLLABORATION : Accorde l’autorisation d’exécuter COLLABORATION.JOIN ainsi que les procédures suivantes sur la collaboration jointe :

    • ADMIN.GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE

    • ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE

    • ADMIN.REVOKE_PRIVILEGE_ON_OBJECT_FROM_ROLE

    • COLLABORATION.ADD_TEMPLATE_REQUEST

    • COLLABORATION.APPROVE_UPDATE_REQUEST

    • COLLABORATION.ENABLE_TEMPLATE_AUTO_APPROVAL

    • COLLABORATION.DISABLE_TEMPLATE_AUTO_APPROVAL

    • COLLABORATION.REMOVE_TEMPLATE

    • COLLABORATION.GET_STATUS

    • COLLABORATION.LEAVE

    • COLLABORATION.LINK_DATA_OFFERING

    • COLLABORATION.LINK_LOCAL_DATA_OFFERING

    • COLLABORATION.PROCESS_ACTIVATION

    • COLLABORATION.REJECT_UPDATE_REQUEST

    • COLLABORATION.REVIEW

    • COLLABORATION.RUN

    • COLLABORATION.TEARDOWN

    • COLLABORATION.UNLINK_DATA_OFFERING

    • COLLABORATION.UNLINK_LOCAL_DATA_OFFERING

    • COLLABORATION.VIEW_ACTIVATIONS

    • COLLABORATION.VIEW_CODE_SPECS

    • COLLABORATION.VIEW_COLLABORATIONS

    • COLLABORATION.VIEW_DATA_OFFERINGS

    • COLLABORATION.VIEW_TEMPLATES

    • COLLABORATION.VIEW_UPDATE_REQUESTS

    • REGISTRY.VIEW_REGISTRIES

    • REGISTRY.VIEW_REGISTERED_CODE_SPECS

    • REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS

    • REGISTRY.VIEW_REGISTERED_TEMPLATES

    Ce privilège nécessite que les privilèges de niveau compte suivants soient attribués manuellement au rôle :

    • APPLY ROW ACCESS POLICY ON ACCOUNT

    • CREATE APPLICATION ON ACCOUNT

    • CREATE DATABASE ON ACCOUNT

    • CREATE LISTING ON ACCOUNT

    • CREATE SHARE ON ACCOUNT

    • IMPORT SHARE ON ACCOUNT

    • MANAGE SHARE TARGET ON ACCOUNT

  • CREATE COLLABORATION : Accorde l’autorisation d’exécuter COLLABORATION.INITIALIZE, ainsi que toutes les procédures autorisées par JOIN COLLABORATION pour la collaboration jointe. Exige que les privilèges suivants au niveau du compte soient attribués manuellement au rôle :

    • APPLY ROW ACCESS POLICY

    • CREATE APPLICATION

    • CREATE DATABASE

    • CREATE LISTING

    • CREATE SHARE

    • IMPORT SHARE

    • MANAGE SHARE TARGET

    • EXECUTE TASK (si vous utilisez la jointure automatique dans la procédure INITIALIZE)

  • VIEW COLLABORATIONS : Accorde l’autorisation d’exécuter COLLABORATION.VIEW_COLLABORATIONS. Exige que les privilèges suivants soient attribués manuellement au rôle :

    • IMPORT SHARE ON ACCOUNT

  • REGISTER DATA OFFERING : Accorde l’autorisation d’exécuter REGISTRY.REGISTER_DATA_OFFERING. Cette autorisation est nécessaire pour tout gestionnaire d’analyses pour rejoindre une collaboration qui met en œuvre l’activation.

  • VIEW REGISTERED DATA OFFERINGS : Accorde l’autorisation d’exécuter REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS.

  • REGISTER TEMPLATE : Accorde l’autorisation d’exécuter REGISTRY.REGISTER_TEMPLATE.

  • VIEW REGISTERED TEMPLATES : Accorde l’autorisation d’exécuter REGISTRY.VIEW_REGISTERED_TEMPLATES.

  • REGISTER CODE SPEC : Accorde l’autorisation d’exécuter REGISTRY.REGISTER_CODE_SPEC.

  • VIEW REGISTERED CODE SPECS : Accorde l’autorisation d’exécuter REGISTRY.VIEW_REGISTERED_CODE_SPECS.

  • CREATE REGISTRY : Accorde l’autorisation d’exécuter REGISTRY.CREATE_REGISTRY et REGISTRY.VIEW_REGISTRIES, ainsi que la possibilité de lire à partir de registres personnalisés que vous avez créés.

  • REVIEW COLLABORATION : Accorde l’autorisation d’exécuter COLLABORATION.REVIEW.

  • VIEW REGISTRIES : Accorde l’autorisation d’exécuter REGISTRY.VIEW_REGISTRIES.

  • VIEW DCR STATUS : Accorde l’autorisation de voir l’état général des salles blanches de données dans le compte.

'account_role_name'

Le nom d’un rôle au niveau du compte.

Renvoie

Une table avec une colonne MESSAGE contenant un message de réussite.

Exemple

USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE(
  'REGISTER DATA OFFERING',
  'COLLABORATOR_ANALYST_ROLE'
);

Exigences d’accès

Vous avez besoin du rôle ACCOUNTADMIN, ou d’un rôle avec le privilège global MANAGE GRANTS, pour exécuter cette procédure.