Big data

Garder tout, brut, pour fouiller plus tard

Quand les données arrivent par pétaoctets et qu'on ne sait pas encore à quoi elles serviront, on les déverse dans un lac de données. Bienvenue dans le big data.

Le lac et l'entrepôt : deux façons de stocker

Imagine deux endroits où ranger des données. Le premier est un entrepôt (en anglais data warehouse) : un lieu bien organisé, où l'on n'accepte que des marchandises déjà triées, nettoyées et rangées sur des étagères étiquetées. C'est parfait pour sortir rapidement des rapports propres, parce que tout est déjà en ordre.

Le second est un lac (en anglais data lake). Là, tout se déverse : les images, les textes, les fichiers de journalisation (les logs), les relevés de capteurs, les vidéos... dans leur format d'origine, sans tri préalable. On garde tout, brut, au cas où. On filtrera et on nettoiera plus tard, seulement le jour où on en aura besoin.

Critère Entrepôt (data warehouse) Lac (data lake)
Ce qu'on y met Des données déjà nettoyées et structurées (des tables bien rangées). Tout, dans le format d'origine : images, textes, logs, capteurs, vidéos.
Quand on range Avant d'entrer : on trie et on met en forme d'abord. Jamais à l'entrée : on déverse, on triera plus tard si besoin.
À quoi ça sert Sortir des rapports clairs sur des questions déjà connues. Garder de la matière première pour des questions pas encore posées.
L'image Une bibliothèque où chaque livre est classé. Un lac où toutes les rivières se déversent.

À retenir : l'entrepôt range d'abord, le lac garde d'abord. Ce ne sont pas des ennemis : beaucoup d'organisations utilisent les deux ensemble.

Les trois « V » du big data

On parle de big data quand les données dépassent ce qu'une seule machine peut traiter confortablement. On résume souvent le phénomène par trois mots qui commencent tous par « V ».

Devant ce déluge, une seule machine, même très puissante, finit par étouffer : son disque déborde et son processeur n'avance plus assez vite. La solution est de répartir le travail sur des centaines de machines qui coopèrent, ce qu'on appelle un cluster (une grappe d'ordinateurs). Plutôt qu'un géant solitaire, on fait travailler une foule de machines ordinaires en équipe.

Deux outils vedettes du cluster

Hadoop / HDFS s'occupe du stockage réparti. HDFS (le système de fichiers de Hadoop) découpe un fichier géant en morceaux et les distribue sur toutes les machines du cluster, avec des copies de secours. Ainsi, on peut entreposer un fichier bien plus gros que le disque d'une seule machine, et si une machine tombe en panne, rien n'est perdu.

Apache Spark s'occupe du calcul distribué. Au lieu de faire le calcul sur une seule machine, Spark envoie un bout du travail à chaque machine, qui calcule sur sa part des données, puis on rassemble les résultats. C'est cette répartition qui permet de moyenner des milliards de lignes en quelques secondes.

Tu as déjà les bons réflexes (le pont avec le cours)

Bonne nouvelle : tu n'as pas besoin de tout réapprendre. Ce que Spark fait sur 500 machines, c'est exactement ce que numpy et pandas font sur ta machine, à petite échelle : filtrer des lignes, regrouper par catégorie, calculer des moyennes ou des sommes sur des colonnes.

Autrement dit, Spark, c'est « pandas qui tourne sur un cluster ». Si tu sais raisonner « je filtre, je regroupe, je calcule une moyenne par groupe », tu sais déjà penser comme un ingénieur big data. Seule l'échelle change.

# Avec pandas, sur ta machine : moyenne de température par planète moyennes = mesures.groupby("planete")["temperature"].mean() # La meme idee, en plus gros : avec Spark sur 500 machines moyennes = mesures.groupBy("planete").avg("temperature")

Regarde les deux lignes : c'est presque le même mot (groupby / groupBy) et la même intention. La grande différence, invisible ici, c'est que la seconde répartit le travail sur tout un cluster.

La science, championne du big data

Le big data n'est pas qu'une affaire de réseaux sociaux et de publicité. Ce sont souvent les laboratoires scientifiques qui produisent les plus gros flots de données du monde.

Physique des particules
Le LHC du CERN
Le grand collisionneur de hadrons enregistre des pétaoctets par an. Ses détecteurs voient des millions de collisions par seconde et il faut trier en direct ce qui mérite d'être gardé.
Astronomie
Observatoire Vera Rubin (LSST)
Ce télescope photographie le ciel austral entier nuit après nuit et produit des téraoctets par nuit, repérant automatiquement ce qui a bougé ou changé d'éclat.
Biologie
La génomique
Séquencer un seul génome humain représente déjà des gigaoctets. Multiplié par des millions de patients ou d'espèces, cela devient un océan de données à comparer.
Sciences de la Terre
Le climat
Les satellites, les bouées et les stations météo mesurent sans arrêt l'atmosphère et les océans. Les modèles climatiques avalent ces relevés pour simuler l'avenir.

Dans tous ces cas, on ne jette presque rien : on garde brut, dans un lac, et on revient fouiller quand une nouvelle question apparaît. C'est tout l'esprit du big data.

Voir comment le CERN gère ses données