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.