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 ».
- Volume : la quantité est énorme. On ne compte plus en mégaoctets mais en téraoctets et en pétaoctets (un pétaoctet, c'est un million de gigaoctets).
- Vélocité : les données arrivent vite, parfois en continu, comme un robinet qui ne se ferme jamais (capteurs, clics, transactions).
- Variété : les formats sont mélangés : du texte, des chiffres, des images, du son, des relevés... tout en même temps.
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.
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.
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.
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