¿Qué es Presto o PrestoDB?
Presto (o PrestoDB) es un motor de consultas SQL distribuidas de código abierto, diseñado desde cero para realizar consultas de análisis rápidas en datos de cualquier tamaño. Admite los orígenes no relacionales, como Hadoop Distributed File System (HDFS), Amazon S3, Cassandra, MongoDB y HBase, y orígenes de datos relacionales como MySQL, PostgreSQL, Amazon Redshift, Microsoft SQL Server y Teradata.
Presto puede consultar los datos donde están almacenados, sin necesidad de moverlos a otro sistema de análisis. La ejecución de consultas se ejecuta en paralelo en una arquitectura basada exclusivamente en memoria, y la mayoría de los resultados se obtienen en cuestión de segundos. Encontrará que lo utilizan muchas empresas conocidas como Facebook, Airbnb, Netflix, Atlassian y Nasdaq.
¿Cuál es la historia de Presto?
Presto comenzó como un proyecto en Facebook para ejecutar consultas analíticas interactivas en un almacén de datos de 300 PB, creado con grandes clústeres basados en Hadoop/HDFS. Antes de crear Presto, Facebook usaba Apache Hive, que creó e implementó en 2008, para llevar la familiaridad de la sintaxis SQL al ecosistema de Hadoop. Hive tuvo un impacto significativo en el ecosistema de Hadoop al simplificar las tareas complejas de Java MapReduce en consultas tipo SQL y, al mismo tiempo, poder ejecutar tareas a gran escala. Sin embargo, no estaba optimizado para el rápido rendimiento necesario en las consultas interactivas.
En 2012, el grupo de infraestructura de datos de Facebook creó Presto, un sistema de consultas interactivas que podía funcionar rápidamente a escala de petabytes. Se lanzó en toda la empresa en la primavera de 2013. En noviembre de 2013, Facebook abrió el código de Presto bajo la licencia de software Apache y lo puso a disposición para que cualquiera pudiera descargarlo en Github. Hoy en día, Presto se ha convertido en una opción popular para realizar consultas interactivas en Hadoop y cuenta con muchas contribuciones de Facebook y otras organizaciones. Más de mil empleados utilizan la implementación de Presto por parte de Facebook, que ejecutan más de 30 000 consultas y procesan un petabyte de datos al día.
¿Cómo funciona Presto?
Presto es un sistema distribuido que se ejecuta en Hadoop y utiliza una arquitectura similar a un sistema clásico de administración de bases de datos de massively parallel processing (MPP, procesamiento paralelo masivo). Tiene un nodo coordinador que trabaja en sincronía con varios nodos trabajadores. Los usuarios envían su consulta SQL al coordinador, que utiliza un motor de consulta y ejecución personalizado para analizar, planificar y programar un plan de consultas distribuido en los nodos de trabajo. Está diseñado para admitir la semántica ANSI SQL estándar, incluidas consultas complejas, agregaciones, uniones, combinaciones externas izquierda/derecha, subconsultas, funciones de ventana, recuentos distintos y percentiles aproximados.
Una vez compilada la consulta, Presto procesa la solicitud en varias etapas en los nodos de trabajo. Todo el procesamiento se realiza en memoria y se canaliza a través de la red entre etapas para evitar cualquier sobrecarga de E/S innecesaria. Añadir más nodos de trabajo permite un mayor paralelismo y un procesamiento más rápido.
Para hacer que Presto se pueda extender a cualquier origen de datos, se diseñó con abstracción de almacenamiento para facilitar la construcción de conectores conectables. Gracias a esto, Presto tiene muchos conectores, incluidos orígenes no relacionales, como Hadoop Distributed File System (HDFS, Sistema de archivos distribuido de Hadoop), Amazon S3, Cassandra, MongoDB y HBase, y orígenes relacionales como MySQL, PostgreSQL, Amazon Redshift, Microsoft SQL Server y Teradata. Los datos se consultan donde están almacenados, sin necesidad de moverlos a otro sistema de análisis.
¿Cuáles son las diferencias entre Presto y Hadoop?
Presto es un motor de consultas SQL distribuido de código abierto diseñado para consultas rápidas e interactivas de datos en HDFS y otros. A diferencia de Hadoop/HDFS, no tiene su propio sistema de almacenamiento. Por lo tanto, Presto es complementario de Hadoop, ya que las organizaciones adoptan ambos para resolver un desafío empresarial más amplio. Presto se puede instalar con cualquier implementación de Hadoop y se incluye en la distribución Hadoop de Amazon EMR.
¿Quién usa Presto?
Presto se utiliza en la producción a gran escala en muchas organizaciones conocidas. Lo encontrarás usado en Facebook, Airbnb, Netflix, Atlassian, Nasdaq y muchas más. Más de mil empleados utilizan la implementación de Presto por parte de Facebook, que ejecutan más de 30 000 consultas y procesan un petabyte de datos al día. En promedio, Netflix realiza alrededor de 3500 consultas al día en sus clústeres de Presto. Airbnb creó y abrió el código de Airpal, una herramienta de ejecución de consultas basada en la web que funciona sobre Presto. La comunidad más amplia de Presto se puede encontrar en este foro y en la página de Presto en Facebook.
¿Cómo puede implementar Presto en la nube?
Presto es una carga de trabajo ideal en la nube, porque la nube proporciona rendimiento, escalabilidad, fiabilidad, disponibilidad y enormes economías de escala. Puede lanzar un clúster de Presto en cuestión de minutos. No debe preocuparse por el aprovisionamiento de nodos, la disposición del clúster, la configuración de Presto ni el ajuste del clúster.
¿Cómo puede AWS crear su implementación de Presto en la nube?
Amazon EMR y Amazon Athena son los mejores lugares para implementar Presto en la nube, ya que realizan la integración y el rigor de las pruebas de Presto por usted, con la escala, la simplicidad y la rentabilidad de AWS. Con Amazon EMR, puede lanzar clústeres de Presto en minutos sin la necesidad de aprovisionar nodos, configurar clústeres y Presto ni ajustar clústeres. EMR permite aprovisionar una, cientos o miles de instancias informáticas en minutos. Amazon Athena le permite implementar Presto mediante la plataforma de AWS sin servidor, sin necesidad de configurar, administrar o ajustar servidores, máquinas virtuales ni clústeres. Simplemente seleccione sus datos en Amazon S3, defina el esquema y comience a realizar consultas con el editor de consultas integrado o con sus herramientas de BI existentes. Athena paraleliza automáticamente la consulta y escala los recursos de forma dinámica para que las consultas se ejecuten rápidamente. Usted solo paga las consultas que ejecuta.
Siguientes pasos en AWS
Obtenga acceso instantáneo al nivel Gratuito de AWS.
Comience a crear en la consola de administración de AWS.