Apache NIFI - Ose Va'aiga Aotelega o Fa'atinoga i Fa'atinoga

Faatomuaga

Na tupu i loʻu nofoaga faigaluega i le taimi nei sa tatau ona ou masani i lenei tekinolosi. O le a ou amata i sina talaaga laitiiti. I le isi fonotaga, na taʻu mai i le matou 'au e manaʻomia ona matou fatuina le tuʻufaʻatasia ma faiga iloa. O le tuʻufaʻatasia o lona uiga o lenei faiga lauiloa o le a tuʻuina mai ia i matou talosaga e ala i le HTTP i se pito faʻapitoa, ma matou, e ese lava, o le a toe faʻafoʻi tali i le tulaga o se feʻau SOAP. O mea uma e foliga mai e faigofie ma faatauvaa. Mai lenei mea e mulimuli mai e te manaʻomia ...

Faamoemoega

Fausia 3 auaunaga. Muamua o latou o le Database Update Service. O lenei 'auʻaunaga, pe a oʻo mai faʻamatalaga fou mai se vaega lona tolu, faʻafouina faʻamaumauga i totonu o faʻamaumauga ma fatuina se faila i le CSV format e faʻafeiloaʻi ai i le isi faiga. O le fa'ai'uga o le 'au'aunaga lona lua e ta'ua - o le FTP Transport Service, lea na te mauaina le faila na tu'uina atu, fa'amaonia, ma tu'u i le teuina o faila e ala i le FTP. O le auaunaga lona tolu, o le au'aunaga fesiitaiga o fa'amatalaga fa'atau, e galulue fa'atasi ma le lua muamua. Na te mauaina se talosaga mai se isi vaega i fafo e maua ai le faila o loʻo talanoaina i luga, ave le faila tali sauni, faʻaleleia (faʻafouina le id, faʻamatalaga, linkToFile fanua) ma auina atu le tali i le tulaga o se savali SOAP. O lona uiga, o le ata atoa o loʻo faʻapea: o auaunaga muamua e lua e amata a latou galuega pe a oʻo mai faʻamaumauga mo le faʻafouina. O le auaunaga lona tolu e galue i taimi uma ona o loʻo i ai le tele o tagata faʻatau o faʻamatalaga, e uiga i 1000 talosaga mo faʻamatalaga i minute. 'Au'aunaga o lo'o avanoa i taimi uma ma o latou fa'ata'ita'iga o lo'o i totonu o si'osi'omaga 'ese'ese, e pei o su'ega, fa'ata'ita'iga, fa'ata'ita'iga muamua ma le gaosiga. O lo'o i lalo le ata o le fa'aogaina o nei auaunaga. Sei ou faamanino atu i le taimi lava lena o nisi auiliiliga ua faafaigofieina e aloese ai mai faigata le manaomia.

Apache NIFI - Ose Va'aiga Aotelega o Fa'atinoga i Fa'atinoga

Fa'alolotoina Fa'ainisinia

Pe a fuafuaina se fofo i le faʻafitauli, na matou filifili muamua e fai talosaga i Java e faʻaaoga ai le Spring framework, Nginx balancer, Postgres database ma isi mea faʻapitoa ae le o mea faʻapitoa. Talu mai le taimi e atiaʻe ai se fofo faʻapitoa na faʻatagaina ai i matou e mafaufau i isi auala e foia ai lenei faʻafitauli, na paʻu atu la matou vaai i luga o le tekonolosi Apache NIFI, lea e masani i nisi o liʻo. O le a ou fai atu i le taimi lava lena o lenei tekinolosi ua mafai ai ona matou matauina nei auaunaga e 3. O lenei tusiga o le a faʻamatalaina le atinaʻeina o se faila felauaiga auaunaga ma se faʻamatalaga fesiitaiga auaunaga i le tagata faʻatau, ae afai e aoga le tusiga, o le a ou tusia e uiga i le auaunaga mo le faʻafouina o faʻamaumauga i totonu o faʻamaumauga.

O le a le mea?

O le NIFI o se faʻataʻitaʻiga tufatufaina mo le faʻapipiʻiina vave ma le faʻatulagaina o faʻamaumauga, se numera tele o faʻapipiʻi mo punaoa ma suiga, faʻaliliuga o faʻasalalauga ma sili atu. O se ponesi manaia e matua faigofie lava ona faʻaoga. O faiga fa'atauva'a e pei ole getFile, sendHttpRequest ma isi e mafai ona fa'atusalia o sikuea. O sikuea taʻitasi e fai ma sui o se faʻagasologa, o le fegalegaleaiga e mafai ona vaʻaia i le ata o loʻo i lalo. Ua tusia nisi fa'amatalaga au'ili'ili i feso'ota'iga fa'atulagaina iinei , mo i latou e tautala Rusia - iinei. O faʻamaumauga o loʻo faʻamatalaina lelei pe faʻafefea ona tatala ma faʻatautaia le NIFI, faʻapea foʻi ma le auala e fai ai faiga, e taʻua foi o sikuea
O le manatu e tusi se tusiga na fanau mai ina ua mavae se suʻesuʻega umi ma le faʻatulagaina o faʻamatalaga na maua i se mea malamalama, faʻapea foʻi ma le manaʻoga e faʻafaigofie le olaga mo tagata atinaʻe i le lumanaʻi.

Faataitaiga:

O se faʻataʻitaʻiga o auala e fegalegaleai ai sikuea ma le tasi ma le isi. O le fuafuaga lautele e fai si faigofie: Matou te mauaina se talosaga HTTP (I le teori, ma se faila i le tino o le talosaga. Ina ia faʻaalia le gafatia o le NIFI, i lenei faʻataʻitaʻiga o le talosaga e amata ai le faagasologa o le mauaina o se faila mai le teuina o faila i le lotoifale. ), ona matou toe lafo atu lea o se tali ua maua mai le talosaga, e tutusa ma le faagasologa o le mauaina o se faila mai le FH ona sosoo ai lea ma le faagasologa o le siitia atu e ala i le FTP i le FH. E taua le faʻamalamalamaina o faiga e fegalegaleai ai le tasi ma le isi e ala i le mea e taʻua o le flowFile. Ole vaega fa'avae lea ile NIFI e teu ai uiga ma anotusi. O le anotusi o faʻamatalaga o loʻo faʻatusalia e le faila faila. O lona uiga, pe a tautala, afai e te mauaina se faila mai le tasi sikuea ma tuʻuina atu i le isi, o mea o le a avea ma au faila.

Apache NIFI - Ose Va'aiga Aotelega o Fa'atinoga i Fa'atinoga

E pei ona e vaʻaia, o lenei ata o loʻo faʻaalia ai le faagasologa lautele. HandleHttpRequest - talia talosaga, ReplaceText - fa'atupuina se tino tali, HandleHttpResponse - auina atu se tali. FetchFile - maua se faila mai le teuina o faila, faʻafeiloaʻi i le sikuea PutSftp - tuʻu lenei faila ile FTP, ile tuatusi faʻapitoa. O le taimi nei e uiga i lenei faiga.

I lenei tulaga, o le talosaga o le amataga lea o mea uma. Se'i o tatou va'ava'ai i ona fa'atulagaga fa'atulagaina.

Apache NIFI - Ose Va'aiga Aotelega o Fa'atinoga i Fa'atinoga

O mea uma iinei e matua le taua sei vagana ai StandardHttpContextMap - o se ituaiga o auaunaga e mafai ai ona e auina atu ma maua talosaga. I nisi auiliiliga ma e oʻo lava i faʻataʻitaʻiga, e mafai ona e vaʻai - iinei

O le isi, se'i o tatou va'ava'ai i le Su'egaText fa'asologa o fa'asologa o le sikuea. E taua le faʻalogo i le ReplacementValue - o le mea lea o le a toe faʻafoʻi atu i le tagata faʻaoga i le tulaga o se tali. I tulaga e mafai ona e fetuutuunai le tulaga o le logging, e mafai ona e vaʻai i ogalaau {lea na e unpacked nifi}/nifi-1.9.2/logs, o loʻo i ai foʻi faʻaletonu / manuia parakalafa - faʻavae i luga o nei taʻiala e mafai ona e faʻatonutonuina le faagasologa atoa. . O lona uiga, i le tulaga o le faagasologa o tusitusiga manuia, o le a valaʻau le faagasologa o le tuʻuina atu o se tali i le tagata faʻaoga, ma i se isi tulaga o le a matou faʻamauina le faagasologa le manuia.

Apache NIFI - Ose Va'aiga Aotelega o Fa'atinoga i Fa'atinoga

E leai se mea e sili ona manaia i le HandleHttpResponse meatotino sei vagana ai le tulaga pe a manuia le faia o se tali.

Apache NIFI - Ose Va'aiga Aotelega o Fa'atinoga i Fa'atinoga

Ua matou fa'avasegaina le talosaga ma le tali - se'i o tatou aga'i atu i le mauaina o le faila ma tu'u i luga o le FTP server. FetchFile - maua se faila i le ala o loʻo faʻamaonia i totonu o faʻatulagaga ma pasi atu i le isi gaioiga.

Apache NIFI - Ose Va'aiga Aotelega o Fa'atinoga i Fa'atinoga

Ona sosoo ai lea ma le PutSftp sikuea - tuʻu le faila i le faila faila. E mafai ona tatou vaʻai i faʻamaufaʻailoga o loʻo i lalo.

Apache NIFI - Ose Va'aiga Aotelega o Fa'atinoga i Fa'atinoga

E taua le gauai atu i le mea moni o sikuea taʻitasi o se faʻagasologa eseese e tatau ona faʻalauiloa. Na matou tilotilo i le faʻataʻitaʻiga sili ona faigofie e le manaʻomia ai soʻo se faʻalavelave faʻapitoa. Ma le isi, o le a tatou vaʻavaʻai i le faʻagasologa e sili atu ona lavelave, lea o le a tatou tusia ai sina mea itiiti i luga o vaʻa.

Fa'ata'ita'iga sili atu ona lavelave

O le fa'aliliuga o fa'amaumauga i le tagata fa'atau na fa'aalia e fai si lavelave ona o le fa'agasologa o le suiga o le fe'au SOAP. O le faagasologa lautele o loʻo faʻaalia i le ata o loʻo i lalo.

Apache NIFI - Ose Va'aiga Aotelega o Fa'atinoga i Fa'atinoga

O iinei o le manatu e le o se mea faigata tele: matou te mauaina se talosaga mai le tagata faʻatau na te manaʻomia faʻamaumauga, auina atu se tali na ia mauaina se feʻau, amata le faagasologa o le mauaina o le faila tali, ona faʻasaʻo lea ma se manatu patino, ona fesiita'i le faila ile tagata fa'atau ile tulaga ole fe'au SOAP ile server.

Ou te manatu e le toe manaʻomia ona toe faʻamatalaina na sikuea na tatou vaʻaia i luga - seʻi o tatou agai saʻo i mea fou. Afai e te mana'omia le fa'asa'oina o so'o se faila ma e le talafeagai fa'ailoga masani o le ReplaceText, e tatau ona e tusia lau lava tusitusiga. E mafai ona faia lenei mea ile fa'aoga ole ExecuteGroogyScript square. O ona faatulagaga o loʻo tuʻuina atu i lalo.

Apache NIFI - Ose Va'aiga Aotelega o Fa'atinoga i Fa'atinoga

E lua filifiliga mo le utaina o le tusitusiga i lenei sikuea. Muamua o le la'uina lea o se faila ma se tusitusiga. O le lona lua o le fa'aofiina lea o se tusitusiga i totonu o le scriptBody. E pei ona ou iloa, o le executeScript square e lagolagoina le tele o gagana - o se tasi oi latou o le groovy. O le a ou le fiafia i tagata atinaʻe java - e le mafai ona e tusia ni tusitusiga i java i ia sikuea. Mo i latou e manaʻo moni i ai, e tatau ona e fatuina lau lava sikuea masani ma faʻaopopo i le NIFI system. O lenei taʻaloga atoa e faʻatasi ma se siva umi ma se topa, lea o le a tatou le taulimaina i lenei tusiga. Sa ou filifilia le gagana faufau. O loʻo i lalo se faʻataʻitaʻiga faʻataʻitaʻiga e naʻo le faʻafouina o le id i se feʻau SOAP. E taua le matauina. E te ave le faila mai le flowFile ma faʻafouina, aua neʻi galo e te manaʻomia le toe tuʻu iina, faʻafouina. E taua foi le matauina e le o faletusi uma e aofia ai. E ono tupu e tatau lava ona e fa'aulufale mai se tasi o libs. O le isi fa'aletonu o le tusitusiga i lenei sikuea e fai si faigata ona debug. O loʻo i ai se auala e faʻafesoʻotaʻi ai le NIFI JVM ma amata le faʻaogaina o le faʻaogaina. O le tagata lava ia, na ou faʻalauiloaina se talosaga i le lotoifale ma faʻataʻitaʻiina le mauaina o se faila mai le sauniga. Sa ou faia foi le debugging i le lotoifale. O mea sese e aliali mai pe a faʻapipiʻiina se tusitusiga e faigofie tele i Google ma e tusia e le NIFI lava ia i le ogalaau.

import org.apache.commons.io.IOUtils
import groovy.xml.XmlUtil
import java.nio.charset.*
import groovy.xml.StreamingMarkupBuilder

def flowFile = session.get()
if (!flowFile) return
try {
    flowFile = session.write(flowFile, { inputStream, outputStream ->
        String result = IOUtils.toString(inputStream, "UTF-8");
        def recordIn = new XmlSlurper().parseText(result)
        def element = recordIn.depthFirst().find {
            it.name() == 'id'
        }

        def newId = Integer.parseInt(element.toString()) + 1
        def recordOut = new XmlSlurper().parseText(result)
        recordOut.Body.ClientMessage.RequestMessage.RequestContent.content.MessagePrimaryContent.ResponseBody.id = newId

        def res = new StreamingMarkupBuilder().bind { mkp.yield recordOut }.toString()
        outputStream.write(res.getBytes(StandardCharsets.UTF_8))
} as StreamCallback)
     session.transfer(flowFile, REL_SUCCESS)
}
catch(Exception e) {
    log.error("Error during processing of validate.groovy", e)
    session.transfer(flowFile, REL_FAILURE)
}

O le mea moni, o le mea lea e muta ai le fa'avasegaina o le sikuea. O le isi, o le faila fou e faʻafeiloaʻi i le sikuea, lea e nafa ma le lafoina o le faila i le server. O lo'o i lalo tulaga mo lenei sikuea.

Apache NIFI - Ose Va'aiga Aotelega o Fa'atinoga i Fa'atinoga

Matou te faʻamatalaina le auala e faʻasalalau ai se feʻau SOAP. Matou te tusi i fea. Sosoo ai e tatau ona e fa'ailoa o le SOAP lea.

Apache NIFI - Ose Va'aiga Aotelega o Fa'atinoga i Fa'atinoga

Fa'aopoopo nisi mea e pei o le talimalo ma le gaioiga (soapAction). Matou te teuina ma siaki. E mafai ona e va'ai nisi fa'amatalaga ile auala e lafo ai talosaga SOAP iinei

Sa matou va'ava'ai i nisi o filifiliga mo le fa'aogaina o faiga NIFI. E faapefea ona latou fegalegaleai ma o le a lo latou aoga moni? O fa'ata'ita'iga e iloiloina o su'ega ma e ese teisi mai le mea moni e tupu i le taua. Ou te faʻamoemoe o lenei tusiga o le a fai si aoga mo tagata atiae. Faafetai mo lou gauai mai. Afai ei ai ni au fesili, tusi. O le a ou taumafai e tali.

puna: www.habr.com

Faaopoopo i ai se faamatalaga