Apache Nifi

Avatar de Usuario
Luigicol
Iniciado
Mensajes: 33
Registrado: 15 Abr 2016 16:16

Apache Nifi

Mensajepor Luigicol » 30 Ago 2017 11:04

Apache NiFi supports powerful and scalable directed graphs of data routing, transformation, and system mediation logic. Some of the high-level capabilities and objectives of Apache NiFi include:

Web-based user interface
Seamless experience between design, control, feedback, and monitoring
Highly configurable
Loss tolerant vs guaranteed delivery
Low latency vs high throughput
Dynamic prioritization
Flow can be modified at runtime
Back pressure
Data Provenance
Track dataflow from beginning to end
Designed for extension
Build your own processors and more
Enables rapid development and effective testing
Secure
SSL, SSH, HTTPS, encrypted content, etc...
Multi-tenant authorization and internal authorization/policy management


Muy buenas a todos... Voy avanzando poco a poco en el mundillo desarrollo: del viejo y odioso Cobol, salté al frontEnd con VueJS (amigable y excelentes resultados) y recientemente me he pasado un poco al BackEnd, a controlar las BBDD y numerosos procesos de los servidores...

En la actualidad estoy intentando introducirme en la analítica de datos a nivel básico, liderando un mini-proyecto consistente en elaborar un prototipo experimental de Mapa de Calor que ofrezca recomendaciones de zonas en función del análisis de numerosos datos. Para empezar con ello, estoy trabajando en toda la ingesta de datos, que provienen de numerosas fuentes de información (sensores IOT, scrapys, APIs, etc...).

Debido al crecimiento en variedad y cantidad de datos que experimentamos, surgió la necesidad de implementar una plataforma que proporcionase transparencia, visualización, automatización y debuggeado en todos los procesos de colecta de datos... ¡y es aquí dónde apareció Apache Nifi! Me gustaría compartir con vosotros esta herramienta, ya que lo poco que he tocado de ella me parece que tiene un gran potencial. Tiene numerosos procesadores de datos (CSV, XML, JSON, Avro...), se integra a la perfeccion con numerosas herramientas (SQL DBs, NoSQL DBs, AWS, Hadoop, Spark, Kafka...) y cuenta con numerosas funcionalidades HTTP, compresión, cifrado, MiNifi (orientado a IOT), FTP, mailing, etc...
Hasta el momento he realizado un par de Dataflows de Crawls almacenando la info en Mongo y parece tener muy buen rendimiento. Supongo que a los que maquináis os puede resultar muy útil para automatizar procesos de analítica financiera de manera transparente...

PD: Admito sugerencias de tecnologías/plataformas en las que introducirme para continuar con mi aprendizaje ;)
Un saludo!

Avatar de Usuario
Dalamar
Site Admin
Mensajes: 8825
Registrado: 09 May 2012 01:38

Re: Apache Nifi

Mensajepor Dalamar » 30 Ago 2017 18:07

Muy interesante, cual es la principal ventaja?

Porque no usar, Camel, Kafka, Spark Streaming etc... ?

No lo conocia, gracias por compartir!
¿Te ha gustado este hilo? Compartelo en las redes sociales para que se sume mas gente a la conversacion!

Avatar de Usuario
Luigicol
Iniciado
Mensajes: 33
Registrado: 15 Abr 2016 16:16

Re: Apache Nifi

Mensajepor Luigicol » 30 Ago 2017 18:54

Por lo que tengo entendido, Nifi se centra más en toda la colecta y procesado inicial de los datos (que cada vez resulta de más importancia, por ejemplo con todo el crecimiento de emisión de datos de dispositivos IOT). Éste proporciona una interfaz para la visualización, traceo y procesamiento transparente mediante workflows de diferentes flujos de datos; a su vez complementándose con otras plataformas como las que citaste.

Dejo por aquí algunas citas de opiniones que he podido fisgar acerca de comparaciones con las plataformas citadas:

Nifi Shares many of the best aspects of Camel, but fixes some weaknesses. I really like Camel and we’ve used it a number of times, and the flow of data through steps is very similar. However Camel configuration is very developer centric, “build and deploy” model. If you have a problem in production, then fixing it requires shutting everything down, redeploying configurations, and then starting it back up. I really liked the visual flows that NiFi provides, and the ability to stop and start processors dynamically. Plus, NiFi has much deeper ability to track what is happening to your data, what they call data provenance (http://opensourceconnections.com/blog/2 ... ache-nifi/)


NiFi is "An easy to use, powerful, and reliable system to process and distribute data."

It is a visual tool (with a REST api) that implements flow-based programming to enable the user to craft flows that will take data from a large variety of different sources, perform enrichment, routing, etc on the data as it's being processed, and output the result to a large variety of destinations. During this process it captures metadata (provenance) on what has happened to each piece of data (FlowFile) as it made its way through the Flow for audit logging and troubleshooting purposes.

"Apache Kafka is publish-subscribe messaging rethought as a distributed commit log"

It is a distributed implementation of the publish-subscribe pattern that allows developers to connect programs to each other in different languages and across a large number of machines. It is more of a building block for distributed computing than it is an all-in-one solution for processing data.

They work great together.

Using Kafka to distribute once something is ingested and processed in NiFi

http://hortonworks.com/hadoop-tutorial/ ... fka-storm/

Kafka is great for connecting NiFi to Storm, Flink, Spark and other processors in hadoop

https://blogs.apache.org/nifi/entry/int ... ith_apache


Fundamentally, Spark is a data processing engine while NiFi is a data movement tool. Spark is intended for doing complex computations on large amounts of data, combining data sets, applying analytical models, etc. Spark Streaming provides micro batch processing of data to bring this processing closer to real time. NiFi is intended to collect data and move it to the place for it to be processed with some certain modifications or computations on the data as it flows to its final destination.

Avatar de Usuario
Dalamar
Site Admin
Mensajes: 8825
Registrado: 09 May 2012 01:38

Re: Apache Nifi

Mensajepor Dalamar » 31 Ago 2017 06:08

Tengo que probarlo por lo que veo puede ser algo similar a AirFlow, pero mas industrializado con workflows visuales etc...

Yo tengo algo similar en el trabajo, pero lo he programado todo en java desde cero ya que no encontraba ningun framework que realmente hiciese el trabajo.
¿Te ha gustado este hilo? Compartelo en las redes sociales para que se sume mas gente a la conversacion!


Volver a “Big Data”

cron

Ingresar