beckmarkwith - Fotolia
Indexima met un tigre dans votre Hadoop
La jeune société a développé un moteur SQL au-dessus d’Hadoop qui accélère les requêtes en montant en mémoire les seuls indexes et pré-agrégats.
Donner un turbo à Hadoop. C’est toute l’ambition de la jeune société Indexima, née officiellement il y a un an et dont les racines ont prise chez les équipes de traitements de données de Mappy. Son fondateur, Florent Voignier, alors en mission chez ce spécialiste de la cartographie en ligne, travaillait justement à accélérer les temps de réponse devenus beaucoup trop longs des requêtes passées sur le vaste cluster Hadoop de la société.
Aujourd’hui, Indexima vogue de ses propres ailes, reste toujours financé en fonds propres, mais a désormais séduit Natixis, une grande banque de financement. La société travaille également sur six PoC qui pourraient bien éclore en production dans des grandes entreprises françaises.
Indexima vise à résoudre un problème simple : celui des temps de réponse trop long des requêtes effectués sur un cluster Hadoop très dense. Car pour Florent Voignier, « si la collecte des données ainsi que le stockage ont constitué la première vague qui a conduit le Big Data, il s’agit désormais de la rendre accessible afin de pouvoir l’analyser ». Et aujourd’hui, ce n’est pas si simple.
Un Spark peu performant
Pour lui, « les solutions actuelles ne sont pas satisfaisantes ». Et Spark en premier lieu. «Spark est surtout utilisé pour le Machine Learning ou pour réaliser des scripts exécutés de façon distribuée. Pour la BI et l’analytique, son moteur SQL n’est pas des plus performant. D’autres technologies sont aujourd’hui plus rapides sur Hadoop. »
Si certes la mise en mémoire (In-Memory) de Spark SQL ou d’autres moteurs Hadoop, doit compenser la quantité de données à traiter, cette même quantité de données doit tout de même être scannée à chaque fois. « Chaque ligne doit être traitée et l’opération répétée autant de fois qu’il y a de lignes », explique Florent Voignier. Ce qui allonge inévitablement les temps de réponse.
Pour lui, l’argument de la scalabilité horizontale (une problématique hardware) n’est pas non plus valable. « Cette approche (qui consiste à ajouter des serveurs pour gagner en puissance de traitement, NDLR) est très contraignante en matière de gestion de serveurs – surtout si le volume de données n’est pas important – et toutes les entreprises n’ont pas envie d’administrer leur propre datacenter.
Monter des indexes en mémoire
C’est là qu’Indexima entre en jeu. Il s’agit en fait d’une application YARN qui vient proposer un moteur SQL qui se distribue sur les nœuds (choisis ou pas – le modèle repose sur une licence par nœud où est déployé Indexima) d’un cluster Hadoop. Ce moteur permet donc d’accéder directement aux données de HDFS sans transformation, et de les interroger avec SQL ( il utilise le connecteur Hive pour cela) depuis les outils de visualisation et d’analyse de données que sont Tableau, Qlik ou encore MicroStrategy. Mais avec des temps de réponses record.
Pour cela, le moteur s’appuie sur des indexes et des pré-agrégations, qui seuls, sont montés en mémoire. Ainsi, à chaque requête, seule une faible quantité de données est parcourue. « Tout l’enjeu est de savoir d’avance quelle va être la bonne donnée », ajoute Florent Voignier. Avec ce dispositif, d’énormes volumes de données peuvent être traités directement à partir d’Hadoop.
« Dans le cas de données qui n’ont pas d’indexes, Indexima va se servir des indexes qu’il possède déjà pour accélérer la réponse. Cela n’ira pas aussi vite qu’avec un index multidimensionnel. Mais il analysera automatiquement les requêtes passées pour proposer de nouveaux indexes et de nouvelles pré-agrégations. » Les requêtes se trouveront accélérées la fois suivante.
Ces index multidimensionnels sont également mis à jour à la volée pour pouvoir prendre en compte la dimension temps réel – même si Florent Voignier convient que le temps réel sur le Big Data n’est pas une préoccupation majeure en France.
Si Hadoop est aujourd’hui le plus important cas d’usage d’Indexima, Florent Voignier explique que cela peut également fonctionner sur d’autres environnements, comme Oracle par exemple. Des travaux sur des bases NoSQL(Cassandra est évoquée) sont également en cours.