MiNiFi : Scalabilité de la donnée & de l'intérêt de commencer petit

MiNiFi : Scalabilité de la donnée & de l'intérêt de commencer petit

Vous appréciez notre travail......nous recrutons !

Ne ratez pas nos articles sur l'open source, le big data et les systèmes distribués, fréquence faible d’un email tous les deux mois.

Aldrin nous a rapidement présenté Apache NiFi puis expliqué d’où est venu MiNiFi : un agent NiFi à déployer sur un embarqué afin d’amener la donnée à pipeline d’un cluster NiFi (ex : IoT).

Ce poste fait partie de notre série sur le Dataworks Summit 2017 (ex-Hadoop Summit) et fait suite à la conférence d’Aldrin Piri d’Hortonworks. Voici les points principaux de la présentation.

Apache NiFi

Apache NiFi est un système répondant à la question suivante :

Dans un monde connecté ou tout appareil peut être producteur de données, comment amène-t-on la donnée au consommateur ?

Il permet de collecter la donnée depuis de multiples sources, y appliquer une ou plusieurs logiques et opérations et enfin de la rendre disponible à d’autres ou la pousser dans un système de fichiers.

Ses fonctionnalités clé sont :

  • Assurance de livraison (guaranteed delivery)
  • Mise en mémoire tampon
  • Priorisation des files
  • Qualité de service spécifique à un flux (latence vs débit, tolérance à la perte)
  • Provenance de la donnée
  • Reprise / enregistrement d’un log continu avec un historique détaillé
  • Commandes et contrôles visuels
  • Templates de flux
  • Sécurité multi-rôle / pluggable
  • Pensé pour les extensions
  • Clustering

NiFi utilise le format FlowFiles pour transporter la donnée. C’est un format stockant la donnée au format binaire associé à des métadonnées, comme le fait HTTP, permettant de retracer l’origine du fichier et les opérations appliquées.

Le format FlowFile permet à NiFi d’être agnostique à la donnée, cependant le système est pensé pour l’intégration de plugins pour ajouter des opérations spécifiques à un format de données.

Apache MiNiFi

NiFi est un bel outil. Néanmoins il requiert beaucoup de puissance de calcul pour fonctionner ce qui le limite généralement aux DataCenters. Cela signifie que l’historique de la donnée au sein de NiFi est limité aux points d’entrée du DataCenter.

Avec ce point en tête, l’équipe NiFi a exporté les librairies de format FlowFile, support de tagging, protocole site-to-site et enregistrement de la provenance de la donnée, sans le framework de traitement, le serveur web et l’interface utilisateur. Associé à cela, ils ont développé deux clients :

  • Un en Java, bien moins consommateur que le service NiFi original
  • Un en C++, plus petit que la version Java

La première implémentation est basée sur le service NiFi original tandis que la version C++ est une réécriture complète pour optimiser les performances, et est bien adaptée à un réseau de capteurs.

Il reste enfin l’option la plus optimale : développer soi-même un client spécifique à la plateforme cible (iOS / Android, …) avec les librairies exportées de NiFi.

Tout cela forme MiNiFi, un client NiFi embarqué permettant d’avoir la provenance de la donnée directement depuis le producteur.

L’écosystème NiFi

Afin d’agrandir les possibilités de Nifi, les composants suivants sont en développement :

  • Gestion de configuration des flux et versionning
  • Dépôt centralisé d’extension
  • Base de registre

Conclusion

Avec l’annonce de MiNiFi, l’équipe Apache NiFi veut se placer comme le meilleur ETL pour le nouveau monde de l’IoT.

Partagez cet article

Canada - Maroc - France

Nous sommes une équipe passionnée par l'Open Source, le Big Data et les technologies associées telles que le Cloud, le Data Engineering, la Data Science le DevOps…

Nous fournissons à nos clients un savoir faire reconnu sur la manière d'utiliser les technologies pour convertir leurs cas d'usage en projets exploités en production, sur la façon de réduire les coûts et d'accélérer les livraisons de nouvelles fonctionnalités.

Si vous appréciez la qualité de nos publications, nous vous invitons à nous contacter en vue de coopérer ensemble.

Support Ukrain