Cursus
Snowflake propose une architecture spécialisée pour un partage sécurisé et efficace des données dans divers environnements. Que ce soit pour collaborer au sein de votre organisation ou avec des partenaires externes, Snowflake propose plusieurs options spécialement conçues, telles que le partage direct, les échanges de données et la Snowflake Marketplace.
Dans un contexte d'entreprise, ces fonctionnalités permettent une collaboration fluide tout en contrôlant les coûts et en garantissant une sécurité renforcée. Cet article vise à vous aider à comprendre chaque méthode de partage et fournit des conseils pratiques sur la manière de les utiliser efficacement dans des situations réelles. Si vous débutez avec Snowflake, je vous recommande de consulter notre cursus de compétences Snowflake Foundations.
Qu'est-ce que le partage de données Snowflake ?
Traditionnellement, le partage de données repose sur des processus ETL (Extract, Transform, Load), qui consistent à extraire des données d'un système source et à les charger dans un système de destination. Cette méthode implique la copie et le déplacement physique des données, ce qui consomme à la fois des ressources de stockage et de calcul.
Snowflake élimine le besoin de copier ou de déplacer physiquement les données. Grâce à l'architecture de partage de données de Snowflake, un compte (le fournisseur) peut accorder à un autre compte (le consommateur) un accès en direct et en lecture seule à des ensembles de données spécifiques, sans transférer ni dupliquer les données.
Les consommateurs peuvent consulter les données comme si elles étaient stockées localement, même si elles sont physiquement stockées sur le compte du fournisseur. Étant donné que les données restent stockées à un seul endroit, le fournisseur n'engage que les coûts de stockage, ce qui rend cette approche nettement plus efficace et évolutive pour la collaboration entre comptes.
Comment fonctionne le partage de données Snowflake ?
Snowflake permet un partage sécurisé des données sans copie, en utilisant des pointeurs de métadonnées au lieu de copier ou de déplacer les données entre les systèmes. Il crée une référence à l'objet d'origine dans le compte du fournisseur, permettant aux consommateurs d'accéder à cette référence pour interroger les données partagées.
Les consommateurs disposent d'un accès en lecture seule, ce qui signifie qu'ils peuvent consulter et explorer les données, mais ne peuvent pas modifier les données sources. Étant donné que les consommateurs interrogent directement le stockage du fournisseur sans le dupliquer, aucun coût de stockage n'est appliqué au compte du consommateur.
De plus, l'architecture de Snowflake sépare le calcul et le stockage, ce qui facilite les opérations de données rentables. Le fournisseur est responsable des coûts de stockage et des ressources informatiques qu'il utilise, tandis que le consommateur ne paie que pour les ressources informatiques qu'il utilise.
Le partage de données de Snowflake est également évolutif. Chaque compte Snowflake ayant accès aux données partagées peut créer son propre entrepôt virtuel et exécuter des requêtes de manière indépendante, ce qui favorise encore davantage le partage évolutif des données.
De plus, Snowflake intègre des contrôles de gouvernance et de sécurité pour gérer l'accès partagé. Les fournisseurs peuvent définir la visibilité des données grâce à des contrôles d'accès basés sur les rôles et surveiller l'utilisation à l'aide de journaux d'audit. Ces fonctionnalités garantissent une visibilité et un contrôle complets sur les données partagées.
Méthodes de partage des données dans Snowflake
Le partage de données dans Snowflake se présente sous différentes formes, chacune étant conçue pour des cas d'utilisation spécifiques. Explorons les différentes fonctionnalités de partage de données afin que vous sachiez laquelle utiliser.
Actions directes
Veuillez utiliser les partages directs pour partager des données avec plusieurs utilisateurs au sein de la même région Snowflake. Vous créez un objet partagé qui inclut les bases de données, les tableaux et les vues sélectionnées, puis vous accordez l'accès à des comptes Snowflake spécifiques. Il est nécessaire de répertorier explicitement chaque compte autorisé à accéder aux données.
Le consommateur crée une base de données à partir du partage et peut l'interroger directement. Cette base de données n'utilise pas de espace de stockage de données; elle sert de référence logique aux données partagées.
Le partage direct ne fonctionne que lorsque vous partagez des données au sein du même fournisseur de services cloud et de la même région. Ils sont particulièrement adaptés au partage de données avec des équipes internes, des partenaires commerciaux de confiance ou un nombre restreint de comptes Snowflake. Cette configuration est particulièrement efficace dans le cadre de relations individuelles ou en petit comité.
Échanges de données
Lorsque vous devez partager des données avec de nombreux comptes ou groupes de consommateurs, les partages directs peuvent s'avérer inefficaces, car vous devez spécifier chaque compte Snowflake individuellement. Dans ce cas, l'échange de données constitue la meilleure option.
Grâce à l'échange de données, vous publiez vos ensembles de données sous forme de produits de données sur une place de marché privée et invitez des groupes de consommateurs à y accéder. Cette configuration fonctionne comme un catalogue consultable dans lequel les consommateurs peuvent rechercher et s'abonner aux données dont ils ont besoin. Étant donné que l'échange est privé, seuls les comptes ou groupes internes invités peuvent y accéder.
Le partage de données entre différentes régions ou sur plusieurs clouds est possible grâce à la réplication des données de Snowflake, ce qui rend les échanges de données idéaux pour le partage entre différentes unités commerciales ou franchises au sein de grandes organisations.
Par exemple, si vous souhaitez partager des données commerciales sur les clients avec différentes équipes au sein de l'entreprise, vous pouvez créer un Snowflake Data Exchange privé nommé « customer_behaviour_data » et publier plusieurs listes du même ensemble de données, chacune avec des autorisations d'accès différentes. Chaque équipe peut s'abonner à la liste qui répond à ses besoins en matière de données, ce qui facilite une collaboration plus fluide et plus sécurisée entre les équipes ayant différents niveaux d'accès.
Marché Snowflake
Snowflake Marketplace fonctionne de manière similaire à l'App Store d'Apple, mais pour les données. Il s'agit d'une place de marché publique où les fournisseurs partagent des produits de données avec tous les utilisateurs de Snowflake. Les fournisseurs créent des annonces, ajoutent des métadonnées, proposent des aperçus et définissent des conditions d'utilisation afin que les consommateurs puissent facilement trouver ce dont ils ont besoin.
Lors de la publication, les fournisseurs peuvent choisir entre des annonces publiques (visibles par tous les clients Snowflake) ou privées (visibles uniquement par certains comptes).
Les consommateurs peuvent effectuer des recherches sur la Marketplace à l'aide de mots-clés pertinents. Pour les annonces publiques, ils peuvent s'abonner directement ; pour les annonces privées, ils doivent demander l'accès. Une fois approuvés, ils peuvent consulter et interroger les ensembles de données directement dans leurs comptes Snowflake.
Snowflake Marketplace prend en charge les annonces payantes avec une tarification basée sur l'utilisation et un abonnement. La facturation est traitée par Snowflake (par exemple, via Stripe) et peut réduire la capacité contractuelle des consommateurs éligibles. Par exemple, une société financière pourrait proposer un ensemble comprenant des données boursières en temps réel et des cours historiques. Snowflake facturera les utilisateurs en fonction du modèle tarifaire du fournisseur et de l'utilisation réelle.
Comptes des lecteurs
Les comptes Snowflake Reader vous permettent de partager des données avec des tiers qui ne disposent pas de comptes Snowflake.
Au lieu d'exiger du consommateur qu'il configure et paie Snowflake, les fournisseurs créent et gèrent le compte du lecteur en son nom.
Le fournisseur utilise ensuite des partages pour partager des bases de données avec des comptes de lecture et fournit ces comptes aux consommateurs. Il est important de noter qu'un compte lecteur ne peut utiliser que les données du compte fournisseur qui l'a créé.
Les comptes lecteurs sont principalement destinés à l'interrogation d'ensembles de données partagés. Toute utilisation informatique effectuée dans le compte du lecteur via des entrepôts virtuels est facturée au compte du fournisseur . Pour limiter l'utilisation, vous pouvez configurer un moniteur de ressources pour l'entrepôt.
Aperçu des fournisseurs et des consommateurs de données
Maintenant que vous connaissez les différents types de partage de données dans Snowflake, nous allons examiner les fournisseurs et les consommateurs de données. Quelles sont les responsabilités de chaque rôle et quelles sont les restrictions dont vous devez être conscient lorsque vous partagez ou accédez à des données ?
À propos des fournisseurs
Dans Snowflake, les fournisseurs de données sont propriétaires des données qu'ils souhaitent partager. Ils ont un contrôle total sur les données partagées et peuvent déterminer quelles données partager et qui peut y accéder. Ils sont souvent chargés de :
- Définir le contenu à partager et avec qui
- Accorder ou retirer des autorisations d'accès
- Garantir que les données partagées sont exactes, fiables et à jour
- Audit des accès et suivi de l'utilisation via des journaux à des fins de conformité
Afin de garantir un partage des données sûr et fiable, les fournisseurs sont invités à respecter les bonnes pratiques suivantes :
- Utilisez des vues sécurisées pour n'afficher que les colonnes ou les lignes nécessaires, en masquant les données sensibles ou brutes.
- Appliquer des catalogues de métadonnées pour faciliter la recherche et la compréhension des ressources partagées
- Intégrer le suivi de la lignée et la journalisation pour surveiller les modifications apportées aux ensembles de données partagés.
- Appliquez des contrôles d'accès basés sur les rôles afin de garantir que seuls les utilisateurs autorisés puissent accéder à des données spécifiques.
À propos des consommateurs
Les consommateurs sont les bénéficiaires du partage des données Snowflake. Ils ne sont pas propriétaires des données ; ils interrogent plutôt les données partagées par les fournisseurs en utilisant leurs propres ressources informatiques. Cela signifie que les consommateurs ont accès aux données et les analysent.
Comme ils ne paient pas pour le stockage, leur principale responsabilité consiste à gérer leurs entrepôts virtuels et à optimiser l'efficacité des requêtes afin de réduire les coûts informatiques.
Dans le cas où ils effectuent des requêtes à partir de comptes de lecteurs, les ressources informatiques qu'ils utilisent sont également facturées aux fournisseurs.
La principale contrainte pour un consommateur est qu'il ne peut que consulter les données partagées. Ils ne peuvent ni modifier, ni insérer, ni supprimer des enregistrements dans l'ensemble de données. De plus, les consommateurs ne perçoivent pas les modifications internes apportées par le fournisseur. Ils ont toujours accès à la dernière version des données disponibles.
Mise en œuvre du partage de données dans Snowflake
Nous avons abordé les concepts clés pour vous aider à démarrer avec le partage de données dans Snowflake. Que vous créiez un profil de fournisseur, configuriez un compte consommateur ou gériez un compte lecteur, cette section aborde tous ces sujets.
Devenir fournisseur de données
Pour publier des données sur le Snowflake Marketplace ou sur une plateforme d'échange de données privée, il est nécessaire de configurer au préalable un profil de fournisseur. Une fois que vous avez demandé le profil du fournisseur, Snowflake examine et approuve les informations relatives à votre entreprise. Une fois votre demande approuvée, vous pouvez commencer à créer et à publier vos annonces.
Voici comment configurer un profil de fournisseur :
- Étape 1 : Veuillez vous connecter à votre compte Snowflake.
- Étape 2 : Veuillez vous assurer que vous occupez le rôleACCOUTADMIN dans .
- Étape 3 : Dans la barre latérale gauche, veuillez cliquer surProduits de données d' , puis sélectionner Provider Studio.

- Étape 4 : Veuillez sélectionner l'onglet Profils d' , puis cliquer sur le boutonCréer un profil, comme illustré dans l'image ci-dessous.

- Étape 5 : Dans le formulaire qui s'affiche, veuillez saisir lesinformations requisesconcernant votre organisation et vos coordonnées afin de finaliser la configuration de votre profil de prestataire.
Configuration en tant que consommateur de données
- Étape 1 : Veuillez vous connecter à votre compte Snowflake.
- Étape 2 : Dans la barre latérale gauche, veuillez cliquer surProduits de données d' , puis sélectionner Partage privé.

- Étape 3 : Veuillez vous rendre dans l'onglet «Partagé avec vous » de l' pour consulter les données qui vous ont été transmises.
Partage avec les comptes des lecteurs
Étape 1 : Veuillez vous connecter à votre compte Snowflake.
Étape 2 : Dans le menu de gauche, veuillez sélectionner «Administration » puis «Comptes »dans l' .

Étape 3 : Veuillez sélectionner l'onglet «Comptes d' », puis accédez au sous-onglet «Comptes de lecteur ».
Étape 4 : Pour ajouter un nouveau compte lecteur, veuillez cliquer sur le bouton « +Reader Account » (Ajouter un compte lecteur) dans le coin supérieur droit, puis remplissez les informations requises dans le formulaire contextuel.

Architecture de sécurité
Les partages de données dans Snowflake sont intrinsèquement sécurisés, car les utilisateurs disposent d'un accès en lecture seule et ne peuvent ni modifier, ni insérer, ni supprimer les données partagées. Afin de renforcer davantage la sécurité au-delà de ce contrôle d'accès par défaut, Snowflake applique également les mesures suivantes :
Objets de données sécurisés
Vous pouvez partager des tableaux, des vues sécurisées et des fonctions définies par l'utilisateur (UDF) sécurisées ; les vues non sécurisées ne peuvent pas être partagées. Les vues sécurisées empêchent les consommateurs d'accéder aux tables de base sous-jacentes ou de voir la logique SQL utilisée pour définir la vue. Cela garantit que la logique métier sensible, les calculs propriétaires ou les fonctions personnalisées restent masqués aux utilisateurs finaux.
Les vues sécurisées prennent également en charge les politiques d'accès au niveau des lignes et le masquage au niveau des colonnes, ce qui les rend efficaces pour appliquer des contrôles d'accès aux données granulaires. Vous pouvez associer ces politiques à un contrôle d'accès basé sur les rôles afin de garantir que chaque consommateur ne voit que les données qu'il est autorisé à consulter.
Snowflake vous permet également de mettre en œuvre des schémas distincts pour les partages internes et externes. Par exemple, vous pouvez stocker des ensembles de données brutes et sensibles dans un schéma et n'exposer que des vues masquées ou agrégées dans un autre, limitant ainsi l'accès des utilisateurs aux données sensibles.
Sécurité interrégionale
Dans le cadre du partage direct, Snowflake partage les métadonnées et les pointeurs vers les objets d'origine au sein de la même région et de la même plateforme cloud. Cependant, si le compte du consommateur se trouve dans une autre région ou sur une autre plateforme cloud, le partage direct ne fonctionne pas. C'est là que la réplication entre en jeu.
Le fournisseur commence par répliquer les données dans une région où un compte consommateur existe. Ensuite, ils créent un objet partagé qui pointe vers les données répliquées et accorde l'accès au consommateur. Le consommateur interroge ensuite les données répliquées en utilisant un accès en lecture seule, comme pour les partages directs.
Snowflake sécurise toutes les données répliquées en les chiffrant au repos et en transit.
De plus, la réplication des données suit des chemins d'accès internes contrôlés par Snowflake, et non les routes Internet publiques. À l'instar des partages directs, l'utilisateur ne possède jamais la base de données répliquée ; il dispose toujours d'un accès en lecture seule.
Meilleures pratiques pour les partages de données Snowflake
Ces meilleures pratiques protègent les données sensibles, optimisent l'utilisation des ressources et garantissent la conformité aux réglementations en matière de confidentialité des données, permettant ainsi une collaboration évolutive entre les environnements.
Cadre de gouvernance
Un cadre de gouvernance solide garantit que les données partagées parviennent aux utilisateurs appropriés disposant des autorisations d'accès adéquates. Il empêche toute utilisation abusive et permet de suivre tous les accès et toutes les actions.
Commencez par la classification des données. Marquez clairement vos données comme sensibles, restreintes ou publiques, et appliquez des contrôles de sécurité spécifiques à chaque catégorie afin de minimiser les risques et d'éviter toute exposition accidentelle.
Intégrez des examens réguliers des accès et des audits d'utilisation. Le fait qu'un utilisateur ait eu besoin d'un accès il y a six mois ne signifie pas qu'il en a encore besoin aujourd'hui. Veuillez donc examiner et mettre à jour régulièrement les autorisations afin d'aligner les accès sur les rôles et responsabilités actuels.
Veuillez utiliser les journaux d'accès Snowflake pour surveiller l'utilisation des données partagées. Ces journaux enregistrent qui a interrogé les données, à quelle fréquence et quelles actions ont été effectuées, ce qui facilite la conformité et l'optimisation des performances.
Pour appliquer des contrôles d'accès granulaires, veuillez utiliser la sécurité au niveau des lignes et des colonnes. Le masquage au niveau des colonnes dissimule les champs sensibles tout en exposant le reste de l'ensemble de données. Les politiques au niveau des lignes vous permettent de restreindre l'accès à des enregistrements spécifiques en fonction des rôles ou des attributs des utilisateurs.
Optimisation des performances
Outre la sécurisation des données partagées, les fournisseurs sont chargés d'optimiser les performances des ensembles de données afin de garantir un accès et une interrogation efficaces pour les consommateurs.
Veuillez utiliser les clés de clustering dans Snowflake afin d'améliorer les performances des requêtes et l'efficacité du stockage. Ceci fonctionne de manière similaire au partitionnement des tableaux. Par exemple, si votre ensemble de données de ventes est fréquemment interrogé sur le « prix » et la « région », vous pouvez les définir comme clés de regroupement. Snowflake organisera physiquement les données sous-jacentes de manière à ce que les lignes présentant des valeurs similaires pour « prix » et « région » soient stockées à proximité les unes des autres. Cela permet un accès plus rapide et des requêtes plus efficaces.
Pour les indicateurs commerciaux couramment utilisés, veuillez partager les vues matérialisées avec les ensembles de données de base. Cela implique de précalculer des indicateurs tels que le chiffre d'affaires mensuel par région, les ventes hebdomadaires moyennes ou le nombre de promotions, et de les partager avec les données sous-jacentes. Les consommateurs peuvent interroger ces vues directement, ce qui améliore à la fois les performances et la cohérence dans tous les cas d'utilisation.
Validation et mise à jour des données partagées
Le partage de données précises est essentiel pour une utilisation efficace du partage de données Snowflake. Afin de garantir la qualité des données, veuillez vérifier vos données partagées par rapport à la source. Vérifiez le nombre de lignes, effectuez des agrégations ou des contrôles statistiques sommaires, et vérifiez l'intégrité du schéma, les valeurs nulles et la validité des métadonnées. Ces validations garantissent que vous partagez des données complètes et exactes.
L'ajout de nouvelles sources de données ou la modification de schémas peuvent s'avérer complexes à gérer, en particulier lorsque plusieurs partages de données sont concernés. Afin de simplifier les migrations, veuillez partager des vues plutôt que des tableaux bruts. Les vues agissent comme une couche flexible, vous permettant de modifier la structure des données sous-jacentes ou les tableaux backend sans perturber les requêtes des utilisateurs.
Lorsque vous mettez à jour des ensembles de données partagés, veuillez utiliser le contrôle de version. Les vues versionnées ou les versions de schéma vous permettent de suivre les modifications, de tester de nouvelles logiques et de revenir en arrière en cas de problème.
Veuillez informer vos clients des changements à venir qui pourraient affecter les données partagées. Un simple avertissement permet aux utilisateurs de s'adapter et de se préparer à la transition.
Limites et considérations
Les partages de données Snowflake comportent certaines restrictions intégrées. Ce ne sont pas des éléments rédhibitoires, mais il est important d'en tenir compte dans la planification.
Tous les types d'objets ne sont pas partageables. Vous pouvez partager des tableaux, des vues sécurisées et des fonctions définies par l'utilisateur sécurisées. Il n'est pas possible de partager des vues non sécurisées, des procédures stockées, des étapes de fichiers, des tâches ou des flux.
Bien que Snowflake Marketplace et les échanges de données partagent des données entre les régions, les partages directs de données ne peuvent se faire qu'au sein d'une même région et d'un même environnement cloud. Pour contourner cette limitation, vous devrez utiliser la réplication inter-régions/inter-cloud de Snowflake (qui nécessite la version Enterprise Edition ou supérieure).
Les consommateurs ont uniquement un accès en lecture seule aux données partagées. Ils ne peuvent ni modifier, ni insérer, ni supprimer des enregistrements. S'ils ont besoin de transformer ou d'écrire les données, ils devront les copier dans leur propre environnement, ce qui entraînera des coûts supplémentaires de stockage et de calcul.
Conclusion
L'utilisation efficace du partage de données dans Snowflake permet de libérer tout le potentiel d'une collaboration sécurisée et rentable. Les fournisseurs peuvent partager des données consultables en temps réel avec les consommateurs, sans nécessiter d'ETL ni de duplication des données. Toute mise à jour des données sources est immédiatement répercutée dans les comptes des consommateurs, garantissant ainsi l'accès aux informations les plus récentes.
En adoptant le modèle de partage de données de Snowflake, les organisations peuvent développer la collaboration en matière d'analyse, améliorer la gouvernance et maximiser la valeur de leurs actifs de données. Cependant, cela n'est utile que lorsque les consommateurs n'ont pas besoin de modifier les données partagées.
Si vous débutez avec Snowflake, veuillez commencer par ce guide convivial destiné aux débutants pour apprendre à utiliser Snowflake. Pour approfondir vos connaissances, nous vous invitons à consulter notre cursus de compétences Snowflake Foundations et notre cours sur la modélisation des données dans Snowflake.
Foire aux questions sur le partage de données Snowflake
Comment Snowflake garantit-il la sécurité des données lors du partage ?
Snowflake utilise une architecture sans copie qui offre un accès en lecture seule aux utilisateurs via des pointeurs de métadonnées sécurisés. Il utilise également des vues sécurisées par défaut lors du partage de données.
Quelles sont les principales différences entre les partages directs et les échanges de données dans Snowflake ?
Les partages directs sont utilisés pour partager des données avec des comptes Snowflake spécifiques au sein de la même région. Ils conviennent aux configurations de partage de données entre deux personnes ou entre un petit nombre de personnes. Les échanges de données sont particulièrement adaptés au partage évolutif des données, où les fournisseurs publient des données sur une place de marché et les consommateurs y accèdent à partir de là.
Quels sont les avantages de l'utilisation de vues sécurisées pour le partage de données dans Snowflake ?
Les vues sécurisées empêchent les consommateurs de voir les tables de base sous-jacentes et la logique SQL. Ils prennent en charge la sécurité au niveau des lignes et des colonnes, ce qui permet un contrôle précis de la visibilité.
Quels objets peuvent être partagés dans Snowflake ?
Vous pouvez partager des tableaux, des vues (standard, sécurisées), des vues matérialisées, des fonctions définies par l'utilisateur (UDF), des séquences, des tables externes et des fonctions sécurisées.
Pouvons-nous suivre l'utilisation de nos données partagées ?
Oui. Snowflake offre des fonctionnalités d'historique d'accès et d'historique des requêtes qui vous permettent de surveiller comment les objets partagés sont utilisés, qui y a accédé et à quel moment. Cela facilite l'audit et la gouvernance.
Srujana est rédactrice technique indépendante et titulaire d'un diplôme de quatre ans en informatique. Écrire sur divers sujets, notamment la science des données, l'informatique en nuage, le développement, la programmation, la sécurité et bien d'autres encore, est pour elle une évidence. Elle aime la littérature classique et la découverte de nouvelles destinations.

