PDF de programación - Pinot

Imágen de pdf Pinot

Pinotgráfica de visualizaciones

Publicado el 10 de Junio del 2018
282 visualizaciones desde el 10 de Junio del 2018
978,6 KB
7 paginas
Creado hace 4a (13/08/2015)
PINOT



info@stratebi.com – www.stratebi.com)


Stratebi Paper (2015 – info@

Pinot es la herramienta de análisis en tiempo real desarrollada por LinkedIn que la
es la herramienta de análisis en tiempo real desarrollada por LinkedIn que la
es la herramienta de análisis en tiempo real desarrollada por LinkedIn que la
compañía ha liberado su código bajo licencia Apache 2.0, habiendo sido albergado en
compañía ha liberado su código bajo licencia Apache 2.0, habiendo sido albergado en
compañía ha liberado su código bajo licencia Apache 2.0, habiendo sido albergado en
GitHub. Se trata de un datastore
GitHub. Se trata de un datastore OLAP en tiempo real distribuido, que se utiliza para
OLAP en tiempo real distribuido, que se utiliza para
ofrecer soluciones escalables de análisis en tiempo real con baja latencia. Se pueden
ofrecer soluciones escalables de análisis en tiempo real con baja latencia. Se pueden
ofrecer soluciones escalables de análisis en tiempo real con baja latencia. Se pueden
ingerir los datos de fuentes offline (como Hadoop o ficheros planos), así como las
ingerir los datos de fuentes offline (como Hadoop o ficheros planos), así como las
ingerir los datos de fuentes offline (como Hadoop o ficheros planos), así como las
fuentes online (Kafka).



Pinot es muy adecuado para los casos de analitica de datos sólo de agregacion
es muy adecuado para los casos de analitica de datos sólo de agregacion
es muy adecuado para los casos de analitica de datos sólo de agregacion
inmutables que requieren baja latencia entre un evento que se ingiere y que está
inmutables que requieren baja latencia entre un evento que se ingiere y que está
inmutables que requieren baja latencia entre un evento que se ingiere y que está
disponible para ser consultado. Entre sus características destaca:
disponible para ser consultado. Entre sus características destaca:



• La flexibilidad con varios

La flexibilidad con varios esquemas de compresión.

• La ingestión near real time desde Kafka complementado por la ingestión batch
La ingestión near real time desde Kafka complementado por la ingestión batch
La ingestión near real time desde Kafka complementado por la ingestión batch
desde herramientas como Hadoop.
desde herramientas como Hadoop.

• SQL como lenguaje para las consultas (seleccion, agregacion, filtrado, por
SQL como lenguaje para las consultas (seleccion, agregacion, filtrado, por
SQL como lenguaje para las consultas (seleccion, agregacion, filtrado, por
grupo, por orden...).

Soporte para campos multivalor.

• Horizontalmente escalable y tolerante a fallos
Horizontalmente escalable y tolerante a fallos

• Soporte para campos mul

Sólo para comparar el antes y el despues de Pinot, 'Jobs Analytics' es un producto
Sólo para comparar el antes y el despues de Pinot, 'Jobs Analytics
' es un producto
construido hace algunos años utilizando Oracle y una completa arquitectura compleja
construido hace algunos años utilizando Oracle y una completa arquitectura compleja
construido hace algunos años utilizando Oracle y una completa arquitectura compleja
y con limitaciones. La imagen de abajo muestra el contraste y la facilidad que Pinot
y con limitaciones. La imagen de abajo muestra el contraste y la facilidad que Pinot
y con limitaciones. La imagen de abajo muestra el contraste y la facilidad que Pinot
permitia a los empleados de Linkedin construir productos de análisis d
permitia a los empleados de Linkedin construir productos de análisis d
permitia a los empleados de Linkedin construir productos de análisis de datos sin
tener que preocuparse de los detalles complicados.
tener que preocuparse de los detalles complicados.



Antes
Antes

Después
Después

Near
Real-time

No es posible apoyarse en un flujo de
No es posible apoyarse en un flujo de
datos near real-time. Los datos tienen que
time. Los datos tienen que
ser procesados, comprimidos en Hadoop y
ser procesados, comprimidos en Hadoop y
luego reenviados a Oracle
luego reenviados a Oracle

Pinot soporta la ingestion de datos
soporta la ingestion de datos
desde Kafka para el near real
desde Kafka para el near real-time
además de la posibilidad de alimentarse
además de la posibilidad de alimentarse
de un flujo desde Hadoop
de un flujo desde Hadoop

Consultas
OLAP

Las RDBMS no es la mejor opción para
Las RDBMS no es la mejor opción para
cualquier consulta OLAP puesto que sus
cualquier consulta OLAP puesto que sus
caracteristicas y consistencia está
y consistencia está
limitado. El esquema era complejo y
limitado. El esquema era complejo y
modelar los datos en estas RDBMS no es lo
modelar los datos en estas RDBMS no es lo
idoneo pues que se tiene que reducir las
idoneo pues que se tiene que reducir las
dimensiones

El modelado de datos es lo primero que
El modelado de datos es lo primero que
un estilo OLAP necesita y puede
un estilo OLAP necesita y puede
soportar complejas dimensiones de
soportar complejas dimensiones desde
una datasets muy pesados
una datasets muy pesados

Retención
de datos

Para productos OLAP se necesita
Para productos OLAP se necesita
necesitamos una manera de eliminar datos
necesitamos una manera de eliminar datos
obsoletos. Para ello utilizamos jobs
obsoletos. Para ello utilizamos jobs
programados que eliminen los registros.
programados que eliminen los registros.

Los datos se almacenan en segmentos y
Los datos se almacenan en segmentos y
éstos están agupados por fecha por lo
agupados por fecha por lo
que la caducidad de los datos es
que la caducidad de los datos es
constante



Debido a las opciones de diseño para lograr estos objetivos, hay ciertas limitaciones
Debido a las opciones de diseño para lograr estos objetivos, hay ciertas limitaciones
Debido a las opciones de diseño para lograr estos objetivos, hay ciertas limitaciones
presentes en Pinot:

• Pinot no sustituye a una base de datos es decir, no se puede utilizar como
no sustituye a una base de datos es decir, no se puede utilizar como
no sustituye a una base de datos es decir, no se puede utilizar como

fuente de almacenamiento per se, no puede mutar los datos.
fuente de almacenamiento per se, no puede mutar los datos.



• Tampoco reemplaza a un motor de búsqueda, por ejemplo, para una

búsqueda de texto completo, la relevancia no está incluida.



• Las queries no pueden extenderse a lo largo de varias tablas.


Sin embargo, Pinot funciona muy bien para la consulta de datos de series de tiempo
con muchas Dimensiones y Métricas.



Pinot está compuesto por tres distintos componentes.

• Controlador Pinot: Administra los nodos del clúster. Responsabilidades:

o Maneja todas las operaciones de crear, actualizar, eliminar en

tablas y segmentos.

o Calcula la asignación de la tabla y sus segmentos para los servidores

Pinot.



• Pinot Servidor: Almacena uno o más segmentos físicos. Responsabilidades:

o Cuando se asigna un segmento precreado, se descargar y se cargar.
Si se asigna un topic de Kafka, comienza a consumir a partir de un
sub conjunto de particiones en Kafka.

o Ejecuta consultas y devuelve la respuesta al Pinot Broker.



• Pinot Broker : Acepta las consultas (queries) de los clientes y las enruta a

varios servidores (dependiendo de la estrategia de enrutamiento). Todas
las respuestas se combinan y se envían de nuevo a cliente.



Antes de comenzar la guia de instalación rápida que nos ofrecen desde Linkedin, hay
que definir qué es una tabla y un segmento

• Tabla: Una tabla es una abstracción lógica para referirse a un conjunto de
datos relacionados entre sí. Se compone de columnas y filas (documento).
La tabla de Schema define los nombres de las columnas y sus metadatos.



• Segmento: Una tabla lógica se divide en varias unidades físicas. A estas

unidades se le denominan segmentos.



Quickstart

1- Montamos e instalamos Pinot

git clone https://github.com/linkedin/pinot.git

cd pinot

mvn install package -DskipTests

cd pinot-distribution/target/pinot-0.016-pkg

chmod +x bin/*.sh



En este ejemplo utilizaremos las estadisticas que vienen adjuntas en el proyecto,
estadisticas de baseball desde 1878 hasta 2013, en total unos 100000 registros
divididos en 15 columnas.

Para la parte offline, usaremos el script quick-start-offline.sh incluido en la carpeta
bin/ el cual convertirá los datos en segmentos para volcarlos en Pinot. Además este
scripts arranca los componentes necesarios para hacer funcionar el ecosistema,
Zookeeper, el controlador, el broker y el servidor

bin/quick-start-offline.sh



Ahora podremos lanzar consultas sobre la base de datos a través de la misma
terminal:





O de la web habilitada para ello: http://<servidor>: 9000/query



2- Realtime quick start

Hay dos maneras para la ingesta de datos en Pinot, la primera batch, como hemos
visto y la segunda es real-time. En este caso utilizaremos Kafka para ver como se
envian los datos a Pinot.

Para hacerlo sencillo, utilizaremos el codigo de ejemplo que trae Pinot al descargar.
Este ejemplo nos subscribiremos al feed de invitaciones y nuevos eventos de
meetup.com gracias al uso de su API.

Al igual que en el ejemplo anterior, basta un unico comando bin/quick-start-
realtime.sh para inciar todo lo necesario, en este caso:

Inicio del broker de Kafka.


• Configurar el listener para los nuevos eventos y los publica en nuestro broker

local.
Inicio del servicio zookeeper, el controller, el broker y el server.


• Configuracion de la fuente de realtime.


bin/quick-start-realtime.sh



En este momento Pinot ya está recibiendo los nuevos eventos e invitaciones que se
producen en meetup.com



Por supuesto, podremos consultar los datos, por ejemplo, listar el pais más activo en
el momento de la consulta o los eventos más activos.





Esto ha sido un
  • Links de descarga
http://lwp-l.com/pdf11767

Comentarios de: Pinot (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad