Comme tout bon éditeur qui se respecte, Microsoft présente de bonnes pratiques d’implémentation. La documentation proposée est disponible ici : Zones et conteneurs de lac de données – Cloud Adoption Framework | Microsoft Learn
Nous allons dans cet article créer les différentes zones de notre Datalake en respectant ces bonnes pratiques Microsoft adaptées à notre architecture « Type médaillon ».
Pour la partie purement technique de la création, nous nous réfèrerons à l’article dédié à ce sujet afin de ne pas radoter. L’objectif ici est de préparer les zones de notre datalake de Production et non d’apprendre à créer un compte de stockage. Pour apprendre à créer un compte de stockage c’est par ici : Création des ressources de stockage : Azure Synapse Analytics – Azure Blob Storage – NiceData
Introduction
La première chose à évoquer est que comme toutes « bonnes pratiques », nous sommes dans un cas « idéal », « standard » et qu’il faut bien sûr comprendre « pourquoi » ceci est défini comme tel pour s’assurer que cela est bien optimal dans notre cas de figure et qu’il n’y a pas besoin d’adaptation.
Microsoft préconise un mixe entre la dissociation physique par compte de stockage puis par conteneur à l’intérieur de chaque compte de stockage. Le « nommage » des différents n’est pas très important et c’est surtout leur utilité qui l’est (dans la documentation les comptes de stockage sont simplement numérotés). On nous propose la création de trois « lac », comprendre les comptes de stockages. :
- 1 : données brutes
- 2 : données enrichies
- 3 : données de « développements » / bac à sable
Ensuite, dans chaque compte de stockage, Microsoft nous propose la création de différents conteneurs avec en exemple pour les données enrichies qui pourrait être décrit de la sorte :
- données enrichies et standardisées
- données organisées et exploitables
Zones et conteneurs de lac de données – Cloud Adoption Framework | Microsoft Learn
Cas d’Usage – Tutoriel permettant de démontrer la création d’un DataLakeHouse
Comme évoqué en introduction, nous allons devoir adapter les bonnes pratiques à notre cas d’usage. Pour ce faire nous allons décrire notre cas d’usage, qui est relativement simple !
L’objectif principal est de démontrer les différents usages et techniques de la création d’un datalakehouse dans Azure Synapse Analytics. De ce fait, l’idée est de montrer différents cas d’usages et d’architecture. Que ce soit pour la lecture ou l’écriture de fichier sur le lake. De ce fait, l’idéal pour nous serait d’avoir deux zones dans deux comptes de stockage différents ainsi que deux zones dans le même compte de stockage, mais des conteneurs différents.
Ce schéma propose des contraintes techniques auxquelles nous allons appliquer notre architecture logique « Médaillon » qui est l’une des plus répandus dans le monde du datalake. Si vous ne connaissez pas encore, c’est par ici : Qu’est-ce qu’une architecture en médaillon ? (databricks.com)
La combinaison des deux est en parfait accord avec la proposition de Microsoft que nous pourrons donc garder. Voici le schéma de l’architecture technique de stockage qui va être mise en place pour notre usage dans le monde Azure :
Création des zones
Stockage pour données Brut, la zone « Bronze »
La zone bronze (ou « Bronze layer »), est dans notre architecture dans un conteneur unique dans compte de stockage dédié. Nous allons utiliser le précédent article pour créer notre compte de stockage (Création des ressources de stockage : Azure Synapse Analytics – Azure Blob Storage – NiceData). Attention aux nommage et groupe de ressources qui doivent être uniques et qui détermineront les chemins d’accès que nous utiliserons plus tard, mais vous pouvez évidemment faire vos propres adaptations.
Une fois le compte de stockage crée ici nommé « sanicedatalakeraw », il nous reste à créer le conteneur nommé Bronze qui correspondra à notre zone de datalake. Pour ce faire il faut dans un premier temps se rendre sur la page de la ressource de notre compte de stockage et ouvrir la partie « Data storage ». Comme vous pouvez le remarquer, s’il y a bien des « Conteneurs / Containers », il existe aussi d’autres « options » que vont être les files shares, Queues et Tables car le « Storage account », est comme son nom l’indique un compte de stockage et peux contenir pleins de choses différentes pour stocker de la donnée. Dans le cas de notre lake nous allons principalement stocker des fichiers (peu importe leurs types) communément appelés « blob » pour Binary Large Object. Une vidéo, un fichier Excel, un exécutable, un fichier pdf ou un fichier parquet est un blob ! C’est justement l’objectif principal du conteneur (dans certains cas appelé « Blob Container » …).
Pour créer ce conteneur, rien de plus simple ! Il suffit de faire un « + » de Conteneur, de lui donner un nom et de le créer !
Notre première zone de datalake est maintenant créée. Nous avons un compte de stockage avec un conteneur qui constitue cette zone « bronze ».
Stockage de nos données travaillées, les zones « Silver » et « Gold »
Nos deux zones suivantes seront contenues dans le même compte de stockage. La seule différence lors de la création de ces zones et qu’après avoir créé le premier conteneur « silver », dans un nouveau compte de stockage, nous allons simplement ajouter un nouveau conteneur au même endroit et donc jouer deux fois la dernière étape.
Synthèse
Nos trois zones sont maintenant créées et accessibles par nous même (l’utilisateur en création). Il est possible de les voir dans un outil comme Microsoft Azure Storage Explorer mais si l’outil est pratique pour visualiser et interagir rapidement avec nos zones, ce n’est évidement pas comme cela que nous allons les utiliser !
Conclusion
Maintenant créées, nos zones sont prêtes à être configurées pour leur exploitation dans Synapse et cela passera par les autorisations et la connectivité qui seront expliquées dans un prochain article.