Nomic supporte maintenant le format Apache Arrow.
C'est véritablement entrain de devenir le standard de l'industrie data!
Nomic est une lib python qui permet d'intéragir avec de très gros jeux de données dans son navigateur.
Arquero est une librairie Javascript qui permet de manipuler des données tabulaires en RAM.
Elle supporte l'algèbre relationnelle comme pour une base SQL.
C'est du même genre que Pandas en Python mais du coup pour faire de la datascience directement en Javascript!
Derrière les performances de la lib on retrouve encore une fois le format binaire Arrow
beers
.orderby(aq.desc('ibu'))
.select('name', 'style', 'ibu')
.filter(d => op.includes(op.lower(d.name), 'hop'))
.view()
Un benchmark des librairies et bases de données (en RAM) pour traiter des données tabulaires dans le genre de Pandas.
Polars remporte haut la main le benchmark, c'est une lib écrite en Rust et qui utilise aussi le standard Arrow
Apache Arrow est un projet qui développe des SDK dans la plupart des langages afin de manipuler efficacement des données tabulaires (vecteurs, matrices) en RAM.
Ils ont notamment des optimisations des calculs spécialement conçues pour les CPU et les GPU.
Par exemple, les données sont regroupées pour éviter les "jump" CPU et tenter de les faire tenir dans les différents caches.
Pour les GPU, Arrow utilise CUDA afin de paralléliser les calculs.
C'est utilisé dans la nouvelle version 2.0 de Pandas, la lib de référence en Python pour manipuler les données.
Les performances peuvent être jusqu'à 25x supérieurs (!)
(Merci Ocav pour le partage)