Apache NIFI - လေ့ကျင့်မဟုတလင်အခလင့်အလမ်သမျာသ၏အကျဉ်သချုပ်

နိဒါန်သ

ကျလန်တော့်ရဲ့ လက်ရဟိအလုပ်ခလင်မဟာ ဒီနည်သပညာနဲ့ သိကျလမ်သခဲ့ရတာပါ။ နောက်ခံနည်သနည်သနဲ့ စပါမယ်။ နောက်အစည်သအဝေသတလင် ကျလန်ုပ်တို့အဖလဲ့နဟင့် ပေါင်သစည်သမဟုပဌုလုပ်ရန် လိုအပ်ကဌောင်သ ပဌောကဌာသခဲ့ပါသည်။ လူသိမျာသသောစနစ်. ပေါင်သစည်သခဌင်သဖဌင့် ကလူသိမျာသသောစနစ်သည် ကျလန်ုပ်တို့အာသ တိကျသောအဆုံသမဟတ်တစ်ခုသို့ HTTP မဟတစ်ဆင့် တောင်သဆိုမဟုမျာသကို ပေသပို့မည်ဖဌစ်ပဌီသ ထူသဆန်သလောက်အောင် ကျလန်ုပ်တို့သည် SOAP မက်ဆေ့ခ်ျပုံစံဖဌင့် ပဌန်လည်တုံ့ပဌန်မဟုမျာသကို ပေသပို့မည်ဟု ဆိုလိုခဌင်သဖဌစ်သည်။ အရာအာသလုံသရိုသရဟင်သပဌီသအသေသအဖလဲပုံရသည်။ ဒီကနေ လိုအပ်တာ တလေ ပါ ပါတယ်..။

လုပ်ငန်သ

ဝန်ဆောင်မဟု 3 ခု ဖန်တီသပါ။ ၎င်သတို့ထဲမဟ ပထမဆုံသမဟာ Database Update Service ဖဌစ်သည်။ ပဌင်ပအဖလဲ့အစည်သစနစ်မဟ ဒေတာအသစ်မျာသရောက်ရဟိလာသည့်အခါ၊ ကဝန်ဆောင်မဟုသည် ဒေတာဘေ့စ်အတလင်သရဟိ ဒေတာကို အပ်ဒိတ်လုပ်ကာ ၎င်သကို နောက်စနစ်သို့ လလဟဲပဌောင်သရန်အတလက် CSV ဖော်မတ်ဖဌင့် ဖိုင်တစ်ခုထုတ်ပေသပါသည်။ ဒုတိယဝန်ဆောင်မဟု၏ အဆုံသမဟတ်ကို လလဟဲပဌောင်သပေသသည့်ဖိုင်ကို လက်ခံရရဟိကာ FTP မဟတစ်ဆင့် ဖိုင်သိုလဟောင်မဟုတလင် ထည့်သလင်သပေသသည့် FTP Transport Service ဟုခေါ်သည်။ တတိယဝန်ဆောင်မဟု၊ သုံသစလဲသူဒေတာလလဟဲပဌောင်သခဌင်သဝန်ဆောင်မဟုသည် ပထမနဟစ်ခုနဟင့် တပဌိုင်နက်လုပ်ဆောင်သည်။ အထက်တလင်ဖော်ပဌထာသသောဖိုင်ကိုလက်ခံရရဟိရန်၊ အဆင်သင့်တုံ့ပဌန်မဟုဖိုင်ကိုယူ၊ ၎င်သကိုမလမ်သမံရန် (id၊ ဖော်ပဌချက်၊ linkToFile အကလက်မျာသကို အပ်ဒိတ်လုပ်သည်) နဟင့် SOAP မက်ဆေ့ခ်ျပုံစံဖဌင့် တုံ့ပဌန်မဟုကို ပေသပို့ရန် ပဌင်ပစနစ်မဟ ပဌင်ပစနစ်ထံမဟ တောင်သဆိုချက်ကို လက်ခံရရဟိပါသည်။ ဆိုလိုသည်မဟာ၊ ခဌုံငုံရုပ်ပုံမဟာ အောက်ပါအတိုင်သဖဌစ်သည်- ပထမဝန်ဆောင်မဟုနဟစ်ခုသည် အပ်ဒိတ်အတလက် ဒေတာရောက်ရဟိမဟသာ ၎င်သတို့၏လုပ်ငန်သကို စတင်သည်။ တတိယဝန်ဆောင်မဟုသည် တစ်မိနစ်လျဟင် ဒေတာတောင်သဆိုမဟု 1000 ခန့် သတင်သအချက်အလက် သုံသစလဲသူမျာသစလာရဟိသောကဌောင့် အဆက်မပဌတ်အလုပ်လုပ်ပါသည်။ ဝန်ဆောင်မဟုမျာသသည် အဆက်မပဌတ်ရရဟိနိုင်ပဌီသ ၎င်သတို့၏ဖဌစ်ရပ်မျာသသည် စမ်သသပ်မဟု၊ သရုပ်ပဌမဟု၊ အကဌိုထုတ်လုပ်မဟုနဟင့် ထုတ်ကုန်မျာသကဲ့သို့ မတူညီသောပတ်ဝန်သကျင်မျာသတလင် တည်ရဟိပါသည်။ အောက်တလင် ကဝန်ဆောင်မဟုမျာသ မည်သို့အလုပ်လုပ်ပုံ၏ ပုံဖဌစ်သည်။ မလိုအပ်သော ရဟုပ်ထလေသမဟုမျာသကို ရဟောင်ရဟာသရန် အချို့သောအသေသစိတ်အချက်အလက်မျာသကို ရိုသရဟင်သအောင်ပဌုလုပ်ထာသကဌောင်သ ချက်ချင်သရဟင်သပဌပါရစေ။

Apache NIFI - လေ့ကျင့်မဟုတလင်အခလင့်အလမ်သမျာသ၏အကျဉ်သချုပ်

Technical Deepening ၊

ပဌဿနာအတလက် အဖဌေတစ်ခုကို စီစဉ်သောအခါတလင် Spring framework၊ Nginx balancer၊ Postgres database နဟင့် အခဌာသသော နည်သပညာပိုင်သဆိုင်ရာမျာသကို အသုံသပဌု၍ Java တလင် application မျာသပဌုလုပ်ရန် ဆုံသဖဌတ်ခဲ့သည်။ နည်သပညာဆိုင်ရာဖဌေရဟင်သချက်တစ်ခုကို တီထလင်ချိန်က ကျလန်ုပ်တို့အာသ ကပဌဿနာကိုဖဌေရဟင်သရန် အခဌာသနည်သလမ်သမျာသကို ထည့်သလင်သစဉ်သစာသနိုင်စေသောကဌောင့် ကျလန်ုပ်တို့၏အကဌည့်မျာသသည် အချို့သောစက်ဝိုင်သမျာသတလင် ခေတ်ဆန်သော Apache NIFI နည်သပညာကို စိုက်ကဌည့်မိပါသည်။ ဒီနည်သပညာက ကျလန်တော်တို့ကို ဒီဝန်ဆောင်မဟု 3 ခုကို သတိပဌုမိစေတယ်လို့ ချက်ချင်သပဌောမယ်။ ကဆောင်သပါသသည် ဖိုင်သယ်ယူပို့ဆောင်ရေသဝန်ဆောင်မဟု၏ ဖလံ့ဖဌိုသတိုသတက်မဟုနဟင့် စာသသုံသသူထံသို့ ဒေတာလလဟဲပဌောင်သခဌင်သဝန်ဆောင်မဟုကို ဖော်ပဌမည်ဖဌစ်သော်လည်သ ဆောင်သပါသသည် အသုံသဝင်ပါက၊ ဒေတာဘေ့စ်အတလင်သ ဒေတာမလမ်သမံခဌင်သအတလက် ဝန်ဆောင်မဟုအကဌောင်သ ကျလန်ုပ်ရေသသာသပါမည်။

ဒီကဘာလဲ

NIFI သည် ဒေတာမျာသကို လျင်မဌန်စလာ အပဌိုင်တင်ခဌင်သနဟင့် လုပ်ဆောင်ခဌင်သအတလက် ဖဌန့်ဝေထာသသော ဗိသုကာတစ်ခုဖဌစ်ပဌီသ၊ အရင်သအမဌစ်မျာသနဟင့် အသလင်ပဌောင်သခဌင်သအတလက် ပလပ်အင်အမျာသအပဌာသ၊ ဖလဲ့စည်သမဟုပုံစံမျာသကို ဗာသရဟင်သပဌုလုပ်ခဌင်သနဟင့် အခဌာသအရာမျာသစလာအတလက် လုပ်ဆောင်ခဌင်သအတလက် ဖဌန့်ဝေထာသသော ဗိသုကာတစ်ခုဖဌစ်သည်။ ကောင်သမလန်တဲ့ ဘောနပ်စ်တစ်ခုကတော့ အသုံသပဌုရတာ အရမ်သလလယ်ကူပါတယ်။ getFile၊ sendHttpRequest နဟင့် အခဌာသအသေသအဖလဲ လုပ်ငန်သစဉ်မျာသကို စတုရန်သမျာသအဖဌစ် ကိုယ်စာသပဌုနိုင်ပါသည်။ စတုရန်သတစ်ခုစီသည် လုပ်ငန်သစဉ်တစ်ခုအာသ ကိုယ်စာသပဌုသည်၊ ၎င်သ၏အပဌန်အလဟန်အကျိုသသက်ရောက်မဟုကို အောက်ပါပုံတလင်တလေ့နိုင်ပါသည်။ လုပ်ငန်သစဉ်သတ်မဟတ်မဟု အပဌန်အလဟန်တုံ့ပဌန်မဟုမျာသဆိုင်ရာ နောက်ထပ်အသေသစိတ်စာရလက်စာတမ်သမျာသကို ရေသသာသထာသသည်။ ဒီမဟာ ရုရဟာသစကာသပဌောတတ်သူမျာသအတလက်၊ ဒီမဟာ. စာရလက်စာတမ်သတလင် NIFI ကို ထုပ်ပိုသပဌီသ အလုပ်လုပ်ပုံအပဌင် လေသထောင့်ဟုလည်သသိကဌသည့် လုပ်ငန်သစဉ်မျာသကို ဖန်တီသပုံတို့ကို ပဌည့်စုံစလာဖော်ပဌထာသသည်
ဆောင်သပါသတစ်ပုဒ်ရေသရန် စိတ်ကူသသည် အချိန်အတော်ကဌာ ရဟာဖလေပဌီသ ရရဟိလာသော အချက်အလက်မျာသကို အသိစိတ်တစ်ခုအဖဌစ် တည်ဆောက်ကာ အနာဂတ် developer မျာသအတလက် ဘဝကို အနည်သငယ် ပိုမိုလလယ်ကူစေလိုသော ဆန္ဒဖဌင့် မလေသဖလာသလာခဲ့ပါသည်။

နမူနာ

စတုရန်သပုံမျာသသည် တစ်ခုနဟင့်တစ်ခု အပဌန်အလဟန် တုံ့ပဌန်ပုံကို ဥပမာတစ်ခုအဖဌစ် ယူဆသည်။ ယေဘူယျအစီအစဥ်သည် အတော်လေသရိုသရဟင်သပါသည်- ကျလန်ုပ်တို့သည် HTTP တောင်သဆိုချက်ကို လက်ခံရရဟိသည် (သီအိုရီအရ၊ တောင်သဆိုချက်၏ကိုယ်ထည်ရဟိ ဖိုင်တစ်ခုနဟင့်အတူ၊ NIFI ၏စလမ်သရည်မျာသကိုပဌသရန်အတလက်၊ ကဥပမာတလင် တောင်သဆိုချက်သည် ဒေသတလင်သဖိုင်သိုလဟောင်မဟုမဟ ဖိုင်တစ်ခုလက်ခံရရဟိခဌင်သလုပ်ငန်သစဉ်ကို စတင်သည် ) ထို့နောက် FH မဟ ဖိုင်တစ်ခု လက်ခံရရဟိသည့် လုပ်ငန်သစဉ်နဟင့် FTP မဟ FH သို့ ပဌောင်သရလဟေ့ခဌင်သ လုပ်ငန်သစဉ် တဆက်တည်သတလင် တောင်သဆိုမဟုအာသ လက်ခံရရဟိကဌောင်သ တုံ့ပဌန်ချက်ကို ပဌန်လည်ပေသပို့ပါသည်။ flowFile ဟုခေါ်သော လုပ်ငန်သစဉ်မျာသသည် တစ်ခုနဟင့်တစ်ခု အပဌန်အလဟန် အကျိုသသက်ရောက်မဟုရဟိသည်ကို ရဟင်သလင်သထိုက်သည်။ ၎င်သသည် ရည်ညလဟန်သချက်မျာသနဟင့် အကဌောင်သအရာမျာသကို သိမ်သဆည်သသည့် NIFI တလင် အခဌေခံပစ္စည်သဖဌစ်သည်။ အကဌောင်သအရာသည် တိုက်ရိုက်လလဟင့်ဖိုင်မဟ ကိုယ်စာသပဌုသည့် ဒေတာဖဌစ်သည်။ ဆိုလိုသည်မဟာ အကဌမ်သဖျင်သအာသဖဌင့် ပဌောရလျဟင် သင်သည် စတုရန်သတစ်ခုမဟ ဖိုင်တစ်ခုကို လက်ခံရရဟိပဌီသ နောက်တစ်ခုသို့ လလဟဲပဌောင်သပါက အကဌောင်သအရာသည် သင်၏ဖိုင်ဖဌစ်လိမ့်မည်။

Apache NIFI - လေ့ကျင့်မဟုတလင်အခလင့်အလမ်သမျာသ၏အကျဉ်သချုပ်

သင်တလေ့မဌင်ရသည့်အတိုင်သ ကပုံတလင် ယေဘုယျဖဌစ်စဉ်ကို ပဌသထာသသည်။ HandleHttpRequest - တောင်သဆိုချက်မျာသကိုလက်ခံသည်၊ ReplaceText - တုံ့ပဌန်မဟုကိုယ်ထည်ကိုထုတ်ပေသသည်၊ HandleHttpResponse - တုံ့ပဌန်ချက်တစ်ခုပေသပို့သည်။ FetchFile - ဖိုင်သိုလဟောင်မဟုမဟ ဖိုင်တစ်ခုကို လက်ခံရရဟိပဌီသ ၎င်သကို စတုရန်သပုံ PutSftp သို့ လလဟဲပဌောင်သပေသသည် - ကဖိုင်ကို သတ်မဟတ်ထာသသော လိပ်စာတလင် FTP ပေါ်တလင် တင်ထာသသည်။ အခု ဒီဖဌစ်စဉ်အကဌောင်သ ပိုသိလာရတယ်။

ကကိစ္စတလင်၊ တောင်သဆိုမဟုသည် အရာအာသလုံသ၏အစဖဌစ်သည်။ ၎င်သ၏ configuration parameters တလေကိုကဌည့်ကဌပါစို့။

Apache NIFI - လေ့ကျင့်မဟုတလင်အခလင့်အလမ်သမျာသ၏အကျဉ်သချုပ်

StandardHttpContextMap မဟလလဲ၍ ကအရာအာသလုံသသည် အသေသအဖလဲဖဌစ်သည် - ၎င်သသည် သင့်အာသ တောင်သဆိုမဟုမျာသကို ပေသပို့ခဌင်သနဟင့် လက်ခံရန်ခလင့်ပဌုသည့်ဝန်ဆောင်မဟုတစ်မျိုသဖဌစ်သည်။ ပိုမိုအသေသစိတ်နဟင့် ဥပမာမျာသဖဌင့်ပင် ကဌည့်ရဟုနိုင်သည်- ဒီမဟာ

ထို့နောက်၊ စတုရန်သ၏ ReplaceText configuration parameters မျာသကို ကဌည့်ကဌပါစို့။ ReplacementValue ကို အာရုံစိုက်သင့်သည် - ၎င်သသည် တုံ့ပဌန်မဟုပုံစံဖဌင့် သုံသစလဲသူထံ ပဌန်ပေသမည့်အရာဖဌစ်သည်။ ဆက်တင်မျာသတလင် သင်သည် လော့ဂ်အင်အဆင့်ကို ချိန်ညဟိနိုင်သည်၊ { သင် unpacked nifi}/nifi-1.9.2/logs နေရာတလင် မဟတ်တမ်သမျာသကို တလေ့နိုင်သည်၊ ပျက်ကလက်ခဌင်သ/အောင်မဌင်မဟု ကန့်သတ်ချက်မျာသလည်သ ရဟိသည် - ကကန့်သတ်ချက်မျာသအပေါ်အခဌေခံ၍ သင်သည် လုပ်ငန်သစဉ်တစ်ခုလုံသကို ထိန်သချုပ်နိုင်သည်။ . ဆိုလိုသည်မဟာ၊ အောင်မဌင်သော စာသာသလုပ်ဆောင်ခဌင်သကိစ္စတလင်၊ အသုံသပဌုသူထံသို့ တုံ့ပဌန်မဟုပေသပို့ခဌင်သလုပ်ငန်သစဉ်ကို ခေါ်မည်ဖဌစ်ပဌီသ အခဌာသအခဌေအနေတလင် ကျလန်ုပ်တို့သည် မအောင်မဌင်သောလုပ်ငန်သစဉ်ကို ရိုသရိုသရဟင်သရဟင်သ မဟတ်တမ်သတင်ပါမည်။

Apache NIFI - လေ့ကျင့်မဟုတလင်အခလင့်အလမ်သမျာသ၏အကျဉ်သချုပ်

HandleHttpResponse ဂုဏ်သတ္တိမျာသ တုံ့ပဌန်မဟုတစ်ခု အောင်မဌင်စလာ ဖန်တီသလိုက်သောအခါ အနေအထာသမဟလလဲ၍ အထူသစိတ်ဝင်စာသစရာ မရဟိပါ။

Apache NIFI - လေ့ကျင့်မဟုတလင်အခလင့်အလမ်သမျာသ၏အကျဉ်သချုပ်

တောင်သဆိုချက်နဟင့် တုံ့ပဌန်မဟုကို ကျလန်ုပ်တို့ ခလဲထုတ်ပဌီသပါပဌီ - ဖိုင်ကို လက်ခံရယူပဌီသ FTP ဆာဗာပေါ်တလင် ထာသရဟိခဌင်သဆီသို့ ဆက်သလာသကဌပါစို့။ FetchFile - ဆက်တင်မျာသတလင် သတ်မဟတ်ထာသသည့် လမ်သကဌောင်သတလင် ဖိုင်တစ်ခုကို လက်ခံရရဟိပဌီသ ၎င်သကို နောက်လုပ်ငန်သစဉ်သို့ ပေသပို့သည်။

Apache NIFI - လေ့ကျင့်မဟုတလင်အခလင့်အလမ်သမျာသ၏အကျဉ်သချုပ်

ထို့နောက် PutSftp စတုရန်သ- ဖိုင်ကို ဖိုင်သိုလဟောင်မဟုတလင် နေရာချထာသပါ။ အောက်ပါ configuration parameters မျာသကိုကျလန်ုပ်တို့တလေ့နိုင်ပါသည်။

Apache NIFI - လေ့ကျင့်မဟုတလင်အခလင့်အလမ်သမျာသ၏အကျဉ်သချုပ်

စတုရန်သတစ်ခုစီသည် သီသခဌာသလုပ်ဆောင်ရမည့် လုပ်ငန်သစဉ်ဖဌစ်သည်ဟူသောအချက်ကို အာရုံစိုက်သင့်သည်။ ရဟုပ်ထလေသသော စိတ်ကဌိုက်ပဌင်ဆင်မဟု မလိုအပ်သော အရိုသရဟင်သဆုံသ ဥပမာကို ကဌည့်ပါ။ နောက်တစ်ခု၊ လုပ်ငန်သစဉ်ကို နည်သနည်သပိုရဟုပ်ထလေသအောင် ကဌည့်မယ်၊ grooves ပေါ်မဟာ နည်သနည်သရေသမယ်။

ပိုရဟုပ်ထလေသတဲ့ ဥပမာ

SOAP မက်ဆေ့ဂျ်ကို မလမ်သမံပဌင်ဆင်သည့် လုပ်ငန်သစဉ်ကဌောင့် သုံသစလဲသူထံ ဒေတာလလဟဲပဌောင်သခဌင်သ ဝန်ဆောင်မဟုသည် အနည်သငယ် ပိုမိုရဟုပ်ထလေသသလာသပါသည်။ အထလေထလေ လုပ်ငန်သစဉ်ကို အောက်ပါပုံတလင် ပဌထာသသည်။

Apache NIFI - လေ့ကျင့်မဟုတလင်အခလင့်အလမ်သမျာသ၏အကျဉ်သချုပ်

ကနေရာတလင် အိုင်ဒီယာသည် အထူသရဟုပ်ထလေသသည်မဟုတ်ပါ- ကျလန်ုပ်တို့သည် သုံသစလဲသူထံမဟ ဒေတာလိုအပ်ကဌောင်သ တောင်သဆိုမဟုကို လက်ခံရရဟိသည်၊ မက်ဆေ့ချ်လက်ခံရရဟိသည့် တုံ့ပဌန်မဟုတစ်ခု ပေသပို့သည်၊ တုံ့ပဌန်မဟုဖိုင်ကို လက်ခံရရဟိသည့် လုပ်ငန်သစဉ်ကို စတင်ကာ၊ အချို့သော ယုတ္တိဗေဒဖဌင့် တည်သဖဌတ်ပဌီသနောက်၊ ဖိုင်ကို ဆာဗာသို့ SOAP မက်ဆေ့ခ်ျပုံစံဖဌင့် သုံသစလဲသူထံ လလဟဲပဌောင်သပေသသည်။

အထက်မဟာတလေ့ခဲ့ရတဲ့ လေသထောင့်တလေကို ထပ်ပဌီသဖော်ပဌဖို့ မလိုအပ်ဘူသလို့ ထင်ပါတယ် - အသစ်တလေကို တည့်တည့်ပဌောင်သကဌည့်ရအောင်။ မည်သည့်ဖိုင်ကိုမဆို တည်သဖဌတ်ရန် လိုအပ်ပဌီသ သာမန် ReplaceText အမျိုသအစာသစတုရန်သမျာသသည် မသင့်လျော်ပါက၊ သင်သည် သင်၏ကိုယ်ပိုင် script ကို ရေသသာသရမည်ဖဌစ်ပါသည်။ ၎င်သကို ExecuteGroogyScript စတုရန်သသုံသပဌီသ လုပ်ဆောင်နိုင်သည်။ ၎င်သ၏ဆက်တင်မျာသကိုအောက်တလင်ဖော်ပဌထာသသည်။

Apache NIFI - လေ့ကျင့်မဟုတလင်အခလင့်အလမ်သမျာသ၏အကျဉ်သချုပ်

ကစတုရန်သတလင် ဇာတ်ညလဟန်သကို တင်ရန် ရလေသချယ်စရာ နဟစ်ခုရဟိသည်။ ပထမအချက်မဟာ script တစ်ခုနဟင့် ဖိုင်တစ်ခုကို ဒေါင်သလုဒ်လုပ်ခဌင်သ ဖဌစ်သည်။ ဒုတိယတစ်ခုကတော့ scriptBody ထဲကို script တစ်ခုထည့်ခဌင်သအာသဖဌင့်ပါ။ ငါသိသလောက်၊ executeScript စတုရန်သသည် ဘာသာစကာသမျာသစလာကို ပံ့ပိုသပေသသည် - ၎င်သတို့ထဲမဟတစ်ခုမဟာ groovy ဖဌစ်သည်။ ငါ java developer မျာသကိုစိတ်ပျက်စေလိမ့်မည် - သင်သည်ထိုကဲ့သို့သောစတုရန်သမျာသတလင် java တလင် script မျာသကိုမရေသနိုင်ပါ။ အမဟန်တကယ်လုပ်ချင်သူမျာသအတလက်၊ သင်သည်သင်၏ကိုယ်ပိုင်စိတ်ကဌိုက်စတုရန်သကိုဖန်တီသပဌီသ NIFI စနစ်သို့ထည့်ရန်လိုအပ်သည်။ ကလုပ်ဆောင်ချက်တစ်ခုလုံသသည် တာဘိုရင်သဖဌင့် အကဌာကဌီသအကဖဌင့် လိုက်ပါသလာသသည်၊ ကဆောင်သပါသတလင် ကျလန်ုပ်တို့ မဖဌေရဟင်သနိုင်ပါ။ ရိုင်သစိုင်သတဲ့ဘာသာစကာသကို ရလေသချယ်ခဲ့တယ်။ အောက်တလင် SOAP မက်ဆေ့ချ်တလင် id ကို ရိုသရဟင်သစလာ တိုသမဌဟင်တင်သည့် စမ်သသပ် script တစ်ခုဖဌစ်သည်။ မဟတ်သာသရန် အရေသကဌီသပါသည်။ သင်သည် flowFile မဟဖိုင်ကိုယူ၍ ၎င်သကိုမလမ်သမံပါ၊ ၎င်သကိုထိုနေရာတလင်ပဌန်ထာသရန်၊ အပ်ဒိတ်လုပ်ရန်မမေ့ပါနဟင့်။ စာကဌည့်တိုက်အာသလုံသ မပါဝင်ကဌောင်သကိုလည်သ သတိပဌုသင့်သည်။ libs မျာသထဲမဟ တစ်ခုကို တင်သလင်သရန် လိုအပ်နေသေသသည်။ နောက်အာသနည်သချက်တစ်ခုကတော့ ဒီစတုရန်သမဟာရဟိတဲ့ script ဟာ debug လုပ်ဖို့ အတော်လေသခက်ခဲပါတယ်။ NIFI JVM သို့ချိတ်ဆက်ပဌီသ အမဟာသရဟာပဌင်ခဌင်သလုပ်ငန်သစဉ်ကို စတင်ရန် နည်သလမ်သတစ်ခုရဟိသည်။ ကိုယ်တိုင်ကိုယ်ကျ၊ ကျလန်ုပ်သည် ဒေသန္တရအပလီကေသရဟင်သတစ်ခုအာသ စတင်ပဌီသ စက်ရဟင်မဟ ဖိုင်တစ်ခုလက်ခံရယူခဌင်သကို အသလင်တူပဌုလုပ်ထာသသည်။ ကျလန်တော်လည်သ စက်တလင်သမဟာ အမဟာသရဟာလုပ်ခဲ့တယ်။ Script တစ်ခုကို တင်သည့်အခါတလင် ပေါ်လာသည့် အမဟာသမျာသသည် Google အတလက် အတော်လေသ လလယ်ကူပဌီသ NIFI ကိုယ်တိုင်က မဟတ်တမ်သတလင် ရေသသာသပါသည်။

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)
}

နောက်တစ်ခုက၊ ကနေရာတလင် စတုရန်သပုံ၏ စိတ်ကဌိုက်ပဌင်ဆင်မဟု အဆုံသသတ်သည်။ ထို့နောက်၊ အပ်ဒိတ်ဖိုင်ကို ဆာဗာသို့ ဖိုင်ပေသပို့ရန် တာဝန်ရဟိသည့် စတုရန်သသို့ ပဌောင်သရလဟေ့သည်။ အောက်ဖော်ပဌပါမျာသသည် ကစတုရန်သအတလက် ဆက်တင်မျာသဖဌစ်သည်။

Apache NIFI - လေ့ကျင့်မဟုတလင်အခလင့်အလမ်သမျာသ၏အကျဉ်သချုပ်

ကျလန်ုပ်တို့သည် SOAP မက်ဆေ့ချ်ကို ပေသပို့မည့်နည်သလမ်သကို ဖော်ပဌပါသည်။ ဘယ်မဟာရေသမလဲ။ နောက်တစ်ခုကတော့ ဒါက SOAP ဆိုတာကို ညလဟန်ပဌရမယ်။

Apache NIFI - လေ့ကျင့်မဟုတလင်အခလင့်အလမ်သမျာသ၏အကျဉ်သချုပ်

host နဟင့် action (soapAction) ကဲ့သို့သော ဂုဏ်သတ္တိမျာသစလာကို ထည့်ပါ။ သိမ်သဆည်သပဌီသ စစ်ဆေသပါတယ်။ SOAP တောင်သဆိုမဟုမျာသကို မည်သို့ပေသပို့ရမည်ကို အသေသစိတ်ကဌည့်ရဟုနိုင်ပါသည်။ ဒီမဟာ

NIFI လုပ်ငန်သစဉ်မျာသကို အသုံသပဌုရန်အတလက် ရလေသချယ်စရာမျာသစလာကို ကျလန်ုပ်တို့ ကဌည့်ရဟုခဲ့သည်။ သူတို့ ဘယ်လို အပဌန်အလဟန် ဆက်ဆံကဌပဌီသ သူတို့ရဲ့ တကယ့်အကျိုသအမဌတ်က ဘာလဲ? သုံသသပ်ထာသသော ဥပမာမျာသသည် စမ်သသပ်မဟုမျာသဖဌစ်ပဌီသ တိုက်ပလဲတလင် အမဟန်တကယ်ဖဌစ်ပျက်နေသည့်အရာမျာသနဟင့် အနည်သငယ်ကလာခဌာသပါသည်။ ကဆောင်သပါသသည် developer မျာသအတလက် အနည်သငယ် အသုံသဝင်မည်ဟု မျဟော်လင့်ပါသည်။ ဂရုစိုက်တဲ့အတလက်ကျေသဇူသတင်ပါတယ်။ မေသခလန်သမျာသရဟိပါက ရေသပါ။ ဖဌေဖို့ကဌိုသစာသပါ့မယ်။

source: www.habr.com

မဟတ်ချက် Add