antonin-carette-initial
Antonin Carette
Data Guru

Fausses idées sur le big data

03/11/2016

Dans cet article, je souhaite casser et corriger certaines fausses idées sur le Big Data, retrouvées un peu partout dans la nature.

Cinq fausses idées sur le Big Data

"Le Big Data est une technologie nouvelle"

Première fausse idée, le Big Data n'est pas une technologie ! Big Data est simplement un terme interpellant sur l'idée du problème de traiter des gros volumes de données.
Ce terme serait apparu vers la fin des années 1990, afin de définir la notion de travail dans des gros volumes de données.

Le Big Data est directement ancré dans l'ère du temps, surtout sur notre capacité à faire évoluer la technologie (je parle ici autant du matériel que du logiciel).
Par exemple, aujourd'hui, il est difficile de travailler avec des volumes de plusieurs centaines de giga-octets en quelques secondes. Mais quid de ce problème dans une dizaine d'années, quand la mémoire vive de nos ordinateurs personnels aura triplé, que le prix du tera-octet pour un disque dur ne vaudra plus rien et que les bibliothèques logicielles seront encore plus performantes pour travailler sur ces données ?
La deuxième fausse idée est donc de se dire que le Big Data est nouveau car il est aujourd'hui devenu un terme qui fait le buzz, grâce à (ou serait-ce à cause de ?) l'explosion des données personnelles sur le web.

Petite parenthèse culturelle, on peut entrapercevoir les problèmatiques liées au traitement de gros volumes de données à partir des années 1950, à travers les œuvres de nombreux auteurs de science-fiction comme George Orwell ("1984"), Maurice G. Dantec ("Les Racines du Mal") ou Isaac Asimov ("Les Robots").

"Le Big Data, c'est prédire l'avenir à partir des données existantes"

Il faut savoir que le Big Data est juste un terme vaste issu de la Science des Données (Data Science en anglais), qui discute du problème à traiter de gros volumes de données. Le simple terme Big Data peut autant référencer le problème de stockage d'un grand volume de données que des méthodes et optimisation pour analyser rapidement un grand volume de fichiers.
Ainsi, une personne qui se présente à vous comme "Bonjour, je m'appelle Roger et je fais du Big Data" est aussi significatif que "Bonjour, je m'appelle Roger et je fais du développement informatique". Vous l'aurez deviné, une présentation comme celle-ci ne nous donne pas assez d'information pour déterminer précisément le domaine d'expertise dudit Roger, mais aussi sur quoi il travaille.

Ainsi, pour revenir à cette fausse idée, le terme Big Data se veut simplement référer à l'idée de faire quelque chose sur un grand volume de données distribuées.

Pour terminer, il ne faut pas oublier que les techniques de Big Data font partie de la Science des Données, qui regroupe notamment les statistiques (et plus généralement les mathématiques), l'ingénierie des données, la visualisation des données, la méthodologie scientifique à employer pour un type de données spécifique, etc...
Prédire l'avenir à partir de l'existant, ce n'est pas de la magie mais de l'apprentissage automatique (machine learning chez nos voisins Anglophones), qui est un sous-domaine de l'intelligence artificielle intimement lié au domaine des mathématiques. Ainsi, on peut tenter de prédire l'avenir à partir d'un grand volume de données existantes, mais il ne faut pas appeler ça du Big Data !

"Je n'ai pas 100 tera-octets de données donc je ne peux pas faire d'analyse de données dessus"

Miser sur la taille en espace disque des données est utile pour se rendre compte de son importance en terme de quantité, mais n'est pas une bonne échelle de comparaison de données.
Ainsi, l'on peut avoir deux fois moins de données qu'un conccurent qui traite ses données de manière distribuée mais passer beaucoup plus de temps que lui dans le cas où les données sont bien plus complexes que ce dernier.

Ainsi, les questions pour savoir si oui ou non il est intéressant de travailler sur de l'analyse de données, même si vous ne pensez pas que vous détenez un grand volume de données à analyser, sont:

  • Ai-je un problème pour lequel je souhaite répondre d'après les données existantes ?
  • Est-il intéressant de traiter mes données existantes pour ce problème ?
  • Ai-je une personne, ou mieux une équipe, intéressée pour travailler avec une bonne hygiène des données ?
  • Les données que je vais recueillir chaque jour seront-elles intéressantes pour être analyser afin de répondre à mon problème ?

Si vous avez répondu positivement à ces quatre questions, alors il serait intéressant pour vous de pousser la réflexion plus loin concernant cette analyse des données.

"Le Big Data est seulement réservé aux grandes entreprises de la 'tech, pas pour moi"

La réponse à cette fausse idée découle directement de ma réponse à la précédente question : si vous avez "l'équipement" nécessaire et la volonté pour traiter vos données, je vous encourage très fortement à pousser la réflexion un peu plus loin.

"Je dois nécessairement utiliser Hadoop pour mon projet Big Data"

Hadoop est une des technologies incontournables dans le Big Data, utilisée notamment par de grands groupes comme Yahoo ou Facebook, mais ce n'est pas la seule technologie existante en matière de traitement de données distribuées, et elle n'est pas obligatoire selon les données que vous voulez traiter.
Cette technologie utilise une technique développée et publiée par Google pour traiter efficacement des données de manière distribuée : le MapReduce. Cette technique manipule et traite un nombre important de données réparties sur un ensemble de machines (appelés noeuds) via :

  • une fonction récursive qui décompose le problème en sous-problèmes pour des sous-machines;
  • une fonction qui traite tous les sous-problèmes modélisés sous la forme de structure "clef : valeur", et qui va regrouper en remontant vers une machine mère l'ensemble des valeurs ayant la même clef.
    Ainsi, la sortie nous donnera un ensemble clef : valeurs, ou chaque clef contiendra au moins une valeur.

Un exemple simple pour illustrer le fonctionnement de Hadoop est de trouver tous les anagrames possibles d'un mot à partir d'une très grande liste de mots.

Généralement, Hadoop est couplé à une autre technologie, Spark, qui est capable de traiter jusqu'à 100 fois plus vite vos données. Cependant, Spark ne détient pas un système de fichiers distribué, comme Hadoop pour HDFS. Ainsi, le duo Hadoop et Spark peut faire des merveilles et distribuer au mieux vos données tout en les traitant très rapidement.

D'après mes expériences dernières, il n'est pas nécessaire d'utiliser Hadoop en tout lieu pour la Big Data. En effet, cela dépend surtout de:

De plus, il faut faire très attention aux technologies comme Hadoop, qui peuvent rebuter par leur grande complexité de déploiement et/ou de configuration.

Il est nécessaire qu'un Data Scientist comprenne et ait des notions dans le problème à distribuer des données ET à travailler sur des donneées distribuées. D'ailleurs, il doit comprendre quand et comment utiliser ces outils distribués, selon le volume de données à traiter et le problème posé.

Chez DernierCri, nous utilisons majoritairement un prototype de la solution au problème, en utilisant des outils efficaces et ayant de nombreuses fois fait leurs preuves dans l'analyse de données ou l'apprentissage automatique. Ces outils sont Pandas, Numpy ou Scikit-Learn avec Python, ou encore de nombreuses librairies R.
Par la suite, selon la rapidité de l'analyse et la consommation mémoire du prototype, nous réfléchissons sur l'utilité de la réimplémentation de la meilleure solution en utilisant une autre technologie, sur cette fois-ci l'ensemble des données à traiter.

Attention, je ne cherchais pas dans cette partie à dénigrer Hadoop, seulement à vous faire comprendre que cette solution n'est pas miraculeuse, et que d'autres outils peuvent être bien plus performants et d'usage pour le problème que vous souhaitez solutionner.

En conclusion...

Le Big Data n'est pas une technologie mais un terme faisant le buzz, simplifiant la vision que vous faites quelque chose avec un grand volume de données distribuées.
Même si de grandes solutions, comme Hadoop, existent pour travailler sur des données distribuées aujourd'hui, il est important de bien comprendre le problème posé et d'avoir une bonne connaissance des données afin de pouvoir évaluer si, oui ou non, il sera nécessaire de travailler sur ces données de manière distribuée.