De par sa nature même, le Big Data est trop volumineux pour tenir sur une seule machine. Les ensembles de données doivent être partitionnés sur plusieurs machines. Chaque partition est affectée à une machine principale, avec des affectations de sauvegarde facultatives. Par conséquent, chaque machine possède plusieurs partitions. La plupart des frameworks Big Data utilisent une stratégie aléatoire pour attribuer des partitions aux machines. Si chaque travail de calcul utilise une partition, cette stratégie se traduit par une bonne répartition de la charge de calcul sur un cluster. Cependant, si un travail a besoin de plusieurs partitions, il y a de fortes chances qu'il ait besoin de récupérer des partitions à partir d'autres machines. Le transfert de données est toujours une pénalité de performance.Apache Arrow propose un format de données en mémoire multilangage, multiplateforme et en colonnes pour les données. Il élimine le besoin de sérialisation car les données sont représentées par les mêmes octets sur chaque plateforme et langage de programmation. Ce format commun permet le transfert de données sans copie dans les systèmes Big Data, afin de minimiser les performances du transfert de données.
Apache Arrow est donc une plateforme de développement pour l'analyse in-memory. Une base de données dite « en mémoire » (in-memory), ou IMDB (In Memory DataBase), ou encore MMDB (Main Memory DB), désigne une base de données dont les informations sont stockées en mémoire centrale afin d'accélérer les temps de réponse. Une IMDB constitue un type de base de données analytique, un système qui stocke des données historiques portant sur des mesures destinées à des applications BI/BA (Business Intelligence/Business Analytics), généralement dans le cadre d'un entrepôt ou d'un magasin de données.
Ces systèmes permettent aux utilisateurs d'exécuter des requêtes et de générer des rapports sur les informations renfermées. Celles-ci sont régulièrement mises à jour pour intégrer les données transactionnelles récentes issues des systèmes opérationnels d'une entreprise. Outre le fait qu'elle permet des temps de réponse extrêmement courts, l'analytique en mémoire vive réduit, voire élimine, le recours à l'indexation des données et au stockage de données préagrégées dans des tables d'agrégats ou des cubes OLAP. Cette capacité diminue les coûts informatiques et accélère la mise en œuvre d'applications BI/BA.
Apache Arrow contient un ensemble de technologies qui permettent aux systèmes Big Data de traiter et de déplacer rapidement les données. Il spécifie un format de mémoire en colonnes standardisé indépendant du langage pour les données plates et hiérarchiques, organisé pour des opérations analytiques efficaces sur du matériel moderne.
Apache Arrow propose un format de stockage commun sans frais généraux pour de nombreux systèmes Big Data et voudrait devenir un nouveau standard pour le traitement des données en mémoire orienté colonnes. Le projet a été soutenu dès le départ par de nombreux projets Big Data tels que Cassandra, Drill, HBase, Spark et Storm répertoriés sur Apache (notons que des projets en dehors d'Apache tels que Pandas ont également soutenu son développement). Trois mois se sont écoulés depuis la dernière version et les développeurs d'Arrow ont résolu plus de 800 problèmes.
C'est dans un billet de blog que l'équipe a annoncé la disponibilité de la version 1.0.0 : « L'équipe Apache Arrow est heureuse d'annoncer la version 1.0.0. Elle couvre plus de 3 mois de travail de développement et comprend 810 problèmes résolus par 100 contributeurs distincts. Malgré le numéro de version "1.0.0", il s'agit de la 18ème version majeure d'Apache Arrow et elle vient marquer une transition vers la stabilité binaire du format de colonne (qui était déjà informellement rétrocompatible depuis décembre 2017) et une transition vers le versionnage sémantique pour les bibliothèques de logiciels Arrow. »
La version 1.0.0 indique que le format de colonne Arrow est déclaré stable, avec des garanties de compatibilité ascendante et descendante.
Le format de colonne Arrow a reçu plusieurs modifications et ajouts récents, menant à la version 1.0.0 de ce format :
- La version des métadonnées est passée à une nouvelle version V5, indiquant un changement incompatible dans la disposition de la mémoire tampon des types Union. Tous les autres types conservent la même disposition que dans la V4. La version 5 inclut également des ajouts de format pour faciliter la compatibilité ascendante (détection des modifications non prises en charge envoyées par les futures versions de la bibliothèque). Les bibliothèques restent rétrocompatibles avec les données générées par toutes les bibliothèques depuis la version 0.8.0 (décembre 2017) et les bibliothèques Java et C++ sont capables de générer des messages compatibles V4 (pour envoyer des données à des applications utilisant 0.8.0 à 0.17.1).
- Les index de dictionnaire sont désormais autorisés à...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.