• Cloudera Cloudera
  • Apache NiFi

    Plateforme de traitement des évènements et de logistique des données fonctionnant de façon intégrée en temps réel

    Apache NiFi automatise les mouvements de données entre des sources et des systèmes différents, pour mieux accélérer, faciliter et sécuriser leur ingestion.

    Objectif d'Apache NiFi

    Apache NiFi est une plateforme intégrée de logistique de données qui sert à automatiser les mouvements de données entres des systèmes différents. Cette plateforme offre un pilotage en temps réel qui facilite la gestion des mouvements de données depuis n'importe quelle source et vers n'importe quelle destination. Indépendante, elle prend en charge des sources de données hétérogènes et distribuées ayant des formats, des schémas, des protocoles, des tailles et des débits différents, à l'instar des machines, appareils de géolocalisation, flux de clic, fichiers, réseaux sociaux, fichiers de journaux, vidéos, etc. Il s'agit de connexions configurables qui permettent le déplacement de données, au même titre que Fedex, UPS ou les autres services de livraison avec les colis. Et, tout comme ces services, Apache NiFi vous permet de suivre vos données en temps réel, comme pour une livraison.

    Apache NiFi repose sur la technologie anciennement appelée « Niagara Files » qui était en développement puis utilisée à grande échelle au sein de la NSA depuis huit ans et qui a été mise à la disposition de la Apache Software Foundation via le NSA Technology Transfer Program. Par conséquent, Apache NiFi a été conçu dès le départ pour être opérationnel sur le terrain —flexible, extensible et adapté à une large gamme d'appareils, du périphérique réseau léger comme le Raspberry Pi aux clusters de données d'entreprise et au cloud. Apache NiFi est également capable de s’adapter de manière dynamique aux fluctuations de la connectivité réseau qui pourraient avoir une incidence sur les communications et donc sur la livraison des données.

    Présentation de NiFi

    Même si le terme dataflow peut avoir plusieurs significations, nous l'utiliserons ici pour désigner un flux d'informations géré automatiquement entre des systèmes. Ce type de problème existe depuis que les entreprises utilisent plusieurs systèmes, dont certains créent des données et d'autres en consomment. Les problèmes générés par cette situation et les solutions proposées ont été largement étudiés. Une forme complète et prête à être exploitée est disponible dans l'Enterprise Integration Patterns [eip]. Les difficultés les plus importantes en matière de dataflow comprennent :

    Pannes de système

    Pannes de réseau, de disques, plantages de logiciels, erreurs humaines.

    L'accès aux données dépasse la capacité de consommation

    Parfois une source de données peut déborder une partie de la chaîne de traitement ou de livraison – un seul maillon faible peut créer un problème.

    Les conditions de limite ne sont que des suggestions

    Vous aurez forcément des données trop volumineuses, pas assez volumineuses, trop rapides, trop lentes, erronées, corrompues ou au mauvais format.

    Du bruit peut se transformer en information

    Les priorités d'une entreprise évoluent rapidement. L'intégration de nouveaux flux et la modification des existants doit être rapide.

    Les systèmes évoluent à des vitesses différentes

    Les protocoles et les formats utilisés par un système donné peuvent changer à tout moment et, souvent, sans que les systèmes voisins soient pris en compte. Dataflow sert à connecter ce qui n'est rien d'autre qu'un système largement distribué de composants qui ne sont pas ou presque pas conçus pour collaborer.

    Conformité et sécurité

    Les lois, les règlements et les politiques changent. Les accords entre entreprises changent. Les interactions entre les systèmes et avec les utilisateurs doivent être sécurisées et fiables.

    L'amélioration continue a lieu en production.

    Il est souvent impossible de répliquer à l'identique les environnements de production en test.

    Au fil du temps le dataflow est devenu inévitable dans une architecture. Aujourd'hui, nombre d'évolutions rendent le dataflow beaucoup plus intéressant et crucial pour le succès d'une entreprise. Ces évolutions comprennent par exemple l'architecture orientée objet [soa], le développement des API [api][api2], l'Internet des objets [iot] et le big data [bigdata]. De plus, la rigueur nécessaire à la gestion de la conformité, de la confidentialité et de la sécurité est en constante augmentation. Même avec l'arrivée de tous ces nouveaux concepts, les fonctionnements et les besoins du dataflow sont toujours les mêmes. Les seules différences sont l'ampleur de la complexité, la rapidité d'adaptation nécessaire et la fréquence d'apparition de plus en plus élevée des cas limites. NiFi est conçu pour aider à faire face aux difficultés rencontrées dans le dataflow moderne.

    Concepts de base

    Les concepts à la base de NiFi sont étroitement liés aux idées principales de la programmation basée sur les flux [FBP]. Voici les principaux concepts du NiFi et leurs correspondance dans 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.