Apache Presto - Architecture

L'architecture de Presto est presque similaire à l'architecture SGBD MPP (traitement massivement parallèle) classique. Le diagramme suivant illustre l'architecture de Presto.

Le diagramme ci-dessus se compose de différents composants. Le tableau suivant décrit chacun des composants en détail.

S.Non Composant et description
1.

Client

Le client (Presto CLI) soumet des instructions SQL à un coordinateur pour obtenir le résultat.

2.

Coordinator

Le coordinateur est un démon maître. Le coordinateur analyse d'abord les requêtes SQL, puis analyse et planifie l'exécution de la requête. Scheduler exécute le pipeline, attribue le travail au nœud le plus proche et surveille la progression.

3.

Connector

Les plugins de stockage sont appelés connecteurs. Hive, HBase, MySQL, Cassandra et bien d'autres font office de connecteur; sinon, vous pouvez également en implémenter un personnalisé. Le connecteur fournit des métadonnées et des données pour les requêtes. Le coordinateur utilise le connecteur pour obtenir des métadonnées afin de créer un plan de requête.

4.

Worker

Le coordinateur affecte la tâche aux nœuds de calcul. Les travailleurs obtiennent les données réelles du connecteur. Enfin, le nœud worker fournit le résultat au client.

Presto - Flux de travail

Presto est un système distribué qui s'exécute sur un cluster de nœuds. Le moteur de requête distribué de Presto est optimisé pour l'analyse interactive et prend en charge le SQL ANSI standard, y compris les requêtes complexes, les agrégations, les jointures et les fonctions de fenêtre. L'architecture Presto est simple et extensible. Le client Presto (CLI) soumet des instructions SQL à un coordinateur de démon maître.

Le planificateur se connecte via le pipeline d'exécution. Le planificateur affecte le travail aux nœuds les plus proches des données et surveille la progression. Le coordinateur attribue la tâche à plusieurs nœuds de travail et enfin le nœud de travail renvoie le résultat au client. Le client extrait les données du processus de sortie. L'extensibilité est la conception clé. Les connecteurs enfichables tels que Hive, HBase, MySQL, etc., fournissent des métadonnées et des données pour les requêtes. Presto a été conçu avec une «abstraction de stockage simple» qui facilite la fourniture de capacités de requête SQL sur ces différents types de sources de données.

Modèle d'exécution

Presto prend en charge le moteur de requête et d'exécution personnalisé avec des opérateurs conçus pour prendre en charge la sémantique SQL. En plus d'une planification améliorée, tous les traitements sont en mémoire et acheminés sur le réseau entre les différentes étapes. Cela évite une surcharge de latence d'E / S inutile.