{"id":37567,"date":"2019-10-31T22:18:22","date_gmt":"2019-10-31T19:18:22","guid":{"rendered":"https:\/\/prohoster.info\/blog\/apache-nifi-kratkij-obzor-vozmozhnostej-na-praktike\/"},"modified":"2019-10-31T22:18:22","modified_gmt":"2019-10-31T19:18:22","slug":"apache-nifi-kratkij-obzor-vozmozhnostej-na-praktike","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/news\/apache-nifi-kratkij-obzor-vozmozhnostej-na-praktike","title":{"rendered":"Apache NIFI \u2013 Nj\u00eb p\u00ebrmbledhje e mund\u00ebsive n\u00eb praktik\u00eb","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3>Hyrje<\/h3>\n<p><\/p>\n<p>Si ndodhi q\u00eb n\u00eb vendin tim aktual t\u00eb pun\u00ebs m\u00eb duhej t\u00eb njihesha me k\u00ebt\u00eb teknologji. Do t\u00eb filloj me nj\u00eb histori t\u00eb vog\u00ebl. N\u00eb nj\u00eb takim t\u00eb fundit, ekipi yn\u00eb u tha se duhet t\u00eb krijojm\u00eb nj\u00eb integrim me <em>nj\u00eb sistem t\u00eb njohur<\/em>. Integrimi n\u00ebnkuptonte se ky sistem i njohur do t\u00eb na d\u00ebrgonte k\u00ebrkesa p\u00ebrmes HTTP n\u00eb nj\u00eb endpoint t\u00eb caktuar, dhe ne, ashtu si\u00e7 duket e \u00e7uditshme, do t\u00eb d\u00ebrgonim prapa p\u00ebrgjigje n\u00eb form\u00ebn e nj\u00eb mesazhi SOAP. Duket se \u00ebsht\u00eb thjesht dhe triviale. Nga kjo del se duhet\u2026<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><\/p>\n<h3>Detyra<\/h3>\n<p><\/p>\n<p>Krijojm\u00eb 3 sh\u00ebrbime. E para prej tyre \u00ebsht\u00eb Sh\u00ebrbimi i p\u00ebrdit\u00ebsimit t\u00eb DB. Ky sh\u00ebrbim, kur merr t\u00eb dh\u00ebna t\u00eb reja nga nj\u00eb sistem i jasht\u00ebm, p\u00ebrdit\u00ebson t\u00eb dh\u00ebnat n\u00eb baz\u00ebn e t\u00eb dh\u00ebnave dhe gjeneron nj\u00eb skedar n\u00eb formatin CSV, p\u00ebr ta transferuar at\u00eb n\u00eb sistemin tjet\u00ebr. Aktivizohet pika fundore e sh\u00ebrbimit t\u00eb dyt\u00eb \u2014 Sh\u00ebrbimi i transportit p\u00ebrmes FTP, i cili merr skedarin e d\u00ebrguar, e validon at\u00eb dhe e ruan n\u00eb hap\u00ebsir\u00ebn e skedar\u00ebve p\u00ebrmes FTP. Sh\u00ebrbimi i tret\u00eb \u2014 Sh\u00ebrbimi i transferimit t\u00eb t\u00eb dh\u00ebnave p\u00ebr konsumatorin, punon asinkronisht me dy sh\u00ebrbimet e para. Ai pranon nj\u00eb k\u00ebrkes\u00eb nga nj\u00eb sistem i jasht\u00ebm p\u00ebr t\u00eb marr\u00eb skedarin p\u00ebr t\u00eb cilin u fol m\u00eb lart, merr skedarin e gatsh\u00ebm t\u00eb p\u00ebrgjigjjes, e modifikon at\u00eb (p\u00ebrdit\u00ebson fushat id, description, linkToFile) dhe d\u00ebrgon p\u00ebrgjigjen n\u00eb form\u00ebn e nj\u00eb mesazhi SOAP. Pra, n\u00eb p\u00ebrgjith\u00ebsi, pamja \u00ebsht\u00eb k\u00ebshtu: dy sh\u00ebrbimet e para fillojn\u00eb pun\u00ebn e tyre vet\u00ebm kur vijn\u00eb t\u00eb dh\u00ebna p\u00ebr p\u00ebrdit\u00ebsim. Sh\u00ebrbimi i tret\u00eb punon vazhdimisht pasi konsumator\u00ebt e informacionit jan\u00eb shum\u00eb, rreth 1000 k\u00ebrkesa p\u00ebr t\u00eb dh\u00ebna n\u00eb minut\u00eb. Sh\u00ebrbimet jan\u00eb gjithmon\u00eb t\u00eb disponueshme dhe instancat e tyre ndodhen n\u00eb mjedise t\u00eb ndryshme, si testi, demo, para-prodhimi dhe prodhimi. M\u00eb posht\u00eb paraqitet skema e funksionimit t\u00eb k\u00ebtyre sh\u00ebrbimeve. Menj\u00ebher\u00eb do t\u00eb sqaroj se disa detaje jan\u00eb thjeshtuar p\u00ebr t\u00eb shmangur kompleksitetin e tep\u00ebrt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2013 Nj\u00eb p\u00ebrmbledhje e mund\u00ebsive n\u00eb praktik\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/1edca5d5e917d8ac55ac96e892e816dd.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"tehnicheskoe-uglublenie\">Thellimi teknik<\/h3>\n<p><\/p>\n<p>Kur planifikimin e zgjidhjes s\u00eb detyr\u00ebs, s\u00eb pari u vendos t\u00eb krijohen aplikacione n\u00eb java duke p\u00ebrdorur Spring framework, me balancuesin Nginx, baz\u00ebn e t\u00eb dh\u00ebnave Postgres dhe disa teknologji t\u00eb tjera. P\u00ebr shkak se koha p\u00ebr zhvillimin e zgjidhjes teknike lejonte shqyrtimin e qasjeve t\u00eb tjera p\u00ebr zgjidhjen e k\u00ebsaj detyre, u fokusua n\u00eb teknologjin\u00eb e njohur n\u00eb disa rrethe, Apache NIFI. T\u00eb them t\u00eb drejt\u00ebn, kjo teknologji na ndihmoi t\u00eb v\u00ebrejm\u00eb k\u00ebto 3 sh\u00ebrbime. N\u00eb k\u00ebt\u00eb artikull do t\u00eb p\u00ebrshkruhet zhvillimi i sh\u00ebrbimit t\u00eb transportit t\u00eb skedar\u00ebve dhe sh\u00ebrbimit t\u00eb transferimit t\u00eb t\u00eb dh\u00ebnave te konsumatori, megjithat\u00eb, n\u00ebse artikulli do t\u00eb pranohet, do t\u00eb shkruaj mbi sh\u00ebrbimin e p\u00ebrdit\u00ebsimit t\u00eb t\u00eb dh\u00ebnave n\u00eb baz\u00ebn e t\u00eb dh\u00ebnave.<\/p>\n<p><\/p>\n<h3 id=\"chto-eto-takoe\">\u00c7far\u00eb \u00ebsht\u00eb kjo<\/h3>\n<p><\/p>\n<p>NIFI p\u00ebrfaq\u00ebson nj\u00eb arkitektur\u00eb t\u00eb shp\u00ebrndar\u00eb p\u00ebr ngarkimin dhe p\u00ebrpunimin e shpejt\u00eb t\u00eb t\u00eb dh\u00ebnave n\u00eb paralel, nj\u00eb num\u00ebr t\u00eb madh plugins p\u00ebr burimet dhe transformimet, versionimin e konfigurimeve dhe shum\u00eb m\u00eb tep\u00ebr. Nj\u00eb bonus t\u00eb k\u00ebndsh\u00ebm \u00ebsht\u00eb se \u00ebsht\u00eb shum\u00eb i thjesht\u00eb p\u00ebr t'u p\u00ebrdorur. Proceset triviale, si getFile, sendHttpRequest dhe t\u00eb tjera \u2014 mund t\u00eb paraqiten si katror\u00eb. \u00c7do katror p\u00ebrfaq\u00ebson nj\u00eb proces, nd\u00ebrveprimi i t\u00eb cilit mund t\u00eb shihet n\u00eb ilustrimin m\u00eb posht\u00eb. Dokumentacioni m\u00eb i holl\u00ebsish\u00ebm mbi nd\u00ebrveprimin dhe konfigurimin e proceseve \u00ebsht\u00eb shkruar <noindex><a rel=\"nofollow\" href=\"https:\/\/nifi.apache.org\/docs.html\">k\u00ebtu<\/a><\/noindex> , p\u00ebr ata q\u00eb flasin rusisht \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.arenadata.io\/ads\/UserNIFI\/index.html\">k\u00ebtu<\/a><\/noindex>. N\u00eb dokumentacion \u00ebsht\u00eb p\u00ebrshkruar shk\u00eblqyesh\u00ebm si t\u00eb shkarkoni dhe filloni NIFI, si dhe si t\u00eb krijoni procese, ato jan\u00eb katror\u00ebt<br \/>\nIdeja p\u00ebr t\u00eb shkruar k\u00ebt\u00eb artikull lindi pas nj\u00eb k\u00ebrkimi t\u00eb gjat\u00eb dhe strukturimit t\u00eb informacionit t\u00eb marr\u00eb n\u00eb di\u00e7ka t\u00eb kuptueshme, si dhe d\u00ebshira p\u00ebr t\u00eb leht\u00ebsuar pak jet\u00ebn e zhvilluesve t\u00eb ardhsh\u00ebm.<\/p>\n<p><\/p>\n<h3 id=\"primer\">Shembulli<\/h3>\n<p><\/p>\n<p>K\u00ebtu shqyrtohet nj\u00eb shembull se si ndodhin nd\u00ebrveprimet mes katror\u00ebve. Skema e p\u00ebrgjithshme \u00ebsht\u00eb mjaft e thjesht\u00eb: Marrim nj\u00eb k\u00ebrkes\u00eb HTTP (Teoretikisht me nj\u00eb skedar n\u00eb trup t\u00eb k\u00ebrkes\u00ebs. P\u00ebr t\u00eb demonstruar mund\u00ebsit\u00eb e NIFI, n\u00eb k\u00ebt\u00eb shembull, k\u00ebrkesa fillon procesin e marrjes s\u00eb skedarit nga depoja lokale), pastaj d\u00ebrgojm\u00eb nj\u00eb p\u00ebrgjigje q\u00eb tregon se k\u00ebrkesa \u00ebsht\u00eb marr\u00eb, paralelisht nis procesi i marrjes s\u00eb skedarit nga depoja dhe m\u00eb pas procesi i transferimit t\u00eb tij p\u00ebrmes FTP n\u00eb depo. \u00cbsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb theksohet se proceset nd\u00ebrveprojn\u00eb me nj\u00ebri-tjetrin p\u00ebrmes asaj q\u00eb quhet flowFile. Kjo \u00ebsht\u00eb nj\u00eb entitet bazik n\u00eb NIFI q\u00eb ruan atributet dhe p\u00ebrmbajtjen. P\u00ebrmbajtja \u2014 t\u00eb dh\u00ebnat q\u00eb p\u00ebrfaq\u00ebsohen nga skedari i rrjedh\u00ebs. Pra, n\u00eb m\u00ebnyr\u00eb bruto, n\u00ebse merrni nj\u00eb skedar nga nj\u00eb katror dhe e d\u00ebrgoni at\u00eb n\u00eb nj\u00eb tjet\u00ebr, p\u00ebrmbajtja do t\u00eb jet\u00eb skedari juaj.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2013 Nj\u00eb p\u00ebrmbledhje e mund\u00ebsive n\u00eb praktik\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/2649a29dcc9155ae7734db44fc6d3f9a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Si\u00e7 mund ta vini re \u2014 n\u00eb k\u00ebt\u00eb ilustrim \u00ebsht\u00eb p\u00ebrshkruar procesi i p\u00ebrgjithsh\u00ebm. HandleHttpRequest \u2014 merr k\u00ebrkesat, ReplaceText \u2014 gjeneron trupin e p\u00ebrgjigjes, HandleHttpResponse \u2014 jep p\u00ebrgjigjen. FetchFile \u2014 merr skedarin nga depoja e skedar\u00ebve dhe e d\u00ebrgon n\u00eb katrorin PutSftp \u2014 e vendos k\u00ebt\u00eb skedar n\u00eb FTP, n\u00eb adres\u00ebn e specifikuar. Tani m\u00eb shum\u00eb rreth k\u00ebtij procesi. <\/p>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb rast \u2014 k\u00ebrkesa \u00ebsht\u00eb fillimi i gjith\u00e7kaje. Le t\u00eb shohim parametrat e saj t\u00eb konfigurimit. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2013 Nj\u00eb p\u00ebrmbledhje e mund\u00ebsive n\u00eb praktik\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/cf93a09a10ed9aebaae2c10b93619658.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nK\u00ebtu gjith\u00e7ka \u00ebsht\u00eb mjaft triviale p\u00ebrve\u00e7 StandartHttpContextMap \u2014 ky \u00ebsht\u00eb nj\u00eb sh\u00ebrbim q\u00eb lejon d\u00ebrgimin dhe marrjen e k\u00ebrkesave. M\u00eb holl\u00ebsisht dhe madje me shembuj mund t\u00eb shikoni \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/ddewaele.github.io\/http-communication-with-apache-nifi\/\">k\u00ebtu<\/a><\/noindex><\/p>\n<p>Tani le t\u00eb shqyrtojm\u00eb parametrat e konfigurimit t\u00eb katrorit ReplaceText. T\u00ebr\u00eb r\u00ebnd\u00ebsi ka ReplacementValue \u2014 kjo \u00ebsht\u00eb ajo q\u00eb do t'i kthehet p\u00ebrdoruesit si p\u00ebrgjigje. N\u00eb settings mund t\u00eb rregullohet niveli i regjistrimit, log-et mund t\u00eb shihen {ku u desh nifi}\\\/nifi-1.9.2\\\/logs atje gjithashtu ka parametrat failure\\\/success \u2014 duke u bazuar n\u00eb k\u00ebto parametra mund t\u00eb rregullohet procesi n\u00eb t\u00ebr\u00ebsi. Pra, n\u00eb rast t\u00eb nj\u00eb p\u00ebrpunimi t\u00eb suksessh\u00ebm t\u00eb tekstit \u2014 do t\u00eb niset procesi i d\u00ebrgimit t\u00eb p\u00ebrgjigjes p\u00ebr p\u00ebrdoruesin, nd\u00ebrsa n\u00eb rastin tjet\u00ebr thjesht regjistrojm\u00eb nj\u00eb proces t\u00eb d\u00ebshtuar. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2013 Nj\u00eb p\u00ebrmbledhje e mund\u00ebsive n\u00eb praktik\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/97341fd7f6ea34a219a16c2c732a8062.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00eb pronat e HandleHttpResponse nuk ka asgj\u00eb shum\u00eb interesante p\u00ebrve\u00e7 statusit n\u00eb rast t\u00eb krijimit t\u00eb suksessh\u00ebm t\u00eb p\u00ebrgjigjes. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2013 Nj\u00eb p\u00ebrmbledhje e mund\u00ebsive n\u00eb praktik\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/6082c84f81274927fdfbd20378cc252c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Me k\u00ebrkesat dhe p\u00ebrgjigjet u shuguruam \u2014 le t\u00eb kalojm\u00eb n\u00eb marrjen e skedarit dhe vendosjen e tij n\u00eb serverin FTP. FetchFile \u2014 merr skedarin sipas rrug\u00ebs e cila \u00ebsht\u00eb caktuar n\u00eb konfigurim dhe e d\u00ebrgon at\u00eb n\u00eb procesin e ardhsh\u00ebm. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2013 Nj\u00eb p\u00ebrmbledhje e mund\u00ebsive n\u00eb praktik\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/d1368879e13a223404a53ab623ae4079.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u00eb pas, kati PutSftp vendos skedarin n\u00eb storien e skedar\u00ebve. Parametrat e konfigurimit mund t'i shohim m\u00eb posht\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2013 Nj\u00eb p\u00ebrmbledhje e mund\u00ebsive n\u00eb praktik\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/c22648f39bb0ad4e7209911e614d3edf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00cbsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb theksohet se secili kat \u00ebsht\u00eb nj\u00eb proces i ve\u00e7ant\u00eb q\u00eb duhet t\u00eb aktivizohet. Ne shqyrtuam shembullin m\u00eb t\u00eb thjesht\u00eb q\u00eb nuk k\u00ebrkon ndonj\u00eb personalizim t\u00eb komplikuar. Tani do t\u00eb shqyrtojm\u00eb nj\u00eb proces pak m\u00eb t\u00eb komplikuar, ku do t\u00eb shkruajm\u00eb pak m\u00eb shum\u00eb n\u00eb Groovy. <\/p>\n<p><\/p>\n<h3 id=\"bolee-slozhnyy-primer\">Shembulli m\u00eb i komplikuar<\/h3>\n<p><\/p>\n<p>Sh\u00ebrbimi i transferimit t\u00eb t\u00eb dh\u00ebnave p\u00ebr konsumatorin rezultoi pak m\u00eb i komplikuar p\u00ebr shkak t\u00eb procesit t\u00eb modifikimit t\u00eb mesazhit SOAP. Procesi i p\u00ebrgjithsh\u00ebm paraqitet n\u00eb figur\u00ebn m\u00eb posht\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2013 Nj\u00eb p\u00ebrmbledhje e mund\u00ebsive n\u00eb praktik\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/c48aa08c030cc252f9e53ce877329701.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>K\u00ebtu ideja nuk \u00ebsht\u00eb shum\u00eb e komplikuar: mor\u00ebm nj\u00eb k\u00ebrkes\u00eb nga konsumatori se iu nevojiten t\u00eb dh\u00ebna, d\u00ebrguam nj\u00eb p\u00ebrgjigje se mor\u00ebm mesazhin, aktivizuam procesin p\u00ebr marrjen e skedarit t\u00eb p\u00ebrgjigjes, m\u00eb pas e redaktuam me nj\u00eb logjik\u00eb specifike, pas s\u00eb cil\u00ebs e kaluam skedarin te konsumatori n\u00eb form\u00ebn e nj\u00eb mesazhi SOAP n\u00eb server. <\/p>\n<p><\/p>\n<p>Mendoj se nuk ka nevoj\u00eb t\u00eb p\u00ebrshkruaj p\u00ebrs\u00ebri katet q\u00eb pam\u00eb m\u00eb sip\u00ebr \u2014 do t\u00eb kalojm\u00eb menj\u00ebher\u00eb te t\u00eb rejat. N\u00ebse ju nevojitet t\u00eb redaktoni ndonj\u00eb skedar dhe katet e zakonshme si ReplaceText nuk i p\u00ebrmbushin k\u00ebrkesat, do t'ju duhet t\u00eb shkruani skriptin tuaj. Kjo mund t\u00eb b\u00ebhet duke p\u00ebrdorur katin ExecuteGroovyScript. Cil\u00ebsimet e tij jan\u00eb paraqitur m\u00eb posht\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2013 Nj\u00eb p\u00ebrmbledhje e mund\u00ebsive n\u00eb praktik\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/42d6691cf608b1620774426eae7b7027.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ka jan\u00eb dy mund\u00ebsi p\u00ebr t\u00eb ngarkuar skiptin n\u00eb k\u00ebt\u00eb katror. E para \u00ebsht\u00eb p\u00ebrmes ngarkimit t\u00eb nj\u00eb skedari me skiptin. E dyta \u00ebsht\u00eb duke futur skiptin n\u00eb scriptBody. Sa di un\u00eb, katrori executeScript mb\u00ebshtet disa gjuh\u00eb programimi - nj\u00eb prej tyre \u00ebsht\u00eb groovy. Do t\u00eb zhg\u00ebnjej zhvilluesit e java-s - nuk \u00ebsht\u00eb e mundur t\u00eb shkruhen skipte n\u00eb k\u00ebto katror\u00eb. P\u00ebr ata q\u00eb kan\u00eb d\u00ebshir\u00eb t\u00eb madhe - duhet t\u00eb krijoni nj\u00eb katror t\u00eb personalizuar dhe ta futni n\u00eb sistemin NIFI. E gjith\u00eb kjo operacion shoq\u00ebrohet me nj\u00eb s\u00ebr\u00eb t\u00eb gjat\u00eb gjeste, t\u00eb cilat nuk do t'i trajtojm\u00eb brenda k\u00ebtij artikulli. Un\u00eb zgjodha gjuh\u00ebn groovy. M\u00eb posht\u00eb \u00ebsht\u00eb nj\u00eb skipt testues q\u00eb thjesht p\u00ebrdit\u00ebson n\u00eb m\u00ebnyr\u00eb inkrementale id-n\u00eb n\u00eb mesazhin SOAP. \u00cbsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb theksohet. Merrni skedarin nga flowFile, e p\u00ebrdit\u00ebsoni at\u00eb, mos harroni ta ktheoni, t\u00eb p\u00ebrdit\u00ebsuar, p\u00ebrs\u00ebri aty. Gjithashtu, \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb theksohet q\u00eb jo t\u00eb gjitha bibliotekat jan\u00eb t\u00eb lidhura. Mund t\u00eb ndodh\u00eb q\u00eb ju p\u00ebrs\u00ebri do t\u00eb duhet t\u00eb importoni nj\u00eb nga librarit\u00eb. Nj\u00eb tjet\u00ebr disavantazh \u00ebsht\u00eb se skiptin n\u00eb k\u00ebt\u00eb katror \u00ebsht\u00eb mjaft e v\u00ebshtir\u00eb ta debagoni. Ekziston nj\u00eb m\u00ebnyr\u00eb p\u00ebr t'u lidhur me JVM NIFI dhe p\u00ebr t\u00eb filluar procesin e debagimit. Personalisht, kam nisur nj\u00eb aplikacion lokal dhe kam simuluar marrjen e skedarit nga sesioni. Edhe p\u00ebr debagimin kam punuar lokalish. Gabimet q\u00eb dalin gjat\u00eb ngarkimit t\u00eb skiptit jan\u00eb mjaft t\u00eb lehta p\u00ebr t'u gjetur n\u00eb Google dhe shkruhen nga vet\u00eb NIFI n\u00eb log.<\/p>\n<p><\/p>\n<pre><code class=\"java\">import org.apache.commons.io.IOUtils\nimport groovy.xml.XmlUtil\nimport java.nio.charset.*\nimport groovy.xml.StreamingMarkupBuilder\n\ndef flowFile = session.get()\nif (!flowFile) return\ntry {\n    flowFile = session.write(flowFile, { inputStream, outputStream -&gt;\n        String result = IOUtils.toString(inputStream, \"UTF-8\");\n        def recordIn = new XmlSlurper().parseText(result)\n        def element = recordIn.depthFirst().find {\n            it.name() == 'id'\n        }\n\n        def newId = Integer.parseInt(element.toString()) + 1\n        def recordOut = new XmlSlurper().parseText(result)\n        recordOut.Body.ClientMessage.RequestMessage.RequestContent.content.MessagePrimaryContent.ResponseBody.id = newId\n\n        def res = new StreamingMarkupBuilder().bind { mkp.yield recordOut }.toString()\n        outputStream.write(res.getBytes(StandardCharsets.UTF_8))\n} as StreamCallback)\n     session.transfer(flowFile, REL_SUCCESS)\n}\ncatch(Exception e) {\n    log.error(\"Gabim gjat\u00eb procesimit t\u00eb validate.groovy\", e)\n    session.transfer(flowFile, REL_FAILURE)\n}<\/code><\/pre>\n<p><\/p>\n<p>N\u00eb t\u00eb v\u00ebrtet\u00eb, k\u00ebtu p\u00ebrfundon personalizimi i katrorit. M\u00eb pas, skedari i p\u00ebrdit\u00ebsuar kalon n\u00eb katrorin q\u00eb merret me d\u00ebrgimin e skedarit n\u00eb server. M\u00eb posht\u00eb jan\u00eb cil\u00ebsimet e k\u00ebtij katrori.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2013 Nj\u00eb p\u00ebrmbledhje e mund\u00ebsive n\u00eb praktik\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/706c53d8deaf3d1ef47bd337e639197a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebrshkruajm\u00eb metod\u00ebn me t\u00eb cil\u00ebn do t\u00eb d\u00ebrgohet mesazhi SOAP. Shkruajm\u00eb se ku. M\u00eb pas duhet t\u00eb tregojm\u00eb se \u00ebsht\u00eb sakt\u00ebsisht SOAP.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2013 Nj\u00eb p\u00ebrmbledhje e mund\u00ebsive n\u00eb praktik\u00eb\" src=\"\/wp-content\/uploads\/2019\/08\/7206bc2a1c66a0204c0589daf35fd328.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Shtojm\u00eb disa pron\u00ebsi si host dhe veprimi (soapAction). Ruajm\u00eb, kontrollojm\u00eb. M\u00eb shum\u00eb informacion se si t\u00eb d\u00ebrgoni k\u00ebrkesa SOAP mund t\u00eb shihni. <noindex><a rel=\"nofollow\" href=\"https:\/\/stackoverflow.com\/questions\/49457764\/nifi-how-to-use-invokehttp-processor-with-soap\/49565048\">k\u00ebtu<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Kemi shqyrtuar disa mund\u00ebsi p\u00ebr p\u00ebrdorimin e proceseve NIFI. Si nd\u00ebrveprojn\u00eb ato dhe \u00e7far\u00eb p\u00ebrfitimi real p\u00ebrfitojm\u00eb. Shembujt e shqyrtuar jan\u00eb testues dhe pak ndryshojn\u00eb nga ajo q\u00eb \u00ebsht\u00eb realisht n\u00eb prodhim. Shpresoj se ky artikull do t\u00eb jet\u00eb disi i dobish\u00ebm p\u00ebr zhvilluesit. Faleminderit p\u00ebr v\u00ebmendjen. N\u00ebse keni ndonj\u00eb pyetje \u2014 shkruani. Do t\u00eb p\u00ebrpiqem t\u00eb p\u00ebrgjigjem.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465299\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0422\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043d\u0430 \u043c\u043e\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439. \u041d\u0430\u0447\u043d\u0443 \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u0438. \u041d\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u043c \u043c\u0438\u0442\u0438\u043d\u0433\u0435, \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0441\u043a\u0430\u0437\u0430\u043b\u0438, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0441 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439. \u041f\u043e\u0434 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u044d\u0442\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043c \u0441\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0447\u0435\u0440\u0435\u0437 HTTP \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0435\u043d\u0434\u043f\u043e\u0438\u043d\u0442, \u0430 \u043c\u044b, \u043a\u0430\u043a \u044d\u0442\u043e \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u0441\u043b\u0430\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28196,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-37567","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0422\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043d\u0430 \u043c\u043e\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439. \u041d\u0430\u0447\u043d\u0443 \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/news\/apache-nifi-kratkij-obzor-vozmozhnostej-na-praktike\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Apache NIFI \u2014 \u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0422\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043d\u0430 \u043c\u043e\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439. \u041d\u0430\u0447\u043d\u0443 \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/news\/apache-nifi-kratkij-obzor-vozmozhnostej-na-praktike\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:18:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:18:22+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Apache NIFI \u2014 nj\u00eb p\u00ebrmbledhje e shkurt\u00ebr e mund\u00ebsive n\u00eb praktik\u00eb | ProHoster","description":"Hyrje Ka ndodhur q\u00eb n\u00eb vendin tim aktual t\u00eb pun\u00ebs kam pasur nevoj\u00eb t\u00eb njoh me k\u00ebt\u00eb teknologji. Do t\u00eb filloj me nj\u00eb histori t\u00eb vog\u00ebl p\u00ebrpara.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/news\/apache-nifi-kratkij-obzor-vozmozhnostej-na-praktike","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Apache NIFI \u2014 \u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 | ProHoster","og:description":"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0422\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043d\u0430 \u043c\u043e\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439. \u041d\u0430\u0447\u043d\u0443 \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u0438.","og:url":"https:\/\/prohoster.info\/sq\/blog\/news\/apache-nifi-kratkij-obzor-vozmozhnostej-na-praktike","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:18:22+00:00","article:modified_time":"2019-10-31T19:18:22+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37567","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 18:24:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:24:24","updated":"2026-01-23 18:24:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/37567","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=37567"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/37567\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/28196"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=37567"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=37567"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=37567"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}