Le calcul scientifique passait des fichiers locaux aux stockages objet, mais les tableaux géants dans des formats monolithiques étaient peu pratiques à découper à distance. Lire une petite région pouvait encore signifier faire transiter trop de données sur le réseau.

L'astuce de Zarr consistait à conserver le modèle mental d'un tableau typé à N dimensions tout en changeant l'unité de stockage. Les données résident dans des chunks compressés, chacun doté d'une clé déterministe, et les métadonnées décrivent la forme, le type, la grille de chunks et les codecs.

Cela rendait le format adapté au calcul distribué : les workers pouvaient lire les chunks en parallèle, et différentes implémentations pouvaient cibler Python, Rust, JavaScript, Java, C++ et d'autres langages. L'OGC a ensuite approuvé Zarr V2.0 comme norme communautaire pour le stockage de tableaux multidimensionnels.

Rendre chaque chunk adressable

Les clés de chunks se projettent naturellement sur les stockages objet cloud et les stockages adressables par octet.

Les métadonnées JSON rendaient le format inspectable et facile à analyser pour des implémentations indépendantes.

La spécification v3 a formalisé des points d'extension afin que les codecs et les grilles de chunks puissent évoluer sans réécritures centralisées.

Il résolvait un problème réel dans les flux de travail de climatologie, de microscopie, de télédétection et de simulation.

Pour les données cloud, le format gagnant est souvent celui qui rend les lectures partielles peu coûteuses sans obliger les scientifiques à abandonner leur modèle de tableaux.

Zarr est devenu un substrat courant pour les données scientifiques prêtes à l'analyse. Le projet recense des implémentations dans 10 langages et huit jeux de données publics totalisant environ 3,1 PB ; la page de norme de l'OGC décrit Zarr comme une spécification open source pour les données et métadonnées de tableaux à N dimensions.

VÉRIFIEZ LES SOURCES

Les sources

  1. Zarr core specification Zarr specs documentation · zarr-specs.readthedocs.io
  2. Zarr Storage Specification Open Geospatial Consortium · ogc.org
  3. Zarr Implementations Zarr · zarr.dev
  4. Zarr Datasets Zarr · zarr.dev