ARCHITECTURE
15/7/2024
Architecture Data Lake Photo de Marie de Vesvrotte
Marie de Vesvrotte
Responsable Marketing

Qu’est-ce qu’un Data Lake ?

Poussé par l’augmentation des données non-structurées et le besoin d’accès aux données en temps réel, apparaît dans les années 2010 le Data Lake en complément du Data Warehouse. 

Les lacs de données se sont imposés comme de vastes réservoirs permettant de stocker des données brutes de manière flexible et évolutive.

Data Lake ou lac de données : de quoi parle-t-on ? 

Un Data Lake est un dépôt de stockage qui permet de stocker des données à grande échelle dans leur format brut, d'origine, jusqu'à ce qu'elles soient nécessaires pour l'analyse. 

Contrairement à un Data Warehouse, qui structure et optimise les données pour des requêtes et des analyses spécifiques, un Data Lake conserve les données dans leur format natif, qu'elles soient structurées, semi-structurées ou non structurées.

L’architecture n’est pas hiérarchique mais plate, chaque élément de donnée reçoit un identifiant unique et est stocké de manière à permettre un accès rapide et flexible pour diverses analyses et traitements.

Comment fonctionne un Data Lake ? 

Un Data Lake fonctionne en centralisant le stockage de données provenant de multiples sources dans leur format brut, et en permettant leur accès et leur traitement pour diverses analyses et applications.  

Imaginez un vaste lac dans lequel différents cours d’eau, fleuves et rivières apportent continuellement de l'eau.  

lac

  1. Sources de données : chaque source d’eau représente un flux de données provenant d’une application (CRM, ERP…). Il y a les cours d’eau (faible volume), les fleuves (grand volume), les vagues (chargement par lots) et les torrents (streaming).   
  2. Modèle schéma-on-read : l'eau est versée directement dans le lac sans traitement préalable (modèle de données schéma à la lecture).
  3. Stockage extensible : le lac, avec sa vaste capacité de stockage, représente l'architecture plate et extensible du Data Lake, permettant de stocker d'énormes volumes d'eau et d'y accéder rapidement pour toute exploration ou utilisation.
  4. Conversion structurée : lorsque l'eau est nécessaire pour un usage spécifique (par exemple, potable ou pour l'irrigation), elle est traitée et filtrée (conversion des données en format structuré pour l’analyse).  
  5. Étiquetage et méta-données : une fois l'eau traitée, elle est stockée dans des conteneurs étiquetés avec des informations sur leur contenu pour faciliter leur gestion et recherche.
  6. Outils d'analyse : les scientifiques peuvent utiliser des équipements sophistiqués ou même des méthodes simples pour analyser l'eau (requêtes SQL, NoSQL…). Chaque fois qu'il y a une question sur la qualité ou la composition de l'eau, des échantillons peuvent être analysés immédiatement (requête pour analyser un sous-ensemble de données). 

Architecture Data Lake : le concept de schema-on-read

L'architecture d'un Data Lake repose sur le concept de schéma à la lecture (schema-on-read). Contrairement aux bases de données traditionnelles qui imposent un schéma à l'écriture, un Data Lake permet de stocker des données brutes dans leur format natif et de définir leur schéma uniquement lorsqu'elles sont lues. Cette approche offre une plus grande flexibilité et permet de gérer des volumes massifs de données provenant de sources variées.

Pour intégrer les données dans un Data Lake, deux principaux types de traitement sont utilisés : le traitement par lots (batch processing) et le traitement des flux (stream processing).

Batch Processing

Le traitement par lots consiste à regrouper les données et à les traiter à des intervalles spécifiques. Ce mode de traitement est adapté pour des opérations analytiques qui ne nécessitent pas une actualisation en temps réel. Les données sont collectées pendant une période définie, puis traitées de manière groupée. Ce processus peut inclure le nettoyage, la transformation, et l'agrégation des données avant de les charger dans le Data Lake. Le traitement par lots est généralement utilisé pour des analyses historiques et pour générer des rapports qui ne requièrent pas d'actualisation immédiate.

Stream Processing

Le traitement des flux, quant à lui, permet de traiter les données en temps réel dès qu'elles sont générées. Ce mode de traitement est à privilégier pour les applications nécessitant une faible latence et une réactivité instantanée. Les systèmes de traitement des flux analysent les données en continu, permettant de détecter des événements en temps réel et de prendre des décisions instantanées. Ce type de traitement est essentiel pour des cas d'utilisation tels que la surveillance des réseaux, la détection de fraudes, et les systèmes de recommandation en ligne.

En combinant ces deux types de traitement, un Data Lake peut offrir une solution complète pour gérer à la fois les analyses historiques et les applications nécessitant des réponses en temps réel. Cette dualité permet aux entreprises de maximiser l'utilité de leurs données, en tirant parti de la richesse des informations disponibles pour une prise de décision plus éclairée.

Voici une vue synthétique de l’architecture Data Lake : 

data lake


Les avantages du Data Lake 

L'un des atouts majeurs des Data Lakes est l'utilisation du schéma en lecture. Contrairement aux bases de données traditionnelles qui nécessitent de définir un schéma à l'écriture (schema-on-write), les Data Lakes permettent de stocker les données brutes sans préalablement définir leur structure. Cette flexibilité permet d’ingérer des données rapidement et sans retard. 

Un autre avantage clé des Data Lakes est leur capacité à stocker des données dans leur format natif, qu'il s'agisse de fichiers CSV, JSON, XML, des images, des vidéos, ou des données issues de capteurs IoT. Cela permet non seulement de réduire les coûts liés aux transformations de données, mais également de faciliter le processus d’exploration d’informations. 

Enfin, les Data Lakes offrent une grande scalabilité, permettant aux entreprises de stocker et de traiter des volumes de données croissants sans compromettre les performances. 

Data Lake : éviter le marécage de données

Bien que les Data Lakes offrent une flexibilité et une capacité de stockage importantes, ils ne sont pas sans limites. Une des principales préoccupations est l'accumulation des données, communément appelé “marécage de données” ou “Data Swamp”, qui peut nuire à la qualité et à la fiabilité des informations stockées.

Ce phénomène se produit lorsque les données sont ingérées sans un contrôle adéquat de leur qualité et de leur pertinence, ce qui conduit à une masse de données désorganisée et difficile à exploiter.

Les erreurs de format, les incohérences et les duplications peuvent proliférer, rendant l'analyse des données moins fiable. Sans un nettoyage régulier et une validation stricte, ces problèmes peuvent s'accumuler, rendant le Data Lake difficile à naviguer et compromettant la confiance des utilisateurs dans les analyses qui en découlent.

Il est essentiel d'implémenter une gouvernance des données avant de mettre en place votre Data Lake. Cela inclut la mise en place de processus de nettoyage, de validation et de catalogage des données. 

Data Lake vs Data Warehouse 

Les Data Lakes adoptent une approche ELT (Extract, Load, Transform) contrairement à la méthode traditionnelle ETL (Extract, Transform, Load) utilisée par les Data Warehouses. Dans une démarche ELT, les données sont d'abord extraites des sources, puis chargées dans le Data Lake dans leur format brut. La transformation des données se fait ensuite à la demande, selon les besoins spécifiques des analyses.

Par ailleurs, une des caractéristiques distinctives du Data Lake est que les applications peuvent interagir directement avec les données stockées. Les données dans un Data Lake ne sont pas seulement utilisées pour des fins de reporting, comme c'est souvent le cas avec le Data Warehouse. 

Le Data Lake utilise un schéma en lecture, permettant de stocker les données dans leur format brut. Les schémas sont appliqués lors de l'analyse, offrant une grande flexibilité. Toutefois,  la performance de l'analyse peut varier en fonction de la taille et de la complexité des données brutes. Les requêtes complexes peuvent être plus lentes en l'absence de schémas pré-définis. Le Data Warehouse utilise une logique de schéma en écriture, nécessitant la définition du schéma avant le chargement des données. Cela assure la qualité et la cohérence des données, mais limite la flexibilité.

Enfin, avec l’approche Data Lake,  la gestion de la sécurité et de la gouvernance peut être plus complexe en raison de la diversité et de l'absence de schéma fixe. Des outils et des politiques spécifiques sont nécessaires pour assurer la conformité. 

Pour plus de lisibilité, voici un tableau qui résume les différences entre Data Lake et Data Warehouse :

Caractéristique Data Lake Data Warehouse
Structure des données Données brutes, non structurées et semi-structurées Données structurées et filtrées
Type de données Divers, y compris des fichiers, des vidéos, des images, des logs, des données IoT Données relationnelles et analytiques
Flexibilité Très flexible, accepte tous types de données Moins flexible, nécessite des schémas prédéfinis
Coût Moins cher pour le stockage de grandes quantités de données brutes Plus cher en raison des coûts de traitement et de stockage des données structurées
Scalabilité Haute scalabilité, adapté au Big Data Scalabilité limitée par la taille de la base de données
Temps de traitement Peut être lent en raison du volume et du manque de structure Rapide grâce à l'optimisation des requêtes sur des données structurées
Utilisateurs principaux Data scientists, ingénieurs de données Analystes de données, responsables métier
Technologies courantes Hadoop, Amazon S3, Azure Data Lake Teradata, Amazon Redshift, Google BigQuery
Cas d'utilisation Analyses exploratoires, Machine Learning, stockage de données massives Reporting, Business Intelligence, analyses opérationnelles
Gestion des données Nécessite des processus robustes de gouvernance des données pour éviter le marécage Processus de gestion de données bien définis et contrôlés
Rond violet avec fleche vers le haut