Apache Presto - Arquitetura

A arquitetura do Presto é quase semelhante à arquitetura DBMS MPP (processamento massivamente paralelo) clássica. O diagrama a seguir ilustra a arquitetura do Presto.

O diagrama acima consiste em diferentes componentes. A tabela a seguir descreve cada um dos componentes em detalhes.

S.Não Descrição do componente
1

Client

O cliente (Presto CLI) envia instruções SQL a um coordenador para obter o resultado.

2

Coordinator

O coordenador é um daemon mestre. O coordenador inicialmente analisa as consultas SQL e, em seguida, analisa e planeja a execução da consulta. O Scheduler executa a execução do pipeline, atribui trabalho ao nó mais próximo e monitora o progresso.

3 -

Connector

Os plug-ins de armazenamento são chamados de conectores. Hive, HBase, MySQL, Cassandra e muitos outros atuam como um conector; caso contrário, você também pode implementar um personalizado. O conector fornece metadados e dados para consultas. O coordenador usa o conector para obter metadados para construir um plano de consulta.

4

Worker

O coordenador atribui tarefas aos nós de trabalho. Os trabalhadores obtêm dados reais do conector. Finalmente, o nó do trabalhador entrega o resultado ao cliente.

Presto - Fluxo de Trabalho

Presto é um sistema distribuído que funciona em um cluster de nós. O mecanismo de consulta distribuído do Presto é otimizado para análise interativa e oferece suporte a ANSI SQL padrão, incluindo consultas complexas, agregações, junções e funções de janela. A arquitetura do Presto é simples e extensível. O cliente Presto (CLI) envia instruções SQL para um coordenador mestre daemon.

O planejador se conecta por meio do pipeline de execução. O planejador atribui trabalho aos nós que estão mais próximos dos dados e monitora o progresso. O coordenador atribui tarefas a vários nós de trabalho e, finalmente, o nó de trabalho entrega o resultado de volta ao cliente. O cliente extrai dados do processo de saída. A extensibilidade é o design chave. Conectores plugáveis ​​como Hive, HBase, MySQL, etc., fornecem metadados e dados para consultas. O Presto foi projetado com uma “abstração de armazenamento simples” que facilita o fornecimento de recursos de consulta SQL para esses diferentes tipos de fontes de dados.

Modelo de Execução

Presto oferece suporte a consulta personalizada e mecanismo de execução com operadores projetados para oferecer suporte à semântica SQL. Além do agendamento aprimorado, todo o processamento fica na memória e é canalizado pela rede entre os diferentes estágios. Isso evita sobrecarga de latência de E / S desnecessária.