Par Gaël Baudry, Conseiller, Analytiques des données
Snowflake est une solution « d’entrepôt de données infonuagique » en mode SaaS qui offre entre autres des fonctionnalités, des mécanismes conviviaux de partage de données. Le partage de données est une problématique récurrente dans le monde des affaires. Alors que l’on passe traditionnellement par l’élaboration de mécanismes complexes. Snowflake réduit considérablement l’effort à fournir, grâce à une solution parfois appelée Data Sharehouse, qui simplifie grandement le partage sécurisé de données entre fournisseurs et consommateurs.
Silos de données
Dit simplement, on parle de partage de données lorsqu’un fournisseur ou producteur met des données à la disposition de consommateurs ou des utilisateurs.
Dans une architecture analytique traditionnelle, le partage de données est souvent associé à une multiplication de silos de données. Chaque entité de l’entreprise (finance, marketing, etc…) a besoin d’un ensemble de données propres à ses fins analytiques. Il s’agit souvent de faire des copies de données déjà existantes dans une base de données centralisée vers une autre, peut-être départementale, par l’entremise d’APIs, ETLs, envois de courriels, partage réseau ou tout autre moyen.
Figure 1 – Exemple typique de partage de données. Le fournisseur de données doit les transformer avant de les partager, le consommateur doit de son côté les traiter avant de pouvoir les utiliser.
De par leur définition, les silos réduisent les capacités de communication des équipes, compliquant la facilité de partage. Les inconvénients résultant d’une telle solution sont multiples :
- Complexité de la solution. La mise en place de la solution est souvent lourde, sa maintenance également. La modification du schéma des données source, entraîne la modification de tous les éléments constituant la chaîne de partage, ce qui a pour effet :
- De multiplier les coûts (stockage, bande passante, calcul). Chaque donnée est répliquée car disponible dans plusieurs silos de données et chaque transmission de donnée d’un silo à un autre utilise de la bande passante. Le transfert de données faisant appel à un ETL, des courriels ou autre consomme également de la puissance de traitement.
- De complexifier la sécurisation des données, chaque canal de communication (envoi des courriels, de ftp ou autre) est également une potentielle brèche de sécurité permettant aux données d’être interceptées à des fins malveillantes,
- De réduire l’agilité : maintenir tous les éléments permettant le partage demande des développements qui prennent du temps,
- Augmenter le risque d’erreur de développement qui entraîneront la nécessité d’effectuer des correctifs.
- Les données ne sont pas disponibles en temps réels, on ne dispose que des copies qui seront rapidement périmées et en décalage avec les données à jour. On a là un risque bien réel de désynchronisation de données, entre la base de données centralisée, et les bases de données distribuées. Comment maîtriser correctement le cycle de vie de toutes ces réplications ? Un vrai casse-tête !
- La mise en place de certaines réglementations est complexifiée. Dans le cadre de la RGPD, certaines données doivent par exemple être anonymisées. La multiplicité des occurrences de données multiplie la charge de travail pour parvenir à mettre en place ces réglementations.
Partage de données dans Snowflake
Dans Snowflake, le partage de données n’entraîne pas de copie inutile de données. Le fournisseur expose simplement des données choisies à un ou plusieurs consommateurs qui y accèdent alors directement, et non pas à une copie.
Figure 2 – Partage de données dans une solution infonuagique comme Snowflake : les données sont simplement et directement exposées.
Mise en place du partage de données
Dans Snowflake, la mise en place du partage de données est très simple (la simplicité étant une constante dans la solution Snowflake, voir article précédent : Simplicité de Snowflake).
Des fournisseurs déclarent des objets partagés « shares », des objets Snowflake nommés comprenant toutes les informations nécessaires au partage de données :
- Privilèges donnant accès à la base de données et au schéma,
- Privilèges donnant accès à des objets spécifiques (tables, vues sécurisées, etc.),
- Comptes utilisateurs avec lesquels la base de données et les objets sont partagés.
Les consommateurs de données sont donc explicitement désignés par les fournisseurs. Il peut s’agir :
- Des utilisateurs Snowflake : ils possèdent leurs propres compte Snowflake. On parle de comptes consommateurs.
- De comptes de lecteur : il s’agit d’utilisateurs n’ayant pas de comptes Snowflake. Ils partagent le compte du fournisseur. Ces comptes n’ont accès qu’aux données mises à disposition par le fournisseur.
Figure 3 – Exemple de réseau de fournisseurs partageant des données avec des consommateurs.
Un consommateur de données peut devenir à son tour un fournisseur de données, mais un lecteur de donnée est un utilisateur final. Il ne peut accéder qu’auxs données mises à disposition par des fournisseurs.
La solution de partage de données de Snowflake permet à la fois de partager les données en interne entre différents départements ou filiales, et en externe, avec des clients ou des partenaires commerciaux. Dans le cas d’un partage interne, il est facile de facturer chaque entité selon la consommation associée aux entrepôts de données virtuels. En effet, chaque utilisateur peut être associé à un entrepôt différent (le marketing ayant accès à une entrepôt puissant, et d’autres utilisateurs moins consommateurs, à un entrepôt moins conséquent). Dans le cadre d’un partage externe, la fonctionnalité ci-dessous de Data Exchange explique une solution très intéressante.
Snowflake Data Exchange
Snowflake offre une nouvelle fonctionnalité, encore en « preview » à l’heure de l’écriture de cet article : le Data Exchange. Elle offre la possibilité, pour des fournisseurs de données, de les monétiser en les mettant à la disposition d’autres utilisateurs Snowflake par le biais d’un magasin en ligne comme peut l’être Google Playstore en bénéficiant des mécanismes de partage de données de Snowflake. Le magasin de Snowflake est intégré à l’interface de Snowflake et est organisé en catégories (santé, finances, etc.). Il est possible, par exemple de disposer de données relatives au COVID-19, de mobilité urbaine météorologiques ou encore de données météorologiques, constamment à jour.
Figure 4 – Snowflake data exchange.
Des fournisseurs de données peuvent ainsi rendre disponibles des données sur Data Exchange et des consommateurs peuvent alors se les approprier. Lorsqu’un utilisateur fait un « Get Share », une demande d’accès à des données partagées, une base de données est créée sur son compte. L’utilisateur a alors le loisir d’accéder aux données en lecture seulement.
Figure 5 – Récupération de données sur le Data Exchange.
Le partage de données, c’est la communication à la fois entre les acteurs internes et externes des organisations. Les silos de données étaient autrefois un frein à cette communication, mais grâce à son architecture, sa mise en œuvre facile, et les fonctionnalités de Data Exchange, Snowflake tend à multiplier les possibilités quant à l’exploitation et la valorisation des données. Les entreprises peuvent désormais se concentrer sur les données qu’ils peuvent partager, celles qu’ils pourraient exploiter pour continuellement améliorer leurs outils d’aide à la décision, plutôt que se demander comment techniquement y parvenir. En ce sens, Snowflake constitue une véritable invitation au partage.