• Cloudera Cloudera
  • Apache Nifi

    Una plataforma de logística de datos integrados en tiempo real y de procesamiento de eventos sencillos

    Apache NiFi automatiza el movimiento de datos entre fuentes y sistemas de datos diversos, contribuyendo a una ingesta de datos rápida, sencilla y segura.


    Finalidad de Apache NiFi

    Apache NiFi es una plataforma de logística de datos integrados para la automatización del movimiento de datos entre sistemas diversos. Ofrece control en tiempo real y facilita el movimiento de datos entre cualquier fuente y destino. Es independiente de la fuente de datos, por lo que ofrece compatibilidad con fuentes diversas y distribuidas en diferentes formatos, esquemas, protocolos y tamaños, tales como máquinas, dispositivos de geolocalización, recorridos de clics, archivos, fuentes de redes sociales, archivos de registro, vídeos, etc. Se pueden configurar diferentes combinaciones para mover los datos, algo similar a la forma que tienen Fedex, UPS y otros servicios de paquetería de distribuir sus repartos. Y al igual que esos servicios, Apache NiFi permite seguir los datos en tiempo real, como se haría con el seguimiento de un pedido.

    Apache NiFi se basa en la tecnología conocida anteriormente como “Niagara Files”. La NSA desarrolló y utilizó a escala esta tecnología durante ocho años y después la cedió a Apache Software Foundation a través del programa de transferencia de tecnología de la NSA. Por lo tanto, se trata de una tecnología diseñada desde el primer momento para un uso real: es flexible, extensible y adecuada para una amplia variedad de dispositivos, desde dispositivos del edge de la red ligeros y pequeños, como una Raspberry Pi, hasta la nube, pasando por clústeres de datos empresariales. Apache NiFi también se ajusta de forma dinámica la conectividad de la red, cuyas fluctuaciones pueden afectar a las comunicaciones y, por lo tanto, a la entrega de los datos.

    Descripción general de NiFi

    Mientras que el término dataflow se usa en diversos contextos, en este caso hace referencia al flujo automatizado y gestionado de información entre sistemas. El problema del espacio existe desde que las empresas cuentan con más de un sistema, algunos de ellos creando datos y los otros consumiéndolos. Los problemas y los patrones de soluciones que han surgido ya han sido analizados y estudiados en profundidad. Puede consultar información exhaustiva y de consulta habitual en Enterprise Integration Patterns [eip]. Algunos de los retos más relevantes que plantea el dataflow son los siguientes:

    Los sistemas tienen fallos

    La red, los discos, el software... todos pueden fallar en algún momento, sin olvidar el error humano.

    El acceso a los datos supera la capacidad de consumo

    En ocasiones, una determinada fuente de datos puede superar a alguna parte de la cadena de procesamiento o entrega. En esos casos, basta con un solo eslabón débil para que surjan complicaciones.

    Las condiciones límite son meras sugerencias

    Siempre recibirá datos que son demasiado grandes, demasiado, pequeños, demasiado lentos, dañados, erróneos o en un formato incorrecto.

    Lo que un día es ruido mañana puede cobrar sentido

    Las prioridades de una organización cambian rápidamente. Para dar paso a nuevos flujos y modificar los existentes hay que hacerlo con rapidez.

    Los sistemas evolucionan a ritmos diferentes

    Los protocolos y los formatos que usa un sistema concreto pueden cambiar en cualquier momento, a menudo con independencia de los sistemas que los rodean. El dataflow sirve para conectar lo que, en esencia, es un sistema masivamente distribuido de componentes que se han diseñado para colaborar poco o nada en absoluto.

    Cumplimiento y seguridad

    Las leyes, las normativas y las políticas cambian. Los acuerdos entre empresas cambian. Las interacciones entre sistemas y entre usuarios y sistemas deben ser seguras, fiables y responsables.

    La mejora continua se consigue en la fase de producción

    Normalmente no es posible replicar ni siquiera aproximadamente los entornos de producción en el laboratorio.

    Con el tiempo, el dataflow se ha convertido en uno de esos males necesarios de una arquitectura. Sin embargo, en la actualidad existen varios movimientos activos y dinámicos que están logrando que el dataflow cobre mucho más interés y resulte crucial para que una empresa alcance sus objetivos. Estos movimientos son, entre otros, la arquitectura orientada a los servicios [soa], el auge de las API [api][api2], el internet de las cosas [iot] y el Big Data [bigdata]. Además, aspectos como el cumplimiento, la privacidad y la seguridad exigen cada vez un mayor nivel de rigor. Aun así, incluso con la aparición de todos estos nuevos conceptos, los patrones y las necesidades del dataflow apenas cambian. Las principales diferencias son el alcance de la complejidad, la velocidad a la que hay que adaptarse al cambio y que, en proporción, la presencia del edge es cada vez más habitual. NiFi se ha diseñado para abordar estos retos que plantea el dataflow moderno.

    Conceptos esenciales

    Los conceptos de diseño esenciales de NiFi están estrechamente relacionados con las ideas básicas de la programación basada en flujos [FBP]. A continuación, se incluyen algunos de los conceptos principales de NiFi y su correspondencia con FBP:

    NiFi Term FBP Term Description
    FlowFile Information Packet  A FlowFile represents each object moving through the system and for each one, NiFi keeps track of a map of key/value pair attribute strings and its associated content of zero or more bytes.
    FlowFile Processor Black Box  Processors actually perform the work. In [eip] terms a processor is doing some combination of data Routing, Transformation, or Mediation between systems. Processors have access to attributes of a given FlowFile and its content stream. Processors can operate on zero or more FlowFiles in a given unit of work and either commit that work or rollback.
    Connection Bounded Buffer Connections provide the actual linkage between processors. These act as queues and allow various processes to interact at differing rates. These queues then can be prioritized dynamically and can have upper bounds on load, which enable back pressure.
    Flow Controller Scheduler  The Flow Controller maintains the knowledge of how processes actually connect and manages the threads and allocations thereof which all processes use. The Flow Controller acts as the broker facilitating the exchange of FlowFiles between processors.
    Process Group Subnet  A Process Group is a specific set of processes and their connections, which can receive data via input ports and send data out via output ports. In this manner process groups allow creation of entirely new components simply by composition of other components.

    Your form submission has failed.

    This may have been caused by one of the following:

    • Your request timed out
    • A plugin/browser extension blocked the submission. If you have an ad blocking plugin please disable it and close this message to reload the page.