Apache Arrow : un turbo standard pour l’analytique In-Memory
Arrow fournit une représentation standard du In-Memory en colonne pour accélérer les traitements analytiques. Il s’appuie également sur les instructions SIMD des processeurs.
Treize représentants des projets Open Source les plus populaires du monde Hadoop ont décidé de mettre en commun leur travaux sur l’intéropérabilité de leur solution afin d’en accélérer le rendu et l’analyse de données. A la clé, le projet Arrow hébergé par la Fondation Apache. Avec l’intérêt déjà affirmé des représentants des projets comme Cassandra, Calcite, Pandas, Parquet, Phoenix, Hadoop, Spark, Impala, Drill, Kudu ou encore Storm – et donc de sociétés comme MapR, Cloudera ou encore Hortonworks –, le projet Arrow est élevé d’emblée au niveau d’un projet de premier niveau de la Fondation. Sans passer donc pas les processus de l’institution Open Source, qui prévoit un passage par l’incubateur maison.
Et pour cause : le projet Arrow a pour vocation de cibler l’un des principaux problèmes rencontrées par l’ensemble de la sphère des acteurs du Big Data et de l’analytique, à savoir la vitesse de rendu et d’exécution des précieux moteurs précédemment cités.
Une représentation standard du In-Memory en colonne
Pour cela, Arrow doit définir une couche de données commune pour l’analyse de données In-Memory en mode colonne qui, lorsque implémentée, doit proposer des performances de 10 à 100 fois plus rapides dans l’exécution de workloads analytiques (dixit la fondation).
Cette couche de données commune permet ainsi de rendre interopérables les différents formats de données en mémoire des différents moteurs d’exécutions. En proposant une représentation standard In-Memory et en colonne, Spark, Drill, Impala et consorts peuvent accéder aux mêmes données, sans avoir à les transformer. Les opérations de sérialisation, dé-sérialisation et mise en mémoire (donc) sont ainsi évitées, et avec la consommation de ressources CPU associées. Selon la fondation Apache, 70 à 80% des ressources CPU sont gâchées lors de ces opérations de transformation. Avec Arrow, pas de friction d’un moteur à l’autre.
Arrow propose également d’exploiter les spécifications des derniers processeurs x86, SIMD (pour Single instruction on Multiple Data). Et de bénéficier de la puissance du calcul parallèle en exécutant un jeu d’instructions sur plusieurs données de façon simultanée. Un turbo pour l’analytique donc.