Translate

Mostrando las entradas con la etiqueta Presto. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Presto. Mostrar todas las entradas

sábado, 14 de marzo de 2020

Apache Druid



Apache Druid es una base de datos analíticos en tiempo real de alto rendimiento.

La idea es vos conectas Apache Druid a un origen de datos por ejemplo Apache Kafka y con Druid pueden analizar la información en tiempo real. Me hace acordar a Presto.

Druid está diseñado para flujos de trabajo donde las consultas rápidas y la ingesta de datos realmente importan. Druid se destaca en la visibilidad instantánea de datos, consultas ad-hoc, análisis operacionales y manejo de alta concurrencia.

Druid puede transmitir datos de forma nativa desde buses de mensajes como Kafka, Amazon Kinesis y más, y cargar archivos por lotes desde data lakes como HDFS, Amazon S3 y más.

Druid ha sido comparado para superar en gran medida las soluciones heredadas para la ingestión de datos y las consultas de datos. La nueva arquitectura de Druid combina los mejores almacenes de datos, bases de datos de series de tiempo y sistemas de búsqueda.

Druid desbloquea nuevos tipos de consultas y flujos de trabajo para clickstream, APM, cadena de suministro, telemetría de red, marketing digital y muchas otras formas de datos basados ​​en eventos. Druid está diseñado específicamente para consultas rápidas y ad-hoc sobre datos históricos y en tiempo real.

Druid se puede implementar en cualquier entorno * NIX en hardware básico, tanto en la nube como para instalaciones tradicionales. Implementar Druid es fácil: escalar hacia arriba y hacia abajo es tan simple como agregar y eliminar servicios de Druid.

Dejo link: https://druid.apache.org/

martes, 11 de septiembre de 2018

Presto


Presto es una herramiento diseñada para correr consultas sobre grandes cantidades de datos usando consultas distribuidas, trabajando en el orden de los petabytes de datos.

Permite interactuar con Hadoop y su HDFS. Fue diseñado como una alternativa a otras herramientas que consultaba el HDFS usando conexiones a los jobs de MapReduce, como lo hace Hive.

Pero Presto no solo se limita a trabajar sobre el HDFS, también tiene un API que permite definir diferentes tipos de fuentes de datos, incluidos base de datos relacionales, base de datos no relacionales, archivos locales, entre otras fuentes.

Fue pensado para manejar datawarehouses, analytics, análisis de datos, agregación de grandes cantidades de datos o generar reportes. Esas características, permite definir a Presco como un OLAP (Online analytical Processing).

Presto es una herramienta distribuida basada en un motor SQL para realizar análisis interactivos contra bases de datos de todos los tamaños posibles.

Entre las características podemos nombrar:
  • Presto permite consultar datos desde varias fuentes, incluido Hive, Cassandra, bases de datos relacionales, archivos planos o incluso datastores privados, lo que permite cruzar datos desde muchas fuentes al mismo tiempo sin mucho esfuerzo.
  • Esta herramienta está apuntada para análisis donde los tiempos de respuestas son críticos para las tomas de decisiones.

Existen 2 tipos de servidores, los coordinadores (coordinators)  y los trabajadores (workers) y la comunicación entre ambos tipos de servidores es por REST API. Con fines de desarrollo y testeo, se puede configurar un nodo como coordinador y trabajador al mismo tiempo.

Los coordinadores son los nodos donde el “cliente” se conecta para enviarles las consultas que requiere. Son los responsables de parsear las sentencias, generar los planes de ejecución de las consultas, coordinar los trabajadores (mantiene un tracking de que está haciendo cada trabajador para coordinación).

Los trabajadores son responsables de ejecutar las tareas que el coordinador requiere y de procesar los datos para cumplirla. Se los configura que para que al momento de iniciar, se reporten al coordinador correspondiente para que éste los tenga en cuenta para las tareas futuras.

Un conector permite a los trabajadores conectarse a fuentes de datos, como Hive o una base de datos relacional. Se pueden pensar los mismos como un “driver” para cada base de datos en particular.

A la vez existe el concepto de catálogo este contiene esquemas que referencian a los datos a través del conector. Se configuran en archivos “properties” dentro de la carpeta de configuración de Presto.

Y un esquema es una manera de agrupación de tablas que pueden ser consultadas por los trabajadores. El mapeo de schemas queda delegado a cada tipo de conector en particular.

Y las tablas es un conjunto de filas desordenadas que se organizan en columnas con tipos definidos (parecido a una base de datos relacional). Este mapeo de datos a columnas y tipos lo define cada conector en particular.

Presto ejecuta consultas SQL basadas en el ANSI-SQL. Cuando Presto parsea una sentencia, convierte a esta en una consulta SQL y crea un plan de ejecución que va a distribuir entre sus trabajadores asociados.

La diferencia entre una sentencia y una consulta es que la sentencia es “texto plano” mientras que la consulta en si, es el plan asociado a esa sentencia. La consulta encapsula lo que son las etapas, tareas, splits, conectores y demás recursos necesarios para cumplir con esas sentencia.

Cuando Presto ejecuta una consulta, divide a ésta en etapas dentro del plan. Estas etapas quedan definidas como un árbol de ejecución, donde cada etapa tiene una etapa superior que se encarga de juntar los resultados de las etapas inferiores.

Y como si fuera poco Presto es open source.