Hadoop, Spark et Kafka ont déjà une influence déterminante dans le monde du big data et voilà qu’arrive un nouveau projet Apache qui semble avoir le potentiel pour faire avancer les choses encore plus loin : Arrow. La fondation Apache Software l’a lancé hier sous la forme d’un projet de haut niveau (top-level) destiné à fournir une couche de données haute performance pour l’analyse en mémoire exploitant le stockage en colonne à travers des systèmes disparates. Basé sur le code du projet associé Apache Drill, Arrow peut apporter une forte amélioration des performances, accélérant par un facteur 100 les traitements analytiques, selon la fondation. De façon générale, il permet les traitements multi-systèmes en éliminant les échanges indirects. Les équipes contribuant au code comprennent des développeurs d’autres projets big data gérés par Apache, tels que Calcite, Cassandra, Drill, Hadoop, HBase, Impala, Kudu, Parquet, Phoenix, Spark et Storm.
« La communauté open source a uni ses forces sur Apache Arrow », souligne Jacques Nadeau, l’un des responsables de Drill et vice-président sur le nouveau projet. « Nous anticipons que la majorité des données dans le monde seront traitées à travers Arrow dans les prochaines années ». Dans de nombreux traitements, entre 70 et 80% des cycles CPU sont mis à contribution pour la sérialisation et la désérialisation des données, processus qui convertit la structure des données en un format qui peut être stocké et reconstruit par la suite à l’identique. Arrow allège cette charge en permettant aux données d’être partagées entre les systèmes et exploitées sans sérialisation, désérialisation ou copies en mémoire, explique la fondation.
Arrow pourra traiter aussi les données JSON
Ted Dunning, vice-président d’Incubator (qui examine les projets désirant entrer dans la fondation) explique qu’une couche de données en colonnes en mémoire au standard de l’industrie permettra aux utilisateurs de combiner différents systèmes, applications et langages de programmation dans un seul traitement sans les habituels échanges qui s’effectuent au-dessus.
Arrow supporte aussi les données complexes avec des schémas dynamiques en plus des données relationnelles classiques. Par exemple, le projet pourra traiter les données JSON qui sont couramment utilisées dans les traitements de l’Internet des objets, dans les applications actuelles et dans les fichiers de connexion. Les mises en œuvre sont aussi possibles avec un nombre de langages de programmation pour une meilleure interopérabilité. Le logiciel Arrow est disponible sous licence v2.0. Il est suivi par une équipe choisie de contributeurs actifs.