Le big data n’est plus l’apanage des grandes entreprises. Désormais, les logiciels conçus pour gérer de gigantesques volumes de données peuvent également être utilisés de manière très efficace dans les entreprises de taille moyenne, que ce soit pour optimiser des processus de production en analysant les données collectées par des capteurs et des machines, ou pour mieux prévoir la demande en décortiquant les requêtes des clients. Une analyse approfondie de la production permet ainsi d’améliorer la gestion de la qualité grâce à une plus grande transparence des processus.

Hadoop et NoSQL – une rivalité complémentaire

Outre le framework Hadoop, de nombreuses entreprises utilisent actuellement la technologie de gestion de base de données NoSQL pour traiter le big data. L’un et l’autre peuvent gérer des volumes de données importants et en rapide augmentation, et sont particulièrement efficaces avec des formats de données hétérogènes, même si ces derniers évoluent au fil du temps.

Ces deux technologies permettent également d’utiliser le matériel existant et forment un cluster. Pour traiter des jeux de données plus volumineux, il est possible d’incorporer simplement des éléments matériels supplémentaires à ces clusters, un processus baptisé « scale-out » ou montée en charge horizontale. A contrario, la montée en charge verticale (upscaling) consiste à augmenter la puissance des serveurs existants en leur ajoutant des équipements supplémentaires.

Les technologies NoSQL et Hadoop peuvent toutes deux traiter différents types de données, telles que les fichiers de journalisation (log files), documents ou médias enrichis, c’est-à-dire des contenus multimédia audio ou vidéo. Les données dites structurées, dont la structure varie entre les différents types de données ou évoluera avec le temps, ne soulèvent aucun problème pour l’un comme pour l’autre système.

Le volume de la charge de travail : le paramètre décisif

Compte tenu de l’apparente similitude entre ces deux technologies, il semble que NoSQL et Hadoop soient en concurrence directe. Or, bien que conçus pour le big data, ces deux environnements se distinguent par les types de charges de travail qui leur sont destinées. En effet, la technologie NoSQL assure généralement un accès interactif et en temps réel aux données avec des scénarios d’utilisation qui impliquent des interactions avec l’utilisateur, telles que des applications Web. Avantage principal, une capacité de lecture et d’écriture des données très rapide.

Pour sa part, Hadoop traite d’énormes quantités de données. Pour ce faire, les données sont réparties en différents « tas » (heaps), tandis que le traitement est généralement effectué simultanément par plusieurs serveurs. Hadoop procède à cette répartition du travail en utilisant la méthodologie MapReduce. Dans la mesure où chaque serveur comprend une partie de l’ensemble du jeu de données, MapReduce rapproche le traitement au plus près possible de l’approche « données » afin d’éviter de ralentir l’accès au réseau.

Hadoop et NoSQL peuvent et doivent par conséquent être associés dans tout environnement traitant réellement le big data. Dans une architecture typique, la partie NoSQL s’occupera des données interactives tandis que le cluster Hadoop se concentrera sur le traitement des données et l’analyse à grande échelle. NoSQL, par exemple, peut gérer les transactions des utilisateurs, les données collectées par les capteurs ou les profils des clients, Hadoop se chargeant ensuite d’analyser ce jeu de données et de l’exploiter pour générer différentes recommandations, effectuer des analyses prédictives ou détecter des fraudes.

Deux clusters pour le big data

Jusqu’à présent, ces deux technologies ont essentiellement été utilisées séparément — ce qui convient aux entreprises qui souhaitent par exemple traiter leurs données progressivement par lots, ou si le délai de traitement revête moins d’importance. Ces entreprises procèdent à leur guise pour séparer les charges de travail Hadoop et NoSQL et dans ce cas, les deux technologies fonctionnent dans des clusters séparés : NoSQL génère et actualise les données afin de les transférer progressivement en vue d’un traitement par lots vers Hadoop où elles seront analysées de manière approfondie.

Mais les transferts de données entraînent fréquemment des surcharges (overheads) et des retards, implique l’administration de deux clusters, ainsi que la duplication des jeux d’outils par deux instances des mêmes données. Face à ces doublons et pour satisfaire les entreprises qui souhaitent de plus en plus traiter leurs données en temps réel, les grands fournisseurs de big data devront bientôt éliminer ces overheads inutiles.

Le challenge est d’intégrer les deux technologies d’emblée, de sorte que plusieurs charges de travail peuvent être traitées dans le même cluster. Cette méthode évite aux entreprises de sauvegarder leurs données sur plusieurs réseaux tout en réduisant les risques inhérents à la multiplication des instances de données, par exemple sur le plan de la gouvernance, de l’administration et de la sécurité.

Un bon point de départ

Aujourd’hui, le big data peut être utilisé de façon très productive. Le défrichement a été accompli, et de nombreuses entreprises ont déjà essuyé les plâtres, apprenant notamment que le fait de séparer collecte et analyse — en utilisant les technologies NoSQL et Hadoop par exemple — ralentit généralement le traitement des données et occasionne des surcoûts à cause des doublons. Mais en intégrant les deux technologies, le big data devient de plus en plus intéressant pour les PME. Hadoop et NoSQL ne sont pas des technologies concurrentes, mais plutôt complémentaires dans le cadre du big data, avec à la clé une optimisation des processus de production, une plus grande transparence des tests de qualité et la possibilité d’évaluer les besoins en temps réel.

 

 

________________
Aurélien Goujet
est SE Director pour l’Europe du Sud et le Benelux chez MapR Technologies