Apache NiFi

Apache NiFi ir atvērtā pirmkoda programmatūra, ko izstrādā Apache Software Foundation un kas paredzēta datu plūsmu automatizēšanai starp dažādām sistēmām. Tā balstās uz plūsmu programmēšanas modeli un nodrošina vizuālu tīmekļa saskarni datu maršrutēšanas, transformēšanas un pārvaldības procesu projektēšanai. NiFi sākotnēji izstrādāja ASV Nacionālā drošības aģentūra (NSA) ar nosaukumu NiagaraFiles, un 2014. gadā to publiskoja kā atvērtā pirmkoda projektu.

 Vēsture 

 Izstrāde NSA 

NiagaraFiles izstrādi Nacionālā Drošības aģentūrā (NSA) sāka . Programmatūru izveidoja, lai risinātu aģentūras problēmas liela apjoma neviendabīgu datu savākšanā un apstrādē reāllaikā — tā ļāva automatizēt datu saņemšanu no dažādiem avotiem bez nepieciešamības rakstīt pielāgotu kodu katrai integrācijai. Trīs līdz četru gadu laikā NiagaraFiles ieguva plašu lietojumu ASV izlūkošanas kopienā.

 Publiskošana 

2014. gada novembrī NSA programmatūru nodeva Apache inkubatoram kā daļu no aģentūras tehnoloģiju pārneses programmas. Nosaukums NiFi ir saīsinājums no NiagaraFiles. 2015. gada jūlijā Apache NiFi kļuva par augstākā līmeņa Apache Software Foundation projektu. Kopš publiskošanas projektam pievienojušies vairāk nekā 150 izstrādātāji.

 NiFi 2.0 

 iznāca Apache NiFi 2.0.0 — pirmā jaunās paaudzes stabilā versija. Tika ieviesti vairāki būtiski uzlabojumi: iebūvētu atbalstu Python procesoriem, pilnīgi pārbūvētu tīmekļa saskarni, vienkāršotu klasterizāciju ar Kubernetes, kā arī plūsmu versiju pārvaldību, izmantojot GitHub un GitLab repozitorijus. Tehnoloģisko bāzi modernizēja, pārejot uz Java 21, Spring Framework 6, Jetty 12 un Angular 18. Izlaišanas procesā atrisināja vairāk nekā 2000 problēmu.

 Arhitektūra 

Apache NiFi arhitektūra balstās uz plūsmu programmēšanas () modeli, kurā lietojumprogrammu veido kā savstarpēji savienotu apstrādes mezglu tīklu. Katrs mezgls veic noteiktu datu apstrādes funkciju, un dati starp tiem pārvietojas kā atsevišķas informācijas paketes.

NiFi ir Java programma, kas darbojas serverī. Tās galvenie komponenti ir šādi:

 FlowFile — datu pakete, kas satur atribūtus (atslēgas-vērtību pārus) un saturu (baitu plūsmu). Katrs FlowFile atspoguļo vienu datu objektu, kas pārvietojas pa sistēmu.
 Procesors (Processor) — komponents, kas veic datu maršrutēšanu, transformēšanu vai starpniecību ar ārējām sistēmām. NiFi piedāvā vairāk nekā 300 iebūvētu procesoru.
 Savienojums (Connection) — rinda starp diviem procesoriem, kas nodrošina asinhronu datu pārsūtīšanu. Savienojumiem var iestatīt pretspiedienu (back pressure) mehānismus un prioritāšu kārtošanu.
 Plūsmu pārvaldītājs (Flow Controller) — centrālais koordinators, kas pārvalda procesoru izpildi un piešķir resursus.
 Procesu grupa (Process Group) — loģiski apvienotu procesoru kopa ar ievades un izvades portiem, kas ļauj veidot hierarhiskas datu plūsmas.

NiFi glabā datus trīs repozitorijos: FlowFile repozitorijā (aktīvo plūsmu statuss), satura repozitorijā (datu saturs tranzītā) un izcelsmes repozitorijā (datu apstrādes vēsture).

 Galvenās iespējas 

 Vizuālā saskarne 

NiFi piedāvā tīmekļa lietotāja saskarni, kurā datu plūsmas var projektēt, modificēt un uzraudzīt reāllaikā. Izmaiņas stājas spēkā nekavējoties, bez nepieciešamības pārstartēt sistēmu.

 Drošība 

Sistēma nodrošina šifrētu datu pārraidi, izmantojot TLS protokolu gan starp NiFi mezgliem, gan starp NiFi un lietotājiem. Tā atbalsta daudzlīmeņu autorizāciju ar dažādām piekļuves tiesībām (lasīšana, pārvaldība, administrēšana) un sensitīvu rekvizītu šifrēšanu servera pusē.

 Klasterizācija 

Kopš 1.0 versijas NiFi izmanto bezlīderu klasterizācijas modeli, kurā katrs klasterī iekļautais mezgls veic vienādas darbības ar dažādām datu apakškopām. Apache ZooKeeper nodrošina klastera koordinatora un primārā mezgla izvēli ar automātisku pārslēgšanos kļūmes gadījumā. Kopš 2.0 versijas ir pieejama arī Kubernetes integrācija, kas ļauj atteikties no ZooKeeper.

 Datu izcelsmes izsekošana 

NiFi automātiski reģistrē un indeksē katru datu apstrādes notikumu — saņemšanu, sadalīšanu, apvienošanu, modificēšanu un nosūtīšanu. Šī izcelsmes (provenance) izsekošana ir būtiska atbilstības nodrošināšanai, kļūdu diagnosticēšanai un sistēmas optimizēšanai.

 Paplašināmība 

Lietotāji var izveidot pielāgotus procesorus, kontrolieru pakalpojumus un atskaišu uzdevumus. Kopš 2.0 versijas procesorus var rakstīt arī Python valodā. Katrs paplašinājums darbojas izolētā klases ielādētājā, novēršot atkarību konfliktus.

 Pielietojums 

Apache NiFi izmanto dažādu nozaru uzņēmumi datu plūsmu pārvaldībai. Macquarie Technology Group to lieto miljardiem ikdienas notikumu drošai pārsūtīšanai starp datu centriem. Micron ar NiFi palīdzību apkopo ražošanas datus no visas pasaules un ievada tos globālajās datu noliktavās. NTT DATA izmanto NiFi reāllaika IoT un laika rindu datu analīzei naftas, gāzes, ražošanas un mazumtirdzniecības nozarēs.

Hortonworks, kas  apvienojās ar Cloudera, izveidoja Hortonworks DataFlow (HDF) platformu, kuras pamatā bija NiFi. Cloudera turpina piedāvāt Cloudera Flow Management — uzņēmumu līmeņa datu pārvaldības risinājumu, kas balstīts uz Apache NiFi.

Izplatītākie NiFi lietojuma scenāriji ir:
 datu savākšana un apkopošana no dažādiem avotiem (žurnālfaili, sensori, lietojumprogrammu saskarnes);
 reāllaika datu straumēšana un transformēšana;
 IoT ierīču datu ievākšana un apstrāde;
 datu kvalitātes nodrošināšana un bagātināšana (laika zīmogu, ģeolokācijas datu pievienošana).

 Skatīt arī 
 Node-RED

 Atsauces 

 Ārējās saites 



Kategorija:Apache Software Foundation
Kategorija:Brīvā un atvērtā pirmkoda programmatūra