Data lake (ou lac de données) : la solution reine du big data
Taillé pour le big data, un lac de données, ou data lake, est dessiné pour casser les silos des systèmes d'information d'entreprise. C'est aussi un moyen de gagner en agilité.
L'émergence du concept de data lake s'est accélérée grâce avec la convergence du besoin de plateformes fédératrices dans les entreprises et de nouveaux moyens techniques économiques apportés par les technologies de big data. Cet article de référence a été réalisé avec l'aide de l'expert Vincent Heuschling.
Qu’est-ce qu’un data lake ? (définition)
Concept lié à la mouvance du big data, le lac de données (ou data lake en anglais) désigne un espace de stockage global des informations présentes au sein d'une organisation. Il s’agit de le faire avec suffisamment de flexibilité pour interagir avec les données, qu’elles soient brutes ou très raffinées. L’une des clés de cette flexibilité est l’absence de schéma strict imposé aux flux entrants. Cette faculté permet d’insérer toutes les données, quelles que soient leur nature et leur origine. Au-delà du stockage, l’un des enjeux du data lake est de pouvoir très facilement traiter et transformer l’information afin d’accélérer les cycles d’innovation, et ainsi être un support aux différentes initiatives data.
En quoi est-ce différent d'un datawarehouse ?
La tentation est très souvent forte d’apparenter le data lake à un classique datawarehouse, mais les différences entre les deux sont importantes, et ceci sur plusieurs plans. Le data lake a vocation à absorber des flux de données bruts et à les rendre utilisables en les transformant pour satisfaire différents besoins d’analyse. Ceci reste finalement extrêmement classique et n’apporte rien de nouveau à ce que le trio "ETL - datawarehouse - datamart" pouvait faire. Cette nouvelle approche est cependant différente en ce sens qu’elle permet de charger les données et de les transformer ensuite pour les rendre exploitables. Les initiatives autour de la data sont très souvent limitées par les difficultés inhérentes aux phases de collecte et d’ingestion dans les systèmes. Sur ce point, le fait de pouvoir charger les données sur une plateforme dans un état quasiment brut, et d’itérer rapidement pour les utiliser est un avantage indéniable. On parle souvent d’ailleurs d’une démarche d’ELT (Extract-Load-Transform) plutôt que d’ETL (Extract-Transform-Load) à laquelle nous étions habitués. Là où un datawarehouse pousse les données de leurs origines vers leurs consommateurs selon un chemin relativement fixe où chaque datamart est sensé satisfaire un besoin, on a ici une bien plus grande flexibilité. C’est en effet à chaque consommateur de matérialiser son besoin et d’extraire les différentes données sources puis de les combiner pour en faire du sens.
L'analyse de données devient opérationnelle
Un autre facteur différenciant le data lake vis-à-vis de son ancêtre réside dans le coté opérationnel qui peut lui être associé. La capacité d’ingestion de flux en temps réel et de réaction aux données autorise des applications a interagir directement dessus. On dépasse ici l’aspect Business Intelligence du datawarehouse, la création de valeur n’étant plus uniquement dans l’utilisation des données à des fins de reporting.
Quels sont les atouts d'un data lake ?
Le fait de ne pas imposer de schéma strict aux données lors de leur ingestion présente un évident risque de qualité et de fiabilité. Dans les faits, on constate que les données restent finalement non structurées assez peu longtemps, puisqu’elles passent rapidement dans un pipeline qui va permettre de normaliser les sources et de les cataloguer pour obtenir des meta-données. La gouvernance apparaît alors comme l’un des enjeux majeurs du bon fonctionnement d’un data lake.
La structuration des données dans un datawarehouse impose aux analystes d’utiliser les données au travers du formalisme rigide conçu à l’origine de celui-ci. La transformation au chargement des données, si elle est structurante, est aussi destructrice des détails, du fait des agrégations nécessaires. L’approche de "Schema On Read" qui n’applique une structure aux données que lorsqu’elles sont utilisées permet de garder tout le potentiel des données d’origine intact. Cet aspect nécessite par contre des compétences et des outils bien plus techniques qu’auparavant afin d’exploiter les données.
Le machine learning pour constituer des modèles prédictifs
Le data lake est très souvent basé sur des technologies qui permettent le traitement in-situ des données. Le fait de disposer de puissance de calcul directement associée au stockage permet de raffiner un flux de données, et ainsi de facilement en créer les déclinaisons métier attendues. La richesse des outillages intégrés permettent à des analystes, des data-scientistes, ou des développeurs de tirer parti des données et de rapidement construire des scénarios analytiques ou des applications. On y associe aussi très souvent des processus de machine learning qui ont vocation à exploiter toutes les données pour constituer des modèles prédictifs. La capacité de ceux-ci à être appliqués aux flux entrants apporte une dimension très proactive à ce type de plateforme vis-à-vis de la donnée.
Quels sont les usages du data lake ?
D’une manière générale, de nombreux data lake voient le jour par des projets de remplacement et d’amélioration des infrastructures data existantes. Les organisations sont motivées par le besoin d’améliorer leur utilisation des données, de centraliser toutes les sources en un seul point et d’accélérer les cycles d’innovation. Les secteurs du marketing et des médias ont été évidement les premiers à saisir cette opportunité, bien avant que le terme de data lake ne popularise cette pratique.
Le data lake permet par exemple de collecter et analyser les données d'interactions clients
Dans une démarche de DMP, Data Management Platform, le data lake permet de collecter toutes les données issues des interactions avec les clients, de raffiner celles-ci pour offrir une vision à 360° sur les clients. Très souvent, ces projets ont vocation à appliquer sur ces données des algorithmes de segmentation, ou de prédiction pour anticiper les comportements des consommateurs. Ils mettent aussi en avant les capacités à assembler et valoriser une grande variété de données. Cependant, ces chantiers étaient encore très centrés sur les données du digital, des ventes et leur usage marketing. On a vu plus récemment des projets dans le secteur industriel ayant pour objet de collecter toutes les sources de données liées à des environnements de fabrication, mais aussi à l’usage fait des produits, pour au final fiabiliser et optimiser ceux-ci. La capacité de collecte massive et les volumes d’informations produites à l’ère de l’Internet of Things amènent de nouveaux champs d’application pour ces outils, permettant d’appréhender des masses importantes de données, et de systématiser l’utilisation de machine learning à grande échelle.
Quid des solutions techniques clés dans ce domaine ?
Si Hadoop apparaît comme une évidence pour construire un data lake d’ampleur, il serait assez réducteur de penser qu’il soit l’unique solution à implémenter. Absorber d’importants volumes d’informations, et les traiter est un emploi sur mesure pour le petit éléphant jaune. Les sponsors d’Hadoop ne s’y trompent pas et leurs communications sont très orientées sur les bonnes pratiques pour implémenter la plate-forme data globale de l'entreprise. Néanmoins, les challenges à relever sont non seulement dans le stockage et le traitement des données, mais aussi dans les besoins périphériques comme la visualisation, la data-science, la gouvernance des données, et les capacités de traitement en temps réel. De ce fait aujourd’hui, on trouve des possibilités, avec Kafka, Storm ou Spark-Streaming, d’apporter des traitements à la volée sur les informations collectées avant même de les engranger dans le data lake.
En plus d’amasser et de traiter des données en masse, il est assez tentant de donner une dimension opérationnelle à ces data lake. Cette extension de l’usage nécessite alors de pouvoir utiliser les données avec des applications modifiant celles-ci. Sans rejoindre les usages des SGBDR classiques, on peut stocker les profils utilisateurs et avoir des applications qui interagissent avec ces profils pour améliorer l’expérience des usagers pendant leurs consultations des sites web. En complément d’Hadoop, une base NoSQL comme Cassandra permet d’utiliser les données de manière interactive, et d’apporter consistance et haute disponibilité.
Quel socle choisir lors de la mise en œuvre d'un data lake ?
Dans la construction d’un data lake, le cloud est assurément la meilleure option, car elle permet de provisionner à la demande les ressources pour faire croître l’infrastructure au fur et à mesure des besoins. L'élasticité est aussi un facteur d’accélération de l’innovation autour des données, et permet par exemple de traiter ponctuellement en marge de la production un historique de données pour valider un nouvel algorithme.
Le coût d’une telle approche est sans commune mesure avec ce qu’il faudrait mettre en place dans un déploiement "on-premise" pour arriver au même résultat. L’intérêt de bâtir un data lake dans le cloud n’est pas qu’économique, il faut aussi tenir compte de la richesse de composants qu’on trouve dans les offres de fournisseurs comme Google Cloud Platform ou Microsoft Azure. Ceux-ci permettent avec leurs offres PaaS d’offrir des composants très riches pour développer des applications, et des API interagissant avec la donnée. Face à l’ampleur du chantier que représente un data lake, le Cloud permet d’avoir une approche graduelle, et de faire appel à un service managé pour produire et exploiter cet environnement.
L’expert : Vincent Heuschling est le fondateur et CEO d'Affini-Tech. Il intervient chez ses clients pour imaginer leurs stratégies big data, réaliser leurs premières expériences et construire leurs plateformes. Ingénieur de formation, il a été responsable informatique, consultant, puis commercial, avant de revenir à la technique et d'entreprendre dans le secteur des big data.