BI : Criteo fait de Vertica le compagnon de Hadoop
Spécialiste du placement de bannières publicitaires en temps réel, Criteo possède l'un des plus gros, si ce n'est le plus gros, cluster Hadoop privé d'Europe. En plus d'une infrastructure de 1 200 serveurs située à Amsterdam, la société a investi en 2015 dans deux salles du nouveau datacenter PA4 d'Equinix en région parisienne (à Pantin). Au total, environ 900 m2 qui, à terme, pourront recevoir plus de 5 000 serveurs. Un équipement de taille dédié au framework Big Data.
Mais, comme nous l'expliquions en juin dernier, le cluster Hadoop (39 Po de données déjà à Amsterdam) sert avant tout à ingurgiter de grands volumes de données. Pour des usages spécifiques, ce datalake est donc suppléé par des technologies complémentaires, comme Vertica de HPE. « Hadoop résout beaucoup de problèmes, mais c'est avant tout un outil d'ETL adapté aux modes batch. Pour des requêtes interactives, nous avions besoin d'autres technologies », explique François Jehl, arrivé chez Criteo en 2013 et aujourd'hui à la tête de l'équipe en charge de la plate-forme analytique (en photo ci-dessus). « En 2013, nos analystes écrivaient des requêtes SQL directement sur SQL Server (la base de données au coeur de l'infrastructure de Criteo, NDLR). Ces requêtes duraient des heures et cassaient fréquemment la production. J'ai été embauché précisément pour changer ce mode de fonctionnement. »
Premier cluster Vertica chez Criteo
C'est ainsi que la société se tourne à l'automne 2013 vers Vertica, retenu pour servir de socle aux requêtes ad hoc des analystes. Et François Jehl d'expliquer notamment ce choix par la volonté du spécialiste de la publicité online de proscrire toute appliance propriétaire. « Sans oublier le fait que Vertica était la technologie la plus performante », assure le spécialiste.
Très rapidement, les outils de dataviz de Tableau Software entrent également en jeu. « Car, les 200 analystes que comptent Criteo n'ont pas tous le même niveau, ni les mêmes usages. Certains ne jurent que par des requêtes SQL ad hoc, d'autres préfèrent un outil de visualisation de la donnée », précise François Jehl. Pour cet usage, le spécialiste de la publicité online a bâti un jeu de données de 400 tables Hadoop poussées dans Vertica, dont l'infrastructure - 50 serveurs - va bientôt être portée de 100 à 150 To. « 95 % des requêtes tournent en moins de 30 secondes », dit François Jehl.
Lire aussi : Comment Criteo gère la traçabilité de ses données
Les fausses promesses de Tableau et Qlik
C'est sur la base de cette première expérience que Criteo s'est lancé en 2015 dans un nouveau projet basé sur Vertica, société racheté en 2011 par HP. Objectif : réécrire une application centrale pour les commerciaux de la société, les revenus par client. Une application vieillissante écrite en C# dans SQL Server et exploitant de nombreux niveaux de cache. L'infrastructure Vertica mise en place pour supporter la nouvelle application baptisée Opera comprend 12 serveurs HPE (dont 1 de secours), dotés de 18 To de stockage SSD. Chaque jour, le jeu de données s'enrichit d'un milliard de lignes, soit environ 20 Go.
Surtout, pour concevoir son nouvel applicatif, Criteo a développé son propre framework (Vizatra) afin d'optimiser les requêtes SQL. « Vizatra vise à transformer les données du Big Data en tableaux de bord interactif, résume Justin Coffey, le chef de l'équipe R&D analytique et données de Criteo (soit une quinzaine de personnes). Des éditeurs comme Tableau ou Qlik promettent d'apporter beaucoup d'interactivité au-dessus de bases de données de plusieurs To. C'est tout simplement faux car les temps de réponse qu'ils proposent sont trop longs ». D'où la naissance de Vizatra dont la vocation est de « produire la requête optimale, via notre connaissance des jointures ».
Selon Justin Coffey, sur une requête de test sur un serveur de pré-production, l'équipe de Criteo est ainsi parvenue à diviser par 7 le temps de réponse par rapport à Tableau. « Ce qui nous permet d'écrire un tableau de bord exploratoire à même de répondre à un grand nombre de questions », résume Justin Coffey. Avec, selon lui, des requêtes aboutissant en moins d'une seconde dans la plupart des cas. Développé en Scala, Opera, première application bâtie sur Vizatra, est aujourd'hui en production pour une partie des utilisateurs. A noter que cette application va profiter de l'ouverture du nouveau datacenter de Criteo, à Pantin, pour bénéficier d'un niveau plus élevé de résilience grâce à un hébergement dans deux centres de données.
A lire aussi :
Comment Criteo transforme Hadoop en moteur de sa rentabilité
Criteo dédie son second datacenter à Paris à Hadoop
Big Data : Blablacar copilote sa BI avec HP, Tableau et Dataiku
Sur le même thème
Voir tous les articles Data & IA