Aprende qué es PrestoDB: Motor SQL Distribuido

in bigdata •  3 years ago  (edited)

En esta entrada aprenderás qué es PrestoDB y cómo empezar a trabajar con este motor SQL para tu data lake.


¿Qué es PrestoDB?

Presto es un motor de consultas SQL open source distribuido diseñado para realizar consultas analíticas interactivas para big data. La característica más importante de PrestoDB es la capacidad de consultar los datos donde están almacenados y de diversas fuentes federando las consultas. Aporta una alta escalabilidad y buen rendimiento, así como una gran cantidad de conectores a fuentes de datos que optimizan las consultas paralelizando y escalando el procesamiento.

PrestoDB fue desarrollada por Facebook en el año 2012 para evitar que las consultas sobre Apache Hive realizaran tantas escrituras en disco. Presto consigue reducir las latencias respecto a Apache Hive con su arquitectura en memoria para realizar consultas interactivas. Tras el fork del proyecto de Presto original, surgieron dos proyectos principales: PrestoDB y PrestoSQL, que se pasó a llamar Trino. Presto está escrito en Java y usa ANSI SQL como lenguaje de consultas, con soporte a los tipos de datos definidos (integer, string, double, etc).

Soporta fuentes de datos no relacionales como HDFSS3CassandraMongoDB o HBase y fuentes de datos relacionales como MySQL, PostgreSQL, Redshift, Microsoft SQL Server y Teradata. También puede trabajar con formatos de fichero CSV, RCFile, JSON, SequenceFile, ORC, Avro y Parquet.

Los casos de uso más comunes por tanto son los que incluyen consultas interactivas y pipelines de ETL.

Arquitectura de PrestoDB

La arquitectura de presto es un motor MPP (Massively parallel processing). Puede escalar horizontalmente añadiendo más nodos de cómputo y separar éste del almacenamiento.

Existe un nodo coordinador del clúster que orquesta el resto de nodos a través de comunicaciones HTTP y acepta y planifica la ejecución de las consultas. Los nodos worker son los que procesan la consulta en memoria.

Esquema de arquitectura de PrestoDBEsquema de arquitectura de PrestoDB

Presto consulta los datos donde se almacenan, sin la necesidad de mover los datos a un sistema analítico separado. Al no almacenar los datos, no requiere ninguna operación de redistribución de datos al añadir nodos de cómputo.

Los servicios Cloud AWS Athena, Amazon EMR y Dremio están basados en el motor de consulta de PrestoDB, aunque son alternativas con más soporte y compatibilidad.

Ventajas

  • Al federar las consultas, no necesita procesos de migración de datos
  • Escalabilidad horizontal: Aumento de paralelismo y velocidad de consulta
  • Puede ser una alternativa a Dremio, Athena o Databricks SQL
  • Integrado con AWS S3 y ADLS como repositorios de datos
  • La empresa Starbust ofrece la versión con soporte empresarial

Desventajas

  • No se integra en AWS Lake Formation directamente
  • No tiene la posibilidad de despliegue como servicio serverless en Cloud
  • Carece de dashboard integrado y de una interfaz para realizar consultas SQL o con la capacidad de escribir notebooks

Funcionamiento de PrestoDB

Los usuarios envían su consulta SQL al nodo coordinador, que parsea, planifica y distribuye su plan de ejecución a los nodos worker. Se crea un pipeline de ejecución con las fases de la consulta en forma de árbol jerárquico para minimizar las operaciones de tipo I/O sobre los discos. Por tanto, añadir más nodos worker aumenta el paralelismo y la velocidad de ejecución de las consultas.

Presto se enfoca en el uso de plugins como muchas herramientas open source. Tanto en conectores como en herramientas de terceros para realizar las consultas, por ejemplo no tiene un driver ODBC oficial ni una interfaz gráfica para las consultas.

Los conectores de Presto implementan las interfaces para comunicarse con las fuentes de datos, sus tablas y esquemas de una manera uniforme.

Cursos de Formación con Presto y Siguientes Pasos

Si te interesa aprender más sobre Presto y los motores de consulta SQL distribuidos, te recomiendo este curso de especialización en analítica Big Data con SQL ofrecido por Cloudera que ya han disfrutado más de 50000 alumnos. Tiene un fuerte componente práctico que te permitirá comprender las habilidades esenciales que necesitarás para trabajar con estas tecnologías de manera profesional.

Si prefieres centrarte en comprender específicamente PrestoDB, aquí tienes dos cursos que te recomiendo en la plataforma online Udemy:

Dominio de Presto: Aprendizaje práctico

Curso Práctico de Prestodb en Udemy

PrestoDB: El curso definitivo de PrestoDB

Curso de Presto completo en Udemy

Preguntas Frecuentes PrestoDB

Presto vs Apache Drill

Ambas tecnologías tienen un propósito similar. Presto fue desarrollado para optimizar las consultas SQL para analítica interactiva a través de conectores con otras tecnologías. Apache Drill, por otro lado no necesita definir el esquema en los conectores para descubrir o consultar datos.

PrestoDB vs PrestoSQL

Ambas tecnologías son el resultado de un fork en el proyecto de Presto original. PrestoDBs e ha centrado en consultas analíticas interactivas para big data, mientras que PrestoSQL no tiene un foco tan específico. En el año 2020, PrestoSQL se renombró como Trino.

Entrada original: https://aprenderbigdata.com/prestodb/

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!