Avec 300 milliards de signets épinglant des images ou des produits, le réseau social grand public Pinterest se pose en source de découverte d’idées et d’inspiration pour 450 millions d’utilisateurs mensuels dont il cartographie les centres d’intérêt. Les entreprises l’utilisent à des fins marketing pour générer de l’intérêt autour de leurs produits et augmenter leurs ventes. Dans cet univers qui brasse une foisonnante base d’informations, les outils de requêtes et d’analyse sont particulièrement importants. L’un d’eux, Querybook, vient d’être mis en open source par le réseau social lui-même. Il s’agit d’une solution d’accès big data utilisée en mode collaboratif par ses équipes d’ingénierie.

L’outil est accessible sur GitHub où il est présenté comme un IDE permettant de découvrir, créer et partager des requêtes, des tables et des analyse de données. Il se présente sous la forme d’une interface de requête sur les big data combinant des tables de métadonnées co-localisées et une interface de notebook. « Le point de départ commun de toute analyse sur Pinterest est une requête ad hoc qui s’exécute sur un cluster SparkSQL, Hive, Presto ou tout moteur compatible Sqlalchemy », explique dans un billet sur Medium l’équipe d’ingénierie chargé de la plateforme analytique de Pinterest. « Nous avons bâti Querybook pour fournir une interface utilisateur simple et responsive pour réaliser de telles analyses ». Les data scientists, développeurs et analystes métiers pourront l’utiliser pour découvrir les bonnes données, composer leurs requêtes et partager leurs découvertes.

7 000 requêtes quotidiennes en moyenne

Le développement de l’outil a démarré en 2017 comme un projet interne. Jusque-là, la solution externe utilisée pour ces tâches ne satisfaisait pas l’équipe IT de Pinterest qui se tournait vers divers autres outils comme Evernote ou le notebook Jupyter, ce dernier nécessitant la connaissance de Python/R et ne permettant pas l’intégration de tables de métadonnées. « Notre équipe décida que l’interface de Querybook serait un document où les utilisateurs pourraient composer leurs requêtes et écrire des analyses à un seul endroit avec la puissance de métadonnées co-localisées et la simplicité d’une application de prise de notes », relate les ingénieurs IT de Pinterest. Livré en interne en 2018, l’outil traite en moyenne 7 000 requêtes quotidiennes générés par 500 utilisateurs. 

L’outil s’ouvre sur son interface DataDoc composée de cellules de trois types - texte, requête ou graphique - permettant respectivement de noter ses idées dans un format enrichi, de composer et d’exécuter ses requêtes et, enfin, de créer des visualisations à partir des résultats obtenus. DataDoc permet à des utilisateurs de collaborer autour du document, à la manière de Google Docs.

Des visualisations mises à jour en temps réel

Plusieurs modes de visualisations sont disponibles : représentations temporelles, graphiques sectoriels, nuages de points, etc. On peut facilement transformer un DataDoc en tableau de bord dont les visualisations seront reliées aux résultats des requêtes et dont les mises à jour pourront être programmées de façon régulière. L’équipe IT suggère l’utilisation du langage de création de modèles Jinja, inspiré de Django pour créer rapidement un DataDoc mis à jour en temps réel. Tout en prévenant que cela ne remplace pas des outils comme Airflow et Superset. « Souvent les ingénieurs de Pinterest utilisent Querybook comme une première étape pour composer des requêtes avant de créer des workflows et des tableaux de bord à une échelle de production », est-il précisé.

Enfin, Querybook permet aussi des automatisations. Chaque requête est analysée pour en extraire les métadonnées (commandes et références de tables) pour mettre à jour le schéma de données et le classement des résultats, et établir une table des requêtes les plus fréquentes. Dans leur billet, les ingénieurs IT de Pinterest livrent un pas à pas de l’utilisation de Querybook et décrivent son architecture.