Presto Hadoop, c'est quoi ?

Presto est un moteur de requête SQL distribué et open source qui peut traiter une large gamme de sources de données, du système de fichier distribué Hadoop (HDFS) aux bases de données relationnelles traditionnelles et sources de données NoSQL, comme Cassandra. Presto est particulièrement bien équipé pour l'exécution de plusieurs requêtes interactives en même temps sur la même source de données.

Presto a été développé chez Facebook durant l'automne 2012 pour remplacer Hive, et Facebook utilise toujours le logiciel pour explorer son cluster Hadoop de 300 pétaoctets composé des données générées par plus d'un milliard d'utilisateurs. Les autres grandes entreprises technologiques comprennent Netflix, Dropbox et Airbnb. Le projet dispose donc de l'appui d'une communauté de développement robuste.

Teradata dispose d'une équipe de plus de 20 développeurs qui créent du code open source pour Presto. L'entreprise s'est engagée à augmenter l'adoption de Presto au sein de son organisation au cours de plusieurs années. Cependant, la documentation est limitée et destinée aux développeurs, ce qui signifie que vous aurez besoin de ressources d'ingénierie pour installer et opérer votre système Presto.

Pourquoi choisir Presto ?

Requêtes interactives

Les développeurs qui ont créé Presto se sont concentrés sur l'offre de requêtes interactives aux utilisateurs, ce qui signifie que les requêtes devaient être exécutées plus rapidement. Presto est donc un choix idéal comme infrastructure pour les outils de business intelligence comme Looker, car le moteur permet d'exécuter les requêtes très rapidement.

Intégrations

Presto possède de nombreuses intégrations avec des sources de données de tiers, et le système peut être relié à Kafka, Redis, H3, S3, Hadoop, NoSQL, MySQL et Postgres, entre autres.

SQL standard

Presto utilise la norme ANSI SQL pour les requêtes dans plusieurs sources de données, tandis que d'autres moteurs SQL, comme Hive, n'adoptent pas la norme ANSI (Hive utilise HiveQL, un langage de requête similaire à SQL).

Dans quel cadre Presto est-il idéal ?

Requêtes interactives ad hoc avec de grands jeux de données

Avec les jeux de données dénormalisés qui nécessitent peu de joints, Presto exécute les requêtes interactives rapidement, ce qui signifie que le temps d'exécution des requêtes se compte en secondes et minutes plutôt qu'en minutes et heures. Presto doit principalement cette vitesse à son architecture unique et à l'exécution entièrement en mémoire (tandis que les autres moteurs SQL utilisent MapReduce et rédigent des étapes intermédiaires sur le disque).

Organisations avec des sources de données disparates

Pour les entreprises qui n'ont pas l'option de consolider toutes leurs données en un seul entrepôt centralisé, les capacités de fédération des données de Presto peuvent créer une couche de requête unifiée qui vous permet de combiner les données de vos différentes sources.

Organisation avec modèle en étoile

En raison de l'architecture en mémoire de Presto, les requêtes extrêmement vastes portant sur des tables de faits ont tendance à surcharger le moteur de calcul. Cela fait de Presto une solution idéale pour des joints peu coûteux entre une table de faits et une table de dimension au sein d'un modèle en étoile.

Considérations de prix

Presto est un logiciel open source, il est donc disponible gratuitement. Cependant, il est important de noter que le coût d'exploitation de Presto est élevé car il faut des ressources d'ingénierie pour configurer et exploiter le logiciel, ainsi que pour gérer le matériel physique en cas d'installation sur site. Le coût de gestion et d'installation des serveurs peut varier.

Architecture de Presto

L'architecture de Presto ressemble plus à l'architecture traditionnelle des bases de données analytiques MPP qu'aux autres moteurs SQL, comme Hive, étant donné que tous les calculs de Presto sont effectués en mémoire et que le système n'utilise pas MapReduce pour le calcul des données. Cela signifie qu'au lieu de rédiger des opérations intermédiaires sur le disque, comme MapReduce le fait, Presto exécute les étapes de calcul entièrement en mémoire et pousse les résultats intermédiaires sur le réseau. Cette architecture accélère considérablement les requêtes, tout en limitant le débit de requête.

Exécution d'une requête dans Presto

Lorsqu'une requête SQL est émise dans Presto, elle est envoyée au Coordinateur. Ce dernier est responsable pour la répartition de la requête en étapes logiques et pour la formation d'un plan d'exécution optimal de la requête. Après la formation du plan d'exécution, le coordinateur distribue les instructions aux nœuds de travail les plus proches des données physiques, qui transfèrent ensuite les données depuis le stockage physique jusqu'à la mémoire, d'où elle est transmise au réseau et renvoyée au client.

Types de données

Presto est un moteur de requête SQL distribué conçu pour traiter des grands jeux de données d'une ou plusieurs sources de données hétérogènes. Presto ne stocke aucune donnée.

Étendue de la ligne (quantité)

Presto est un moteur SQL opérant au niveau du pétaoctet, en fonction des entrepôts de données auxquels il est relié. Par exemple, si vous utilisez un cluster Hadoop, la quantité de données que vous pourrez stocker sera beaucoup plus importante que si vous êtes relié à une base de données postgres. Par contre, comme Presto utilise la norme ANSI SQL, vous pouvez exploiter de nombreuses sources de données à la fois, ce qui permet à Presto de traiter un volume de données très imposant.

Installation et usage de Presto

Installation de Presto

Presto peut être télécharger gratuitement depuis Github ou auprès de Teradata.

Après le téléchargement, Presto offre un guide d'installation du logiciel sur votre serveur.

Processus pour nouvelles données

Comme Presto est un moteur SQL et non une base de données, il ne stocke aucune donnée, ce qui signifie que le processus d'ajout de nouvelles données consiste à indiquer l'une de vos sources de données existantes à Presto. Il vous faut donc connecter Presto à cette source de données existante ou rediriger les données vers une source de données que Presto peut traiter.

Prenez goût à l'analytique

Business intelligence, analyse de big data ou vue client à 360° :
quels que soient vos besoins, Looker peut vous aider. Parlez à nos experts en données.

Demander une démo