Table of Contents |
---|
Intro
...
Introduction
In the 3.1.0 de Plataforma integramos release of the Platform, we integrated Presto+MinIO como soporte para el almacenamiento tipo DataLake para escenarios de migración desde to support DataLake-type storage for migration scenarios from Hadoop.
En esta release estamos trabajando para soportar Presto como motor de consultas SQL multirepositorio, lo que nos permitirá hacer consultas analíticas sobre todas las Entidades/Ontologías de Plataforma independientemente del repositorio donde estén almacenadas (esto por ejemplo nos permitirá hacer JOINs entre un Postgresql y un MongoDB, o entre un MinIO y un Oracle).
Info |
---|
Es importante tener en cuenta que Presto es un motor de consultas SQL analítico capaz de fusionar otros repositorios y que su despliegue puede requerir bastante memoria en función del uso que se le dará. |
¿Cómo lo soportaremos en Plataforma?
Por un lado, podremos crear un nuevo tipo de Entidad: Presto Entity:
...
que permitirá a los usuarios conectar a los diferentes catálogos dados de alta en Presto por el administrador de Plataforma creando entidades PRESTO.
...
Una vez creadas las entidades PRESTO podremos hacer JOINS entre ellas de forma transparente al repositorio.
...
Estas entidades Presto se manejan como el resto de Entidades de Plataforma pudiendo crear dashboards sobre ellas, ingestar datos, publicarlas como API REST,…
...
También integraremos el Presto UI accesible para usuarios administradores, que permite ver las consultas ejecutadas sobre Presto.
...
¿Qué es Presto?
PrestoDB es un motor de consultas SQL distribuido open-source y construido en Java pensado para lanzar consultas analíticas interactivas contra un gran número de fuentes de datos (a través de conectores) soportando consultas sobre fuentes de datos que van desde gigabytes hasta petabytes.
Presto es un motor de consulta ANSI-SQL, permite consultar y manipular datos en cualquier fuente de datos conectada con las mismas sentencias, funciones y operadores SQL.
...
PrestoDB fuese creado en 2012 en Facebook donde inicialmente se creó para para resolver el problema de la lentitud de HIVE al acceder a un data-warehouse de 300 PB. Para resolver este problema se construyó un motor MPP basado en SQL que fuera fácil de usar a partir de los conocimientos existentes, fácil de conectar a cualquier base de datos, almacén o datalake y fácil de integrar con cualquier herramienta de BI.
¿Qué podemos hacer?
Presto permite consultar los datos sobre su origen, incluyendo entre otros conectores Hive, Cassandra, bases de datos relacionales Kafka, Kudu, Redis, MongoDB. Una sola consulta de Presto puede combinar datos de múltiples fuentes, lo que permite realizar análisis multi-store.
Presto está enfocado a consultas analíticas que esperan tiempos de respuesta que van desde menos de un segundo hasta minutos.
Ofrece una línea de comandos para hacer las consultas:
...
Conectores
Presto ofrece os conectores disponibles en Presto para acceder a los datos de diferentes fuentes de datos, podéis ver el listado aquíIn this release, we are working to support Presto as a multi-repository SQL query engine, which will allow us to make analytical queries on all Platform Entities/Ontologies regardless of the repository where they are stored (this, for example, will allow us to do JOINs between a PostgreSQL and a MongoDB , or between a MinIO and an Oracle).
Info |
---|
It is important to bear in mind that Presto is an analytical SQL query engine capable of merging other repositories and that its deployment can require a lot of memory depending on its use. |
How will we support it in Platform?
On the one hand, we can create a new type of Entity: Presto Entity:
...
that will allow users to connect to the different catalogs registered in Presto by the Platform administrator, creating PRESTO entities.
...
Once the PRESTO entities are created, we can make JOINS between them, transparently to the repository.
...
These Presto entities are handled like the rest of the Platform Entities, being able to create dashboards on them, ingest data, publish them as REST API, …
...
We will also integrate the Presto UI accessible to administrator users, which allows viewing the queries executed on Presto.
ejecutadas sobre Presto
...
What is Presto?
PrestoDB is an open-source distributed SQL query engine built in Java, designed to launch interactive analytical queries against a large number of data sources (via connectors), supporting queries on data sources ranging from gigabytes to petabytes.
Presto is an ANSI-SQL query engine, allowing to query and manipulate data in any connected data source with the same SQL statements, functions, and operators.
...
PrestoDB was created in 2012 at Facebook. where it was initially created to solve HIVE's slowness when accessing a 300 PB data-warehouse. To solve this problem, an SQL-based MPP engine was built that would be easy to use from existing knowledge, easy to connect to any database, warehouse, or datalake, and easy to integrate with any BI tool.
What can we do?
Presto allows you to query data about your source, including among others Hive connectors, Cassandra, Kafka relational databases, Kudu, Redis, and MongoDB. A single Presto query can combine data from multiple sources, allowing for multi-store analytics.
Presto is focused on analytical queries that expect response times ranging from less than a second, to minutes.
It offers a command line to make the queries:
...
Connectors
Presto offers the connectors available in Presto to access data from different data sources, you can see the list here: https://prestodb.io/docs/current/connector.html
Entre ellos conector AccumuloAmong them: Accumulo connector, Cassandra, Druid, Elasticsearch, HIVE, JMX, Kafka, Kudu, ficheros localeslocal files, MongoDB, MySQL, Oracle, Postgresql, Redis, Redshift, SQL Server,…...
...
JDBC driver
Presto ofrece un driver JDBC que permite acceder a las fuentes de datos subyacentes desde cualquier aplicación que use el driveroffers a JDBC driver that allows access to the underlying data sources from any application that uses the driver.
...
Presto Web UI
Presto proporciona una interfaz web para supervisar y gestionar las consultas. La interfaz web es accesible en el coordinador de Presto a través de HTTP.El UI nos indicara para cada query su estadoprovides a web interface to monitor and manage queries. The web interface is accessible in Presto’s coordinator through HTTP.
The UI will indicate, for each query, its status:
...