Préparation des données pour une annonce

Cette rubrique contient des conseils sur la préparation de la création d’une annonce, notamment sur la façon de préparer un partage pour une annonce.

Dans ce chapitre :

Préparer la création d’une annonce

Avant de créer une annonce, procédez comme suit :

  1. Décidez du type d’annonce que vous souhaitez créer. Voir Types d’annonces.

  2. Définissez des rôles et des privilèges pour simplifier la création d’annonces. Voir Configurer les rôles et les privilèges pour les annonces.

  3. Identifiez les objets que vous souhaitez partager. Voir Décidez de ce que vous voulez mettre dans une annonce.

  4. Préparez les objets à partager avec les autres. Voir Préparer les partages pour votre annonce.

  5. Déterminez si vous souhaitez faire payer votre annonce. Voir Préparation des partages pour une annonce payante.

  6. Choisissez la ou les régions Cloud dans lesquelles vous souhaitez proposer votre annonce. Voir Préparer votre annonce à être partagée dans d’autres régions.

L’annonce et le partage de données doivent être conformes aux politiques des fournisseurs de Snowflake.

Configurer les rôles et les privilèges pour les annonces

Lorsque vous créez une annonce, vous la créez à partir du compte qui contient les données. Dans ce compte, vous pouvez effectuer l’une des opérations suivantes pour créer et gérer des annonces :

  • Utilisez le rôle ACCOUNTADMIN.

  • Créer et utiliser un rôle dédié avec le privilège global CREATE DATA EXCHANGE LISTING.

Le rôle qui crée un partage possède également le partage, et ce rôle doit être utilisé pour attacher le partage à une annonce. Si le rôle qui a créé le partage est différent du rôle que vous utilisez pour créer et modifier l’annonce, accordez le privilège MODIFY LISTING sur cette annonce au rôle qui possède le partage afin que les utilisateurs ayant ce rôle puissent publier l’annonce.

Pour plus d’informations sur les privilèges du partage de données, voir Attribution de privilèges à d’autres rôles.

Décidez de ce que vous voulez mettre dans une annonce

Lorsque vous vous préparez à partager les données de votre compte avec une annonce, décidez de ce que vous allez mettre dans l’annonce.

Tout d’abord, assurez-vous que les données que vous souhaitez partager se trouvent dans Snowflake, et que vous disposez des droits légaux et contractuels pour partager ces données. Si nécessaire, chargez les données que vous souhaitez partager dans Snowflake. Voir Vue d’ensemble du chargement des données.

Note

Dans la mesure où les données de votre annonce ou ensemble de données sont régis par des lois ou des obligations contractuelles, vous devez vous assurer que vous avez les droits légaux et contractuels de partager ces données. Par exemple, vous pouvez uniquement partager des informations médicales protégées (PHI) via une annonce privée et, pour ce faire, vous devez : (1) avoir signé un accord de partenariat commercial (BAA) avec Snowflake et le consommateur recevant les PHI, et ; (2) vous assurer que le consommateur a également signé un BAA avec Snowflake. En outre, si vous pouvez partager des données personnelles par le biais d’une annonce gratuite ou personnalisée, vous devez pour cela disposer des droits légaux et contractuels applicables si les données ne sont pas accessibles au public.

Ensuite, décidez de la manière de proposer les données dont vous disposez sous forme d’annonce. Si vous envisagez de proposer des annonces sur Snowflake Marketplace ou uniquement en tant qu’annonces privées directement avec des clients spécifiques, vous pouvez prendre des décisions différentes quant aux éléments à placer dans l’annonce.

  • Tenez compte de la disponibilité de vos données.

  • Considérez les consommateurs qui, selon vous, accéderont à vos annonces.

  • Tenez compte des formats des données que vous sélectionnez pour le partage, comme une table, une vue, une vue sécurisée ou tout autre objet de base de données.

Par exemple, si vous voulez fournir des annonces sur le toilettage des chiens, vous pouvez prendre des décisions comme celles-ci :

  • Proposer une annonce gratuite accessible au public sur Snowflake Marketplace avec des informations sur les races de chiens et la longueur de leur fourrure.

  • Offrir une annonce privée à une organisation partenaire avec des informations sur le temps nécessaire au toilettage de différents chiens et la fréquence typique des rendez-vous de toilettage pour différentes races de chiens.

Dans cet exemple, vous proposez des données précieuses sur Snowflake Marketplace, mais vous offrez des informations plus spécifiques à une organisation avec laquelle vous entretenez déjà une relation commerciale de confiance.

Préparer les partages pour votre annonce

Vous pouvez créer un partage avant de créer une annonce, ou sélectionner la base de données, les tables et les vues qui composeront votre produit de données lorsque vous créez l’annonce. Voir Utilisation des partages.

Si vous prévoyez de proposer de nombreuses annonces, créez les partages séparément des annonces afin de pouvoir gérer plus facilement votre produit de données. Vous ne pouvez pas fournir plusieurs annonces à partir d’un même partage.

Réfléchissez à la manière de tenir vos partages à jour

Prenez en considération la maintenance des données dans votre partage. Au fil du temps, il se peut que vous deviez modifier vos partages de données en fonction de l’évolution des informations que vous souhaitez fournir dans les annonces.

Vous devez également réfléchir à la manière de mettre à jour les données contenues dans les partages et vous assurer que le contenu du partage est utile aux consommateurs.

Si les objets d’un partage sont abandonnés et recréés par la suite, vous devez ajouter les objets recréés au partage afin qu’ils restent disponibles pour les consommateurs. Par exemple, si vous rafraîchissez certaines données dans le partage en supprimant et en recréant une table dans la base de données, vous devez mettre à jour le partage pour inclure la table recréée.

Préparer les données à partager

Préparez les données que vous voulez partager dans votre annonce pour qu’elles soient partagées avec d’autres.

  • Utilisez des identificateurs d’objet sans guillemets pour les tables, les colonnes et les noms de partage. N’utilisez que des majuscules et des caractères alphanumériques pour les noms d’objets afin de permettre aux consommateurs d’annonces d’utiliser les objets de données partagés sans avoir à mettre les identificateurs entre guillemets. Voir Exigences relatives à l’identificateur.

  • Protégez les données sensibles dans les bases de données partagées. Créez des vues sécurisées et utilisez des objets sécurisés pour contrôler l’accès aux données. Voir Utilisation d’objets sécurisés pour contrôler l’accès aux données

  • Vous pouvez ajouter à une annonce des partages qui sont déjà partagés avec un compte consommateur, par exemple avec un partage direct.

  • Un partage ne peut être rattaché qu’à une seule annonce. Si un partage a déjà été rattaché à une annonce, il ne peut pas être rattaché à une autre annonce, même si l’annonce a été supprimée.

Se préparer à offrir une annonce payante

Si vous souhaitez faire payer votre annonce, vous devez procéder comme suit :

  1. Déterminez si vous pouvez proposer des annonces payantes dans votre région. Voir Où vous pouvez publier des annonces payantes.

  2. Préparez les données pour offrir un test des données. Voir Préparation des partages pour une annonce payante.

  3. Choisissez le plan tarifaire qui convient le mieux à votre annonce. Voir Modèles de tarification des annonces payantes pour passer en revue les plans tarifaires disponibles.

Où vous pouvez publier des annonces payantes

En tant que fournisseur, vous pouvez créer des annonces payantes si l’adresse de facturation de votre compte se trouve dans l’un des pays suivants :

  • Australie

  • Finlande

  • France

  • Allemagne

  • Irlande

  • Israël

  • Italie

  • Mexique

  • Pays-Bas

  • Norvège

  • Singapour

  • Suède

  • Suisse

  • Royaume-Uni

  • États-Unis

Voir Où les consommateurs ont accès à des annonces payantes ? pour des informations sur la disponibilité des régions pour les consommateurs.

Préparation des partages pour une annonce payante

Lorsque vous proposez une annonce payante sur Snowflake Marketplace, vous devez offrir aux consommateurs la possibilité de tester l’annonce avant de l’acheter. Les essais sont facultatifs pour les annonces privées payantes. Dans le cadre de l’essai, vous pouvez limiter les consommateurs à des données et à des fonctionnalités spécifiques, à une période donnée ou à une combinaison des deux.

Si vous choisissez de limiter les consommateurs à l’essai à des données et des fonctionnalités spécifiques, créez un partage unique pour votre annonce payante et utilisez des vues sécurisées et une fonction système fournie par Snowflake, SYSTEM$IS_LISTING_PURCHASED, pour contrôler quelles données sont visibles pour les consommateurs de l’essai et quelles données sont disponibles uniquement pour les consommateurs payants.

Note

Si votre annonce comprend une fonction sécurisée définie par l’utilisateur (UDF), vous ne pouvez pas limiter l’accès à l’UDF. Les clients payants et les clients de l’essai de votre annonce peuvent tous accéder à l’UDF sécurisée.

Reportez-vous aux exemples suivants pour créer vos propres vues sécurisées afin d’afficher différentes données aux consommateurs payants et aux consommateurs à l’essai.

Si vous souhaitez permettre aux consommateurs de l’essai d’utiliser toutes les données de votre annonce pendant une période limitée, n’utilisez pas la fonction SYSTEM$IS_LISTING_PURCHASED dans vos définitions de vue pour votre partage.

Exemple 1 : Retourner des données basées sur le statut d’achat du compte

Créez une vue sécurisée qui sélectionne toutes les colonnes d’une table. La vue renvoie des lignes uniquement lorsqu’elle est interrogée dans un compte de consommateur qui a accepté d’acheter vos annonces payantes.

CREATE SECURE VIEW paid_v
  AS
  SELECT
    *
  FROM
    paid_t
  WHERE
    SYSTEM$IS_LISTING_PURCHASED() = TRUE;
Copy

Exemple 2 : Retourner un sous-ensemble de lignes basé sur le statut d’achat du compte

Créez une vue sécurisée qui renvoie un sous-ensemble de lignes en fonction de la valeur booléenne d’une colonne spécifique dans les données. Dans cet exemple, la table sous-jacente contient une colonne nommée is_free qui est utilisée pour déterminer quelles données montrer à quels consommateurs.

Pour certaines lignes, is_free est défini comme TRUE, ce qui indique que les données de ces lignes peuvent être présentées aux consommateurs de l’essai. Pour d’autres lignes, is_free est défini comme FALSE, ce qui indique que les données de ces lignes ne doivent être présentées qu’aux consommateurs payants.

Cet exemple de vue est configuré pour renvoyer toutes les lignes uniquement lorsqu’il est interrogé par un compte de consommateur qui a acheté l’annonce payante, sinon il renvoie uniquement les lignes où is_free est défini comme TRUE.

CREATE SECURE VIEW paid_v
  AS
  SELECT
    *
  FROM
    paid_t
  WHERE
    is_free
    OR
    SYSTEM$IS_LISTING_PURCHASED() = TRUE;
Copy

Exemple 3 : Retourner uniquement les lignes les plus récentes en fonction du statut d’achat du compte

Créez une vue sécurisée qui renvoie uniquement les lignes des 7 jours précédents à un compte consommateur qui est à l’essai, mais n’a pas encore acheté, votre annonce payante.

Cet exemple utilise une colonne avec un type de données d’horodatage pour filtrer les données, mais vous pouvez utiliser d’autres types de données de colonne dans votre définition de vue sécurisée.

CREATE SECURE VIEW paid_v
  AS
  SELECT *
  FROM
    paid_t
  WHERE
    (timestamp > current_timestamp() - interval '7 days')
    OR
    SYSTEM$IS_LISTING_PURCHASED() = TRUE;
Copy

Validation des vues sécurisées pour les données payantes et les données d’essai

Après avoir préparé vos vues sécurisées, vérifiez que vous les avez correctement configurées en simulant les expériences des comptes consommateurs payants et d’essai. Exécutez des requêtes contre les vues sécurisées pour confirmer que chaque type de consommateur a accès aux données attendues.

Important

Cette méthode ne permet pas de vérifier si les consommateurs sont en mesure d’accéder à vos données en toute sécurité. Cette méthode permet uniquement de valider si le partage fonctionnera comme prévu pour vos consommateurs.

Pour valider vos partages, exécutez une requête sur une vue sécurisée en utilisant SHARE_CONTEXT(SYSTEM$IS_LISTING_PURCHASED) :

EXECUTE USING SHARE_CONTEXT(SYSTEM$IS_LISTING_PURCHASED=>{ 'TRUE' | 'FALSE' })
  AS <query>
Copy

Où :

  • SYSTEM$IS_LISTING_PURCHASED précise si vous souhaitez valider en tant que consommateur payant, ou en tant que consommateur à l’essai ou non payant. Les valeurs valides sont les suivantes :

    • TRUE pour valider le partage en tant que consommateur payant.

    • FALSE pour valider le partage en tant que consommateur à l’essai ou gratuit.

  • <query> est la requête SQL que vous voulez exécuter sur la vue sécurisée.

Lorsque vous utilisez la commande pour exécuter votre requête, celle-ci est exécutée sur le partage comme si vous étiez un consommateur.

Par exemple, supposons que vous ayez un partage que vous voulez valider. Votre partage comprend une vue sécurisée nommée PURCHASED_VIEW, qui protège toutes les données d’une table nommée SHARE_TABLE. Vous voulez vérifier que les données ne peuvent être consultées que par un consommateur qui a acheté l’annonce.

Pour confirmer que les consommateurs de l’essai ne peuvent accéder à aucune donnée dans la vue sécurisée, exécutez la requête suivante :

EXECUTE USING share_context(system$is_listing_purchased=>'FALSE')
  AS
    SELECT
      *
    FROM
      example_database.example_schema.PURCHASED_VIEW
Copy

Si la vue sécurisée fonctionne comme prévu et aucune donnée n’est accessible à un consommateur d’essai, votre requête renvoie donc la réponse suivante :

Query produced no results
Copy

Pour confirmer que vos consommateurs payants ont accès aux données, exécutez la requête suivante :

EXECUTE USING share_context(system$is_listing_purchased=>'TRUE')
  AS
    SELECT
      *
    FROM
      example_database.example_schema.PURCHASED_VIEW
Copy

Si la vue sécurisée fonctionne comme prévu, votre requête renvoie toutes les colonnes et lignes de SHARE_TABLE, ce qui est le résultat souhaité pour les consommateurs payants.

SYSTEM$IS_LISTING_PURCHASED

Retourne TRUE si le compte du consommateur interrogeant les données a acheté l’annonce, sinon retourne FALSE. Si un compte est en train de tester l’annonce, la fonction renvoie FALSE. Utilisez cette fonction du système dans une vue sécurisée pour gérer l’accès aux données d’un partage et afficher certaines données uniquement aux clients payants.

Cette fonction déduit l’annonce associée à la base de données qui contient la vue et détermine si le compte qui exécute la requête a acheté l’annonce.

Syntaxe
SYSTEM$IS_LISTING_PURCHASED()
Copy
Arguments

Aucun.

Exemple

Créez une vue sécurisée qui sélectionne toutes les colonnes d’une table. La vue renvoie des lignes uniquement lorsqu’elle est interrogée dans un compte de consommateur qui a acheté une annonce payante :

CREATE SECURE VIEW paid_view
  AS
  SELECT
    *
  FROM
    paid_table
  WHERE
    SYSTEM$IS_LISTING_PURCHASED();
Copy

Les consommateurs qui essaient l’annonce payante ne voient aucune ligne dans cette vue.

Pour des exemples supplémentaires, voir Préparation des partages pour une annonce payante.

Préparer votre annonce à être partagée dans d’autres régions

Lorsque vous configurez votre annonce, vous pouvez choisir de la proposer dans différentes régions. Proposer des annonces dans d’autres régions nécessite de répliquer les données.

Tenez compte du temps nécessaire pour répliquer les données et des coûts liés à la réplication.

Le partage des données entre régions utilise la fonctionnalité de réplication des données de Snowflake. Voir Partage sécurisé des données entre les régions et les plates-formes Cloud.