Apache NiFi - Introducción
Apache NiFi es un sistema potente, fácil de usar y confiable para procesar y distribuir datos entre sistemas dispares. Se basa en la tecnología Niagara Files desarrollada por la NSA y luego, después de 8 años, se donó a la fundación Apache Software. Se distribuye bajo Apache License Version 2.0, enero de 2004. La última versión de Apache NiFi es 1.7.1.
Apache NiFi es una plataforma de ingesta de datos en tiempo real, que puede transferir y administrar la transferencia de datos entre diferentes fuentes y sistemas de destino. Admite una amplia variedad de formatos de datos como registros, datos de ubicación geográfica, feeds sociales, etc. También admite muchos protocolos como SFTP, HDFS y KAFKA, etc. Este soporte para una amplia variedad de fuentes de datos y protocolos hace que esta plataforma sea popular en muchas organizaciones de TI.
Apache NiFi- Características generales
Las características generales de Apache NiFi son las siguientes:
Apache NiFi proporciona una interfaz de usuario basada en la web, que proporciona una experiencia perfecta entre el diseño, el control, la retroalimentación y la supervisión.
Es altamente configurable. Esto ayuda a los usuarios con entrega garantizada, baja latencia, alto rendimiento, priorización dinámica, contrapresión y modificación de flujos en tiempo de ejecución.
También proporciona un módulo de procedencia de datos para rastrear y monitorear los datos desde el inicio hasta el final del flujo.
Los desarrolladores pueden crear sus propios procesadores personalizados y tareas de informes de acuerdo con sus necesidades.
NiFi también brinda soporte para protocolos seguros como SSL, HTTPS, SSH y otras encriptaciones.
También es compatible con la gestión de usuarios y roles y también se puede configurar con LDAP para la autorización.
Conceptos clave de Apache NiFi
Los conceptos clave de Apache NiFi son los siguientes:
Process Group - Es un grupo de flujos NiFi, que ayuda al usuario a gestionar y mantener los flujos de forma jerárquica.
Flow - Se crea conectando diferentes procesadores para transferir y modificar datos si es necesario desde una fuente o fuentes de datos a otras fuentes de datos de destino.
Processor- Un procesador es un módulo de Java responsable de obtener datos del sistema de origen o de almacenarlos en el sistema de destino. También se utilizan otros procesadores para agregar atributos o cambiar contenido en el archivo de flujo.
Flowfile- Es el uso básico de NiFi, que representa el único objeto de los datos recogidos del sistema de origen en NiFi. NiFiprocessor realiza cambios en el archivo de flujo mientras se mueve desde el procesador de origen al destino. Diferentes eventos como CREATE, CLONE, RECEIVE, etc. se realizan en flowfile por diferentes procesadores en un flujo.
Event- Los eventos representan el cambio en el archivo de flujo al atravesar un flujo de NiFi. Estos eventos se rastrean en la procedencia de los datos.
Data provenance - Es un repositorio. También tiene una interfaz de usuario, que permite a los usuarios verificar la información sobre un archivo de flujo y ayuda en la resolución de problemas si surgen problemas durante el procesamiento de un archivo de flujo.
Ventajas de Apache NiFi
Apache NiFi permite la obtención de datos de máquinas remotas mediante SFTP y garantiza el linaje de los datos.
Apache NiFi admite la agrupación en clústeres, por lo que puede trabajar en varios nodos con el mismo flujo de procesamiento de datos diferentes, lo que aumenta el rendimiento del procesamiento de datos.
También proporciona políticas de seguridad a nivel de usuario, nivel de grupo de procesos y otros módulos también.
Su interfaz de usuario también puede ejecutarse en HTTPS, lo que hace que la interacción de los usuarios con NiFi sea segura.
NiFi admite alrededor de 188 procesadores y un usuario también puede crear complementos personalizados para admitir una amplia variedad de sistemas de datos.
Desventajas de Apache NiFi
Cuando el nodo se desconecta del clúster NiFi mientras un usuario realiza cambios en él, el flow.xml deja de ser válido. El nodo no puede volver a conectarse al clúster a menos que el administrador copie manualmente flow.xml desde el nodo conectado.
Apache NiFi tiene un problema de persistencia de estado en el caso del cambio de nodo principal, lo que a veces hace que los procesadores no puedan obtener datos de los sistemas de abastecimiento.