Apache Presto - Arquitectura
La arquitectura de Presto es casi similar a la arquitectura clásica de DBMS MPP (procesamiento masivo paralelo). El siguiente diagrama ilustra la arquitectura de Presto.
El diagrama anterior consta de diferentes componentes. La siguiente tabla describe cada uno de los componentes en detalle.
S. No | Descripción de Componente |
---|---|
1. | Client El cliente (Presto CLI) envía declaraciones SQL a un coordinador para obtener el resultado. |
2. | Coordinator El coordinador es un demonio maestro. El coordinador analiza inicialmente las consultas SQL y luego analiza y planifica la ejecución de la consulta. El programador realiza la ejecución de la canalización, asigna el trabajo al nodo más cercano y monitorea el progreso. |
3. | Connector Los complementos de almacenamiento se denominan conectores. Hive, HBase, MySQL, Cassandra y muchos más actúan como un conector; de lo contrario, también puede implementar uno personalizado. El conector proporciona metadatos y datos para consultas. El coordinador usa el conector para obtener metadatos para crear un plan de consulta. |
4. | Worker El coordinador asigna tareas a los nodos trabajadores. Los trabajadores obtienen datos reales del conector. Finalmente, el nodo trabajador entrega el resultado al cliente. |
Presto - Flujo de trabajo
Presto es un sistema distribuido que se ejecuta en un grupo de nodos. El motor de consultas distribuidas de Presto está optimizado para el análisis interactivo y es compatible con ANSI SQL estándar, incluidas consultas complejas, agregaciones, uniones y funciones de ventana. La arquitectura de Presto es simple y extensible. El cliente Presto (CLI) envía sentencias SQL a un coordinador de demonios maestro.
El programador se conecta a través de la canalización de ejecución. El programador asigna el trabajo a los nodos que están más cerca de los datos y monitorea el progreso. El coordinador asigna tareas a varios nodos trabajadores y, finalmente, el nodo trabajador devuelve el resultado al cliente. El cliente extrae datos del proceso de salida. La extensibilidad es el diseño clave. Los conectores enchufables como Hive, HBase, MySQL, etc., proporcionan metadatos y datos para consultas. Presto se diseñó con una “abstracción de almacenamiento simple” que facilita la capacidad de realizar consultas SQL en estos diferentes tipos de fuentes de datos.
Modelo de ejecución
Presto admite un motor de ejecución y consulta personalizado con operadores diseñados para admitir la semántica de SQL. Además de la programación mejorada, todo el procesamiento está en la memoria y se canaliza a través de la red entre diferentes etapas. Esto evita una sobrecarga de latencia de E / S innecesaria.