{"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\/et\/blog\/novosti-interneta\/apache-nifi-kratkij-obzor-vozmozhnostej-na-praktike","title":{"rendered":"Apache NIFI \u2014 Praktiline \u00fclevaade v\u00f5imalustest","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3>Sissejuhatus<\/h3>\n<p><\/p>\n<p>Kuid olen oma praeguses t\u00f6\u00f6kohas pidanud selle tehnoloogiaga tutvuma. Alustan v\u00e4ikese taustaga. <em>tuntud s\u00fcsteemi<\/em>. \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 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043e\u0442\u0432\u0435\u0442\u044b \u0432 \u0432\u0438\u0434\u0435 SOAP \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u0412\u0440\u043e\u0434\u0435 \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e. \u0418\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e&#8230;<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><\/p>\n<h3>\u00dclesanne<\/h3>\n<p><\/p>\n<p>Loo 3 teenust. Esimene neist on Andmebaasi uuendamise teenus. See teenus uuendab andmeid andmebaasis ja genereerib CSV formaadis faili, kui saavad uued andmed v\u00e4listest s\u00fcsteemidest, et edastada see j\u00e4rgmisesse s\u00fcsteemi. K\u00f5neleja on teise teenuse \u2014 FTP edastamise teenuse l\u00f5pp-punkt, mis saab edastatud faili, valideerib selle ja salvestab FTP kaudu failide salvestusse. Kolmas teenus \u2014 Andmete edastamise teenus tarbijale, t\u00f6\u00f6tab as\u00fcnkroonselt kahe esimese teenusega. See v\u00f5tab vastu p\u00e4ringu v\u00e4listest s\u00fcsteemidest, et saada \u00fclal mainitud faili ning v\u00f5tab valmis vastusfaili, muudab seda (uuendab id, description, linkToFile v\u00e4ljad) ja saadab vastuse SOAP s\u00f5numina. Seega on olukord j\u00e4rgmine: esimesed kaks teenust alustavad oma t\u00f6\u00f6d ainult siis, kui uuendamiseks on andmed saabunud. Kolmas teenus t\u00f6\u00f6tab pidevalt, kuna informatsiooni tarbijaid on palju, umbes 1000 p\u00e4ringut andmete saamiseks minutis. Teenused on pidevalt saadaval ja nende instantsid asuvad erinevates keskkondades, nagu test, demo, eeltootmine ja tootmine. Allpool on esitatud nende teenuste t\u00f6\u00f6 schema. Selgitan kohe, et m\u00f5ned detailid on lihtsustatud, et v\u00e4ltida liigset keerukust.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2014 Praktiline \u00fclevaade v\u00f5imalustest\" src=\"\/wp-content\/uploads\/2019\/08\/1edca5d5e917d8ac55ac96e892e816dd.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"tehnicheskoe-uglublenie\">Tehniline s\u00fcvenemine<\/h3>\n<p><\/p>\n<p>Probleemi lahendamise planeerimisel otsustasime esmalt luua Java rakendusi, kasutades Springi raamistikku, Nginx'i koormuse tasakaalustajat, PostgreSQL andmebaasi ja muid tehnilisi ja v\u00e4hem tehnilisi asju. Kuna aega tehnilise lahenduse v\u00e4ljat\u00f6\u00f6tamiseks oli, v\u00f5imaldas see kaaluda ka teisi l\u00e4henemisviise, ja meie t\u00e4helepanu k\u00f6itis teatud ringkondades populaarne tehnoloogia Apache NIFI. T\u00f5eliselt, see tehnoloogia aitas meil m\u00e4rgata neid kolme teenust. Selles artiklis kirjeldatakse faili edastamise teenuse ja andmete edastamise teenuse arendamist, kuid kui artikkel meeldib, kirjutan ka andmete uuendamise teenusest andmebaasis.<\/p>\n<p><\/p>\n<h3 id=\"chto-eto-takoe\">Mis see on<\/h3>\n<p><\/p>\n<p>NIFI on jaotatud arhitektuur kiireks paralleelseks andmete laadimiseks ja t\u00f6\u00f6tlemiseks, suure hulgapluginatega allikatelt ja teisendustelt, konfigureerimise versioonimine ja palju muud. Tore boonus on see, et seda on v\u00e4ga lihtne kasutada. Lihtsaid protsesse, nagu getFile, sendHttpRequest ja teised, saab kujutada ruutudena. Iga ruut esindab mingit protsessi, mille interaktsiooni saab n\u00e4ha alloleval joonisel. T\u00e4iendav dokumentatsioon protsesside seadistamise kohta on kirjutatud <noindex><a rel=\"nofollow\" href=\"https:\/\/nifi.apache.org\/docs.html\">siit<\/a><\/noindex> , venekeelsetele kasutajatele \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.arenadata.io\/ads\/UserNIFI\/index.html\">siit<\/a><\/noindex>. Dokumentatsioonis on suurep\u00e4raselt kirjeldatud, kuidas NIFI lahti pakkida ja k\u00e4ivitada, samuti kuidas luua protsesse, need ongi ruudud<br \/>\nArtikli kirjutamise idee tuli p\u00e4rast pikaajalist teabe otsimist ja struktureerimist, et muuta see millegiks arusaadavaks, samuti soovist veidi kergendada tulevaste arendajate elu.<\/p>\n<p><\/p>\n<h3 id=\"primer\">N\u00e4ide<\/h3>\n<p><\/p>\n<p>Kuidas ruudud omavahel suhtlevad, on \u00fcksikasjalikult illustreeritud j\u00e4rgmistest etappidest. \u00dcldine skeem on \u00fcsna lihtne: saadame HTTP p\u00e4ringu (teoorias koos failiga p\u00e4ringu \u00f5ppusena. NIFI v\u00f5imaluste demonstreerimiseks algab selles n\u00e4ites p\u00e4ring protsessi, mis saadab faili kohalikust failihaldusest), seej\u00e4rel saadame tagasi vastuse, et p\u00e4ring on saadud, samal ajal kui algab faili hankimise protsess failihaldusest ja seej\u00e4rel faili edastamine FTP kaudu teise failihalduse. Oluline on m\u00e4rkida, et protsessid suhtlevad \u00fcksteisega t\u00e4nu nn flowFile'ile. See on NIFI p\u00f5hiolukord, mis salvestab atribuute ja sisu. Sisu t\u00e4hendab andmeid, mis esindavad voolufaili. Teisis\u00f5nu, kui saate faili \u00fchest ruudust ja edastate selle teise, on sisuks teie fail.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2014 Praktiline \u00fclevaade v\u00f5imalustest\" src=\"\/wp-content\/uploads\/2019\/08\/2649a29dcc9155ae7734db44fc6d3f9a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nagu v\u00f5ite m\u00e4rgata, on sellel joonisel kujutatud \u00fcldine protsess. HandleHttpRequest \u2014 v\u00f5tab vastu p\u00e4ringud, ReplaceText \u2014 genereerib vastuse keha, HandleHttpResponse \u2014 edastab vastuse. FetchFile \u2014 saab faili failihaldusest ja edastab selle ruudule PutSftp \u2014 salvestab selle faili FTP-sse, m\u00e4\u00e4ratud aadressile. N\u00fc\u00fcd r\u00e4\u00e4gime sellest protsessist l\u00e4hemalt. <\/p>\n<p><\/p>\n<p>Antud juhul on request k\u00f5ikide algus. Vaatame selle konfiguratsiooniparameetreid. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2014 Praktiline \u00fclevaade v\u00f5imalustest\" src=\"\/wp-content\/uploads\/2019\/08\/cf93a09a10ed9aebaae2c10b93619658.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nSiin on k\u00f5ik \u00fcsna banaalne, v\u00e4lja arvatud StandartHttpContextMap \u2014 see on teenus, mis v\u00f5imaldab saata ja vastu v\u00f5tta p\u00e4ringuid. \u00dcksikasjalikumalt ja isegi n\u00e4idetega saab vaadata \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/ddewaele.github.io\/http-communication-with-apache-nifi\/\">siit<\/a><\/noindex><\/p>\n<p>J\u00e4rgmisena vaatame ReplaceText ruudu konfiguratsiooniparameetreid. Siin on t\u00e4helepanu p\u00f6\u00f6rata ReplacementValue'le \u2014 see on see, mis kasutajale vastusena tagasi tuleb. Seadetest saab reguleerida logimise taset, logisid saab vaadata {kuhu on Nifi lahti pakitud}\/nifi-1.9.2\/logs, seal on ka failure\/success parameetrid \u2014 nende parameetrite p\u00f5hjal saab kogu protsessi reguleerida. St, kui teksti t\u00f6\u00f6tlemine \u00f5nnestub \u2014 kutsutakse v\u00e4lja vastuse saatmise protsess, ja muul juhul logime lihtsalt eba\u00f5nnestunud protsessi. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2014 Praktiline \u00fclevaade v\u00f5imalustest\" src=\"\/wp-content\/uploads\/2019\/08\/97341fd7f6ea34a219a16c2c732a8062.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>HandleHttpResponse omadustes pole erilist huvitavat, v\u00e4lja arvatud staatuse olemasolu, kui vastuse loomine \u00f5nnestub. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2014 Praktiline \u00fclevaade v\u00f5imalustest\" src=\"\/wp-content\/uploads\/2019\/08\/6082c84f81274927fdfbd20378cc252c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Oleme vastuse k\u00fcsimisega selgeks saanud \u2014 liigume edasi faili saamise ja selle paigutamise juurde FTP-serverisse. FetchFile \u2014 saab faili m\u00e4\u00e4ratud seadistustes olevast teest ja edastab selle j\u00e4rgmisele protsessile. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2014 Praktiline \u00fclevaade v\u00f5imalustest\" src=\"\/wp-content\/uploads\/2019\/08\/d1368879e13a223404a53ab623ae4079.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja PutSftp-ruut paigutab faili failihoidlasse. Konfiguratsiooni seaded on allpool.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2014 Praktiline \u00fclevaade v\u00f5imalustest\" src=\"\/wp-content\/uploads\/2019\/08\/c22648f39bb0ad4e7209911e614d3edf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Oluline on m\u00e4rkida, et iga ruut on eraldi protsess, mis tuleb k\u00e4ivitada. Oleme vaadanud k\u00f5ige lihtsamat n\u00e4idet, mis ei n\u00f5ua mingit keerulist kohandamist. J\u00e4rgmisena vaatame veidi keerulisemat protsessi, kus kirjutame natuke gnuud. <\/p>\n<p><\/p>\n<h3 id=\"bolee-slozhnyy-primer\">Keerulisem n\u00e4ide<\/h3>\n<p><\/p>\n<p>Andmete edastus teenus osutus veidi keerulisemaks SOAP s\u00f5numi muutmisprotsessi t\u00f5ttu. \u00dcldine protsess on n\u00e4idatud alloleval joonisel.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2014 Praktiline \u00fclevaade v\u00f5imalustest\" src=\"\/wp-content\/uploads\/2019\/08\/c48aa08c030cc252f9e53ce877329701.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Siin on idee samuti mitte eriti keeruline: saime tarbijalt p\u00e4ringu, et ta vajab andmeid, saatsime vastuse, et oleme s\u00f5numi saanud, k\u00e4ivitasime vastuse faili saamise protsessi, seej\u00e4rel redigeerisime seda teatud loogika j\u00e4rgi ja edastasime faili tarbijale SOAP s\u00f5numina serverisse. <\/p>\n<p><\/p>\n<p>Arvan, et pole m\u00f5tet uuesti kirjeldada neid ruute, mida me varem n\u00e4gime \u2014 liigume otse uute juurde. Kui peate redigeerima m\u00f5nda faili ja tavalised ruudud, nagu ReplaceText, ei sobi, peate kirjutama oma skripti. Selle saab teha ruudu ExecuteGroogyScript abil. Selle seadistused on toodud allpool.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2014 Praktiline \u00fclevaade v\u00f5imalustest\" src=\"\/wp-content\/uploads\/2019\/08\/42d6691cf608b1620774426eae7b7027.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>On kaks varianti skripti laadimiseks selle kuubiku sisse. Esimene on failiga, kus skript on laaditud. Teine \u2014 skripti kopeerimine scriptBody sisse. Teatavasti toetab kuubik executeScript mitut programmeerimiskeelt \u2014 \u00fcks neist on groovy. Java arendajatele pettumuseks \u2014 java keeles ei saa kirjutada skripte sellistes kuubikutes. Neile, kes tahavad v\u00e4ga, tuleb luua oma eritellimusel kuubik ja see NIFI s\u00fcsteemi lisada. Kogu see operatsioon kaasneb \u00fcsna pika tantsuga trikolo, millega me selle artikli raames tegelema ei hakka. Valisin keeleks groovy. Allpool on testskript, mis lihtsalt inkrementeerib id SOAP s\u00f5numis. On oluline m\u00e4rkida, et te v\u00f5tate faili flowFile-st, uuendate seda, kuid \u00e4rge unustage, et see tuleb uuendatuna tagasi sinna panna. Samuti on oluline m\u00e4rkida, et mitte k\u00f5iki raamatukogusid ei ole \u00fchendatud. V\u00f5ib juhtuda, et peate siiski importima m\u00f5ne raamatukogu. Puuduseks on ka see, et skripti on sellel kuubikul \u00fcsna raske siluda. On v\u00f5imalus \u00fchendada JVM NIFI-ga ja alustada silumist. Isiklikult k\u00e4ivitasin kohaliku rakenduse ja simuleerisin faili saamist sessioonist. Silumisega tegelesin samuti kohalikult. Vead, mis ilmnevad skripti laadimisel, on \u00fcsna lihtsalt guugeldatavad ja NIFI kirjutab need logisse.<\/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(\"Error during processing of validate.groovy\", e)\n    session.transfer(flowFile, REL_FAILURE)\n}<\/code><\/pre>\n<p><\/p>\n<p>Kohapeal l\u00f5peb ruudu kohandamine. Seej\u00e4rel edastatakse uuendatud fail ruudule, mis vastutab faili saatmise eest serverisse. Allpool on esitatud selle ruudu seaded.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2014 Praktiline \u00fclevaade v\u00f5imalustest\" src=\"\/wp-content\/uploads\/2019\/08\/706c53d8deaf3d1ef47bd337e639197a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kirjeldame meetodit, mille abil edastatakse SOAP s\u00f5num. \u00dctleme, kuhu see l\u00e4heb. Edasi tuleb m\u00e4rkida, et tegemist on just SOAP-iga.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Apache NIFI \u2014 Praktiline \u00fclevaade v\u00f5imalustest\" src=\"\/wp-content\/uploads\/2019\/08\/7206bc2a1c66a0204c0589daf35fd328.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Lisame m\u00f5ned omadused, n\u00e4iteks host ja tegevus (soapAction). Salvestame, kontrollime. T\u00e4psemat teavet SOAP p\u00e4ringute saatmise kohta v\u00f5ib vaadata. <noindex><a rel=\"nofollow\" href=\"https:\/\/stackoverflow.com\/questions\/49457764\/nifi-how-to-use-invokehttp-processor-with-soap\/49565048\">siin<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Oleme arutanud mitmeid NIFI protsesside rakendamisv\u00f5imalusi. Kuidas nad omavahel suhestuvad ja milline on nende tegelik kasu. Arutatud n\u00e4ited on testversioonid ja pisut erinevad sellest, mis toimub reaalsetes tingimustes. Loodan, et see artikkel on arendajatele veidi kasulik. Ait\u00e4h t\u00e4helepanu eest. Kui teil on k\u00fcsimusi, siis kirjutage. P\u00fc\u00fcan vastata.<\/p>\n<p>Allikas: <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-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - 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. \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\" \/>\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\/et\/blog\/novosti-interneta\/apache-nifi-kratkij-obzor-vozmozhnostej-na-praktike\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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. \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/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 Praktiline \u00fclevaade v\u00f5imalustest | ProHoster","description":"Sissejuhatus. Nii juhtus, et minu praeguses t\u00f6\u00f6kohas pidi mind tutvuma selle tehnoloogiaga. Alustan v\u00e4ikese taustalooga. \u00dchel koosolekul \u00fctles meie meeskonnale, et peame looma integratsiooni tuntud s\u00fcsteemiga. Sellega silmas peeti, et see tuntud s\u00fcsteem saadab meile HTTP kaudu p\u00e4ringud kindlale l\u00f5pp-punktile ning meie, mis v\u00f5ib olla ootamatu, saadame edasi...","canonical_url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/apache-nifi-kratkij-obzor-vozmozhnostej-na-praktike","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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. \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","og:url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37567","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=37567"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37567\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/28196"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=37567"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=37567"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=37567"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}