Didier Lavoine, Directeur Technique de Digora
Les projets « Big Data » reposent sur deux processus complexes. Le premier consiste à agréger et corréler de multiples sources de données, internes ou externes à l’entreprise. Celles-ci peuvent provenir du système d’information existant (bases de données relationnelles, fichiers Excel…), des bases de données de revendeurs spécialisés, des réseaux sociaux, des messageries, du Web, ou de « l’Open Data » (par exemple data.gouv.fr)…
Une complexité supplémentaire est liée au fait que des données structurées, dont les formats sont exploitables directement, coexistent avec des données non structurées (par exemple issues de fichiers Word, de PDF, de tweets, de vidéos ou de mails…) à priori plus difficiles à gérer, car il faut les transformer.
Le second concerne le traitement de l’information : en effet, les données doivent être successivement collectées, stockées, traitées puis visualisées par ceux à qui elles sont destinées. Ce processus, qui va de la matière première (la donnée) à son utilisation pour la prise de décision, doit reposer sur des technologies et des infrastructures éprouvées et robustes.
Adapter le stockage des données : le noSQL s’impose en complément du SQL
Un projet « Big Data » va donc consister à traiter ces aspects : il ne peut réussir que si les infrastructures sont adaptées, en particulier pour le stockage et le traitement des données.
Côté stockage, l’évolution porte sur les nouveaux « file system », le stockage distribué s’est imposé pour étendre ses performances et les capacités de stockage, il est largement utilisé par Amazon, par exemple.
La composante « bases de données » est, elle aussi, fondamentale. Les bases de données relationnelles, approche historique pour organiser les données, ont vu apparaitre des bases noSQL (not only SQL). Dans les projets « Big Data », elles ont par exemple pour noms : Cassandra, CouchBase, MongoDB... Ces bases de données NoSQL recouvrent quatre grandes approches : les bases de type clé-valeur (on accède à chaque donnée à travers une clé), les bases en colonnes (les données ne sont plus stockées enregistrement par enregistrement, mais sous la forme de colonnes), les bases en graphes (les données sont stockées sous la forme de graphiques en réseau) et les bases orientées documents, pour stocker des données semi-structurées de manière moins rigide que dans les bases relationnelles, qui imposent des schémas très normalisés.
À l’origine, les bases de données NoSQL ont été conçues pour les grandes plateformes web (Google, Amazon, Facebook, Yahoo) pour couvrir leurs besoins de bases de données très étendues, avec une « scalabilité » et des performances accrues.
Optimiser le traitement des données : la pierre angulaire Hadoop
Côté traitement des données, c’est « Hadoop » qui s’impose. Il s’agit d’un « framework » open source destiné à l’analyse répartie de grands volumes de données, structurées ou non. Son architecture distribuée lui permet de bénéficier d’une vraie capacité à monter en puissance : « Hadoop » implémente en effet un ensemble d’algorithmes conçus pour répartir les traitements sur des grappes de serveurs, chaque nœud assurant une partie des calculs et du stockage. Il se différencie, de ce fait, des autres solutions positionnées sur le créneau du « Big Data », dont la plupart reposent sur des architectures matérielles spécifiques de type « appliance ». « Hadoop », composé d’un système de fichiers distribué, d’outils de planification des traitements et d’algorithmes de traitement en parallèle des données, constitue donc la pierre angulaire des projets « Big Data ».
L’analyse des données peut s’appuyer sur les algorithmes de « Map/Reduce », pour paralléliser les traitements de grandes quantités de données, distribuées au sein d’un cluster de nœuds. Lorsque ces données sont traitées, il convient de les restituer à l’utilisateur, le plus souvent sous forme de graphiques, grâce à des solutions de visualisation.
Avec une pertinence dans la collecte des données, une homogénéité de l’infrastructure de stockage et une cohérence du traitement des données, les projets « Big Data » seront un succès. Ces conditions de réussite, nous les avons résumées en dix recommandations (Cf. encadré ci-dessous). Elles doivent inciter les utilisateurs à demander davantage de volumes à traiter, davantage de sources de données à intégrer, et en temps réel… Ce qui rendra encore plus crucial la qualité des infrastructures…
(1) Etude Opinion Way « Les entreprises et la Big Data », juillet 2015 et étude Vanson Bourne « The State of Big Data Infrastructure Management », avril 2015.
Une complexité supplémentaire est liée au fait que des données structurées, dont les formats sont exploitables directement, coexistent avec des données non structurées (par exemple issues de fichiers Word, de PDF, de tweets, de vidéos ou de mails…) à priori plus difficiles à gérer, car il faut les transformer.
Le second concerne le traitement de l’information : en effet, les données doivent être successivement collectées, stockées, traitées puis visualisées par ceux à qui elles sont destinées. Ce processus, qui va de la matière première (la donnée) à son utilisation pour la prise de décision, doit reposer sur des technologies et des infrastructures éprouvées et robustes.
Adapter le stockage des données : le noSQL s’impose en complément du SQL
Un projet « Big Data » va donc consister à traiter ces aspects : il ne peut réussir que si les infrastructures sont adaptées, en particulier pour le stockage et le traitement des données.
Côté stockage, l’évolution porte sur les nouveaux « file system », le stockage distribué s’est imposé pour étendre ses performances et les capacités de stockage, il est largement utilisé par Amazon, par exemple.
La composante « bases de données » est, elle aussi, fondamentale. Les bases de données relationnelles, approche historique pour organiser les données, ont vu apparaitre des bases noSQL (not only SQL). Dans les projets « Big Data », elles ont par exemple pour noms : Cassandra, CouchBase, MongoDB... Ces bases de données NoSQL recouvrent quatre grandes approches : les bases de type clé-valeur (on accède à chaque donnée à travers une clé), les bases en colonnes (les données ne sont plus stockées enregistrement par enregistrement, mais sous la forme de colonnes), les bases en graphes (les données sont stockées sous la forme de graphiques en réseau) et les bases orientées documents, pour stocker des données semi-structurées de manière moins rigide que dans les bases relationnelles, qui imposent des schémas très normalisés.
À l’origine, les bases de données NoSQL ont été conçues pour les grandes plateformes web (Google, Amazon, Facebook, Yahoo) pour couvrir leurs besoins de bases de données très étendues, avec une « scalabilité » et des performances accrues.
Optimiser le traitement des données : la pierre angulaire Hadoop
Côté traitement des données, c’est « Hadoop » qui s’impose. Il s’agit d’un « framework » open source destiné à l’analyse répartie de grands volumes de données, structurées ou non. Son architecture distribuée lui permet de bénéficier d’une vraie capacité à monter en puissance : « Hadoop » implémente en effet un ensemble d’algorithmes conçus pour répartir les traitements sur des grappes de serveurs, chaque nœud assurant une partie des calculs et du stockage. Il se différencie, de ce fait, des autres solutions positionnées sur le créneau du « Big Data », dont la plupart reposent sur des architectures matérielles spécifiques de type « appliance ». « Hadoop », composé d’un système de fichiers distribué, d’outils de planification des traitements et d’algorithmes de traitement en parallèle des données, constitue donc la pierre angulaire des projets « Big Data ».
L’analyse des données peut s’appuyer sur les algorithmes de « Map/Reduce », pour paralléliser les traitements de grandes quantités de données, distribuées au sein d’un cluster de nœuds. Lorsque ces données sont traitées, il convient de les restituer à l’utilisateur, le plus souvent sous forme de graphiques, grâce à des solutions de visualisation.
Avec une pertinence dans la collecte des données, une homogénéité de l’infrastructure de stockage et une cohérence du traitement des données, les projets « Big Data » seront un succès. Ces conditions de réussite, nous les avons résumées en dix recommandations (Cf. encadré ci-dessous). Elles doivent inciter les utilisateurs à demander davantage de volumes à traiter, davantage de sources de données à intégrer, et en temps réel… Ce qui rendra encore plus crucial la qualité des infrastructures…
(1) Etude Opinion Way « Les entreprises et la Big Data », juillet 2015 et étude Vanson Bourne « The State of Big Data Infrastructure Management », avril 2015.
Dix recommandations pour réussir un projet Big Data
1- Inventorier les données disponibles (internes/externes, structurées/non structurées) et traiter les aspects fonctionnels en étroite collaboration avec les métiers.
2- Fiabiliser les données internes avant d’intégrer des données externes.
3- Délimiter un périmètre (marketing, production…) pour réaliser rapidement un ou plusieurs projets pilotes ou « proof of concept ».
4- Prévoir un stockage adapté (pour des volumes de données en croissance exponentielle, les bases de données…).
5- Anticiper les besoins en performance (pour le traitement en temps réel et l’accès aux données).
6- Anticiper les besoins d’évolutions des architectures réseaux (bande passante, usages en mobilité…).
7- Garantir une interopérabilité optimale (pour collecter/traiter des données structurées et non structurées issues de multiples sources, applications et serveurs).
8- Traiter en parallèle les aspects fonctionnels et ceux liés aux infrastructures (réseaux, stockage, serveurs, bases de données…) de manière à anticiper les évolutions des besoins.
9- Gérer les problématiques d’accès aux données et de requêtes utilisateurs.
10- Se faire accompagner pour bénéficier d’expertise et de bonnes pratiques.
2- Fiabiliser les données internes avant d’intégrer des données externes.
3- Délimiter un périmètre (marketing, production…) pour réaliser rapidement un ou plusieurs projets pilotes ou « proof of concept ».
4- Prévoir un stockage adapté (pour des volumes de données en croissance exponentielle, les bases de données…).
5- Anticiper les besoins en performance (pour le traitement en temps réel et l’accès aux données).
6- Anticiper les besoins d’évolutions des architectures réseaux (bande passante, usages en mobilité…).
7- Garantir une interopérabilité optimale (pour collecter/traiter des données structurées et non structurées issues de multiples sources, applications et serveurs).
8- Traiter en parallèle les aspects fonctionnels et ceux liés aux infrastructures (réseaux, stockage, serveurs, bases de données…) de manière à anticiper les évolutions des besoins.
9- Gérer les problématiques d’accès aux données et de requêtes utilisateurs.
10- Se faire accompagner pour bénéficier d’expertise et de bonnes pratiques.