Apache Presto - Architettura

L'architettura di Presto è quasi simile alla classica architettura DBMS MPP (massively parallel processing). Il diagramma seguente illustra l'architettura di Presto.

Il diagramma sopra è costituito da diversi componenti. La tabella seguente descrive in dettaglio ciascuno dei componenti.

S.No Componente e descrizione
1.

Client

Il client (Presto CLI) invia le istruzioni SQL a un coordinatore per ottenere il risultato.

2.

Coordinator

Il coordinatore è un demone principale. Il coordinatore inizialmente analizza le query SQL, quindi analizza e pianifica l'esecuzione della query. Lo scheduler esegue l'esecuzione della pipeline, assegna il lavoro al nodo più vicino e monitora lo stato di avanzamento.

3.

Connector

I plug-in di archiviazione sono chiamati connettori. Hive, HBase, MySQL, Cassandra e molti altri fungono da connettore; altrimenti puoi anche implementarne uno personalizzato. Il connettore fornisce metadati e dati per le query. Il coordinatore utilizza il connettore per ottenere i metadati per la creazione di un piano di query.

4.

Worker

Il coordinatore assegna l'attività ai nodi di lavoro. I lavoratori ottengono i dati effettivi dal connettore. Infine, il nodo di lavoro fornisce il risultato al client.

Presto - Flusso di lavoro

Presto è un sistema distribuito che viene eseguito su un cluster di nodi. Il motore di query distribuito di Presto è ottimizzato per l'analisi interattiva e supporta ANSI SQL standard, comprese query complesse, aggregazioni, join e funzioni di finestra. L'architettura di Presto è semplice ed estensibile. Il client Presto (CLI) invia le istruzioni SQL a un coordinatore del daemon principale.

Lo scheduler si connette tramite la pipeline di esecuzione. Lo scheduler assegna il lavoro ai nodi più vicini ai dati e monitora lo stato di avanzamento. Il coordinatore assegna l'attività a più nodi di lavoro e infine il nodo di lavoro restituisce il risultato al client. Il client estrae i dati dal processo di output. L'estensibilità è il design chiave. Connettori collegabili come Hive, HBase, MySQL, ecc., Forniscono metadati e dati per le query. Presto è stato progettato con una "semplice astrazione di archiviazione" che semplifica la fornitura di funzionalità di query SQL su questi diversi tipi di origini dati.

Modello di esecuzione

Presto supporta query personalizzate e motore di esecuzione con operatori progettati per supportare la semantica SQL. Oltre a una migliore pianificazione, tutta l'elaborazione è in memoria e pipeline attraverso la rete tra le diverse fasi. Questo evita inutili sovraccarichi di latenza di I / O.