Un des mots à la mode dans notre domaine du traitement des données est big data. Il s’agit de la capacité à traiter des quantités massives de données structurées ou non structurées. Mais massives comment ? A partir de combien est-ce du big data ? Qui en a besoin ? Quelle est la réalité opérationnelle derrière ces mots ?
Rappelons d’abord que l’origine du big data est liée à une logique de programmation distribuée dite map-reduce qui a été développée par des sociétés du Web comme Google, Yahoo!, Facebook etc : ces grands sites mondiaux ont des tonnes de données à analyser et ne pouvaient pas se contenter des approches « bases de données centric » habituelles. Dropbox gère 100 millions de sauvegardes de fichiers par jour, Twitter annonce 200 millions de tweets quotidiens, Facebook supporte 250 millions d’uploads de photos par jour et en stocke plus de 40 milliards… Le big data est donc d’abord une approche informatique qui prend le relais quand une implémentation classique basée sur l’utilisation de quelques serveurs, même très costauds, ne suffit plus pour assurer les temps de traitement attendus. Ainsi, ces acteurs exploitent des clusters regroupant chacun plusieurs milliers de serveurs et manipulant des péta-octets [1] de données.
D’un point de vue logiciel, le big data est souvent associé à la pile technologique Hadoop mise en open source par Yahoo! et reprise par nombre d’entreprises à vocation commerciale (EMC, Cloudera, Hortonworks…). Hadoop et ses dérivés apportent un système de stockage distribué, une base de données répartie, ainsi qu’un cadre de programmation et d’exécution de tâches de calcul réparties.
Mais à quoi cela sert-il et quel sens cela a-t-il pour la plupart des entreprises qui ont quelques téra-octets de données à analyser ?
Quelques éléments de réponse :
- Le big data est une technologie et non une solution. C’est un moyen et pas une fin. Donc dire « je vais faire du big data » n’a pas de sens car celui-ci ne répond à aucun besoin fonctionnel en particulier. C’est comme dire « je vais faire de la base de données » ou « je vais faire du Web ». Pour quoi faire ? La démarche doit rester pragmatique : partez de votre besoin, voyez s’il est satisfait de façon acceptable par des solutions existantes. Et si rien de ce qui existe ne convient (trop cher, trop lent) alors demandez-vous si une approche alternative exploitant les technologies du big data peut être envisagée.
- Le big data nécessite de très fortes compétences. Tout d’abord, le niveau de maturité des technologies proposées nécessite des ingénieurs qualifiés pour installer, paramétrer, optimiser et faire tourner ces couches logicielles. A fortiori si vous comptez bâtir des solutions opérationnelles critiques. Il en va de même pour le développement des applications car celles qui veulent tirer partie de l’approche doivent être ré-écrites selon les principes du map-reduce. Souvenons-nous que chez Google ou Facebook, ce sont leurs meilleurs ingénieurs logiciels et mathématiciens qui développent les applications big data.
- Pour faire du big data, il faut beaucoup de données. Des téra-octets, voire plutôt des dizaines de téra-octets. À moins de 10 ou 15 serveurs, le passage au big data n’a pas de sens.
Un exemple : Oracle vient de sortir une appliance big data petit format : 18 serveurs, 864 Go de mémoire, 648 To de stockage pour la modique somme de 455 000 $. Et encore… il reste à intégrer et à développer les applications qui reposeront sur cette architecture.
Avec l’arrivée des processeurs massivement multi-cœurs, du in-memory computing ou des SSD, la frontière se déplace et pour la majorité des cas, un seul serveur moderne suffit encore. Alors que dans le cas d’un cluster, il faut prendre en compte le coût élevé de possession (TCO) : achat des machines, installation et administration, électricité, froid, maintenance… A fortiori s’il s’agit de n’effectuer que quelques heures ou jours de calcul par mois, la rentabilité d’une telle approche est difficile à atteindre. Big data et cloud computing pourraient alors avoir un avenir commun, mais a condition que les entreprises veuillent bien envoyer dans le cloud leurs téra-octets de données à analyser.
En définitive, il ne s’agit pas de savoir sur combien de serveurs les calculs sont faits, mais de savoir lesquels. Pour quel usage ? Quelle valeur créée ?
C’est pourquoi ce sont plutôt les éditeurs de logiciels qui vont s’emparer du big data, afin d’offrir des solutions opérationnelles répondant aux besoins des entreprises et passant à l’échelle du péta-octets. Les éditeurs de logiciels déjà actifs dans la BI, le data mining ou les moteurs de recherche intégreront ces techniques pour fournir des version « big » de leurs solutions.
Et d’ailleurs qu’en est-il côté Antidot ? Nos solutions sont conçues dès l’origine pour fonctionner aussi bien sur un seul serveur que sur des clusters de machines pour traiter des millions de données et répondre à des centaines de requêtes par seconde. Et nous travaillons déjà à intégrer à nos solutions les apports de l’approche big data.
Mais au delà de la surenchère marketing, nous nous attachons surtout à fournir des solutions qui créent de la valeur pour nos clients. Ainsi, notre framework d’analyse de documents offre des modules prêts à l’emploi couvrant des besoins aussi variés que la classification, la normalisation, l’annotation, l’enrichissement sémantique ou la géolocalisation des données… Agilité et vitesse d’exécution sont des enjeux qui nous semblent plus importants que force et volume.
Conclusion : ce n’est pas la peine de complexer si vous n’avez pas plusieurs centaines de téra-octets de données à analyser et si vous vous sentez exclu du big data. Car en définitive, seule la valeur que vous saurez tirer de vos données a vraiment de l’importance !
[1] un péta-octet, en abrégé Po, représente 1015 octets, soit mille téra-octets ou un million de giga-octets…