Si le concept de « big data » est aujourd’hui plutôt bien connu, un nouveau terme est récemment apparu, celui de « data lake », ou « lac de données » en français. Alors que les données étaient auparavant stockées dans des entrepôts (ou « datawarehouses »), elles pourraient maintenant l’être sous la forme de lacs. S’agit-il d’une révolution ou simplement d’une nouvelle mode qui passera aussi vite qu’elle est apparue ? Nous allons tenter ici d’expliquer le concept de « data lake » et de donner quelques exemples d’utilisation.
Un mode de stockage différent
La plupart du temps, les données d’une entreprise sont stockées dans des bases de données. Elles sont structurées et relationnelles, afin d’accueillir des données elles-mêmes structurées. Les informations sont organisées dans des tables, structurées en champs ou colonnes, avec des dimensions, des variables… Les données sont recueillies, formatées et structurées avant d’être stockées. Cette organisation a l’avantage de permettre une navigation simplifiée dans les données. L’inconvénient vient du coût élevé dès qu’il est nécessaire d’effectuer des modifications sur la structure de stockage. Les travaux peuvent être complexes, voire même impossibles à réaliser sans perte de données, et les ressources machines mobilisées peuvent représenter un coût certain. Les décisions initiales prises lors de la conception de la structure de stockage sont donc déterminantes et peuvent être lourdes de conséquences si l’organisation choisie n’est pas adaptée au final. Les bases de données classiques sont donc parfaitement adaptées à partir du moment où les traitements qui seront appliqués sont parfaitement connus, maîtrisés et n’évoluent que très peu, comme pour des applications de gestion financière par exemple.
Les entrepôts de données, ou « datawarehouse » sont apparus afin de stocker les données d’une entreprise de façon centralisée (et non plus dans un certain nombre de bases de données éclatées). La granularité maximum est conservée afin de stocker des données les plus détaillées possibles. De cette façon, il est possible de multiplier les façons dont les informations peuvent être recherchées et recoupées. La recherche d’une information va ici décider de la structure même, contrairement aux bases de données classiques dont la structure indique comment l’information pourra être retrouvée. Si ce mode de stockage est parfaitement adapté à des données relativement stables, structurées, qui n’évoluent pas ou très peu dans le temps, il ne convient absolument pas à des données aux structures hétérogènes comme celles pouvant être agrégées à partir de sites web ou de réseaux sociaux en tous genres.
Les entreprises traitent des volumes de données de plus en plus grands. C’est le « big data ». Mais ce qui est nouveau, c’est qu’elles doivent traiter des données non structurées, ou structurées différemment, et en extraire des informations pertinentes. C’est là qu’entre en jeu les lacs de données. Il s’agit de créer et de gérer un espace de stockage unique et centralisé pour toutes les données, qu’elles soient structurées (en provenance d’un ERP ou d’un CRM par exemple) ou non (en provenance de sites web, de mobiles, de réseaux sociaux…). Les données sont donc stockées ensemble, sans limite de formats, de quantité, tout en conservant la capacité de les analyser.
Fonctionnement d’un « data lake »
Contrairement à un « datawarehouse » où les données sont stockées verticalement, s’empilant les unes sur les autres dans une structure bien ordonnée, dans un « data lake », elles sont stockées horizontalement, toutes sur le même plan, sans structure. Il est donc question de stocker des données brutes, non transformées. Dans le cas d’un « data lake », c’est l’analyse des données lorsqu’elle est demandée, qui va décider de leur structure. Ce fonctionnement est particulièrement adapté au stockage de données dont on ignore à l’avance à quoi elles serviront exactement. Les données sont stockées sous la forme de fichiers distribués. Nous ne sommes donc plus en présence d’une base de données mais d’un système de gestion de fichiers. De cette façon, il n’y a aucune restriction en ce qui concerne les analyses que l’on souhaitera faire de ces données. Il peut s’agir de collecter des informations sur des habitudes de consommation afin d’anticiper des comportements ou de collecter des événements sur une chaîne de fabrication pour fiabiliser les processus. Les secteurs du marketing et des médias ont naturellement été les premiers intéressés par ces applications. Le revers de la médaille, c’est que chaque analyse risque de consommer beaucoup de ressources machines. C’est pourquoi la mise en place d’un « data lake » dans le cloud est sans doute la meilleure solution de façon à s’adapter facilement aux montées en charge et à optimiser les coûts, qui seraient sans nul doute astronomiques avec une solution classique d’informatique interne.
Un « data lake », pour quelle utilisation ?
Le « data lake » est réellement complémentaire au « datawarehouse » classique, qui reste la solution la plus adaptée pour des données structurées subissant des analyses répétitives. Dès lors que l’on ne connaît pas à priori l’utilisation qui sera faite des données, un « data lake » sera beaucoup plus adapté.