рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдбреЗрдЯрд╛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реИрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред Apache NiFi рдХреЛ рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдкрд╣рд▓реЗ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ, рд╕рдВрдШреАрдп рдХрд░ рд╕реЗрд╡рд╛ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд╛ рдЖрдпрд╛рдд рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред
USRLE рдбреЗрдЯрд╛ рдХреЛ рдЬрд╝рд┐рдк рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдореЗрдВ рдкреИрдХ рдХреА рдЧрдИ XML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред https://ftp.egrul.nalog.ru/
рд╕рдВрдмрдВрдзрд┐рдд рддрд┐рдерд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдкрд░ рджреИрдирд┐рдХ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ ред рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП, рдХреБрдВрдЬреА # PKCS12 рд╣реИред
NiFi рдХреЗ рд╕рд╛рде рдЬрд┐рд╕ рдХрд╛рд░реНрдп рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд╣ рдлреЗрдбрд░рд▓ рдЯреИрдХреНрд╕ рд╕рд░реНрд╡рд┐рд╕ рдХреА рдлрд╛рдЗрд▓реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЖрд▓реЗрдЦ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд
рдпреВрдПрд╕рдЖрд░рдПрд▓рдИ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрдШреАрдп рдХрд░ рд╕реЗрд╡рд╛ рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ "рдпреВрдПрд╕рдЖрд░рдПрд▓рдИ рдФрд░ рдпреВрдПрд╕рдЖрд░рдЖрдИрдкреА рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдПрдХреАрдХрд░рдг рдФрд░ рдкрд╣реБрдВрдЪред" рдЗрдВрдЯрд░реИрдХреНрд╢рди рдореЙрдбрд▓ рдХрд╛ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред
рдпрд╣ рд╕рдВрдШреАрдп рдХрд░ рд╕реЗрд╡рд╛ рдХрд╛ рд╕рдВрд╕рд╛рдзрди рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдкреВрд░реНрдг рдкреНрд░рддреНрдпрдп рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдЗрд╕реА рд╡рд░реНрд╖ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкреВрд░реНрдг рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдЕрдирд▓реЛрдбрд┐рдВрдЧ рд╣реИрдВред рд╢реЗрд╖ рдХреИрдЯрд▓реЙрдЧ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рджреИрдирд┐рдХ рдЕрджреНрдпрддрди рд╣реИрдВред рд╣рдо рджреИрдирд┐рдХ рдЕрдкрдбреЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред
Apache NiFi рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рд╕реЗрдЯрдЕрдк
рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдХрд╛рд░реНрдп рдХрд▓ рдХреЗ рдЕрдкрд▓реЛрдб рдХреЗ рд╕рд╛рде рдХреИрдЯрд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╣реИ, рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВред
NiFi :
- FlowFile,
- HTML
- HTML ,

FlowFile
FlowFile GenerateFlowFile.
24 FlowFile fnsEgrulURL. https://ftp.egrul.nalog.ru/?dir=EGRUL/14.04.2020
. NiFi Expression Language:
${literal('https://ftp.egrul.nalog.ru/?dir=EGRUL/'):append(${now():toNumber():minus(86400000):format('dd.MM.yyyy')})}
рдЙрдиред рд╡рд░реНрддрдорд╛рди рддрд┐рдерд┐ рдХреЛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рддрд┐рдерд┐ рдХреЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред 86,400,000 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЛ рдЗрд╕рд╕реЗ рдШрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рд░реВрдк dM.M.yyyy рдореЗрдВ рджрд┐рдирд╛рдВрдХ рдХреЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдореА рддрд┐рдерд┐ рд▓рд┐рдВрдХ рдХреЗ рд╕реНрдерд╛рдпреА рднрд╛рдЧ рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИредрдЖрдЙрдЯрдкреБрдЯ рдкрд░, рд╣рдореЗрдВ рдирд┐рдореНрди рдлрд╝реЙрд░реНрдо рдХрд╛ рдлрд╝реНрд▓реЛрдлрд╝рд╛рдЗрд▓ рдорд┐рд▓рддрд╛ рд╣реИ :
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдлрд╝реНрд▓реЛрдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рд╛рдордЧреНрд░реА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИ
InvokeHTTP рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рд╡рд╣ рдХрд▓ рдХреЗ рдЕрдкрд▓реЛрдб рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ GET рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред рдЬрд╡рд╛рдм рдореЗрдВ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреИрдЯрд▓реЙрдЧ HTML рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ HTML рдХреЛрдб рдХреЛ рдлрд╝реНрд▓реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
InvokeHTTP рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ :
HTTPMethod тАФ GET;
Remote URL тАФ , URL . ${fnsEgrulURL}
тАФ FlowFile fnsEgrulURL;
SSL Context Service тАФ SSLContextService , .. HTTPS. #PKCS12 .
FlowFile , , тАФ HTML- .
SSLContextService
SSLContexService #PKCS12 , , .
cacerts JDK. . https://fns.egrul.nalog.ru
, #PKCS12. .

рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ, рдЖрдкрдХреЛ рд░реВрд╕реА рдбреАрдкреАрд╕реА рдХрд░ рд╕реЗрд╡рд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдбреАрдИрдЖрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ .CER рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ред рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ cacerts рднрдВрдбрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ Keytool рдЙрдкрдпреЛрдЧрд┐рддрд╛ ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
C:\Program Files\Java\jdk1.8.0_121\bin> keytool -importcert -keystore "C:\Program Files\Java\jdk1.8.0_121\jre\lib\security\cacerts" -file { .CER}
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб cacerts рд╣реИ changeit редcacerts , NiFi . , Persistent Volume. SSLContextService. PKSC12, cacerts тАФ JKS.
GetHTMLElement, HTML- FlowFile-. ZIP-.
<div id="page-content" class="container">
<div id="directory-list-header">
<div class="row">
<div class="col-md-7 col-sm-6 col-xs-10"></div>
<div class="col-md-2 col-sm-2 col-xs-2 text-right"></div>
<div class="col-md-3 col-sm-4 hidden-xs text-right"> </div>
</div>
</div>
<ul id="directory-listing" class="nav nav-pills nav-stacked">
<li data-name=".." data-href="https://ftp.egrul.nalog.ru/?dir=EGRUL">
<a href="https://ftp.egrul.nalog.ru/?dir=EGRUL" class="clearfix" data-name="..">
<div class="row">
<span class="file-name col-md-7 col-sm-6 col-xs-9">
<i class="fa fa-level-up fa-fw"></i>
.. </span>
<span class="file-size col-md-2 col-sm-2 col-xs-3 text-right">
- </span>
<span class="file-modified col-md-3 col-sm-4 hidden-xs text-right">
2020-04-05 22:00:00 </span>
</div>
</a>
</li>
<li data-name="EGRUL_2020-04-05_1.zip" data-href="EGRUL/05.04.2020/EGRUL_2020-04-05_1.zip">
<a href="EGRUL/05.04.2020/EGRUL_2020-04-05_1.zip" class="clearfix" data-name="EGRUL_2020-04-05_1.zip">
<div class="row">
<span class="file-name col-md-7 col-sm-6 col-xs-9">
<i class="fa fa-file-archive-o fa-fw"></i>
EGRUL_2020-04-05_1.zip </span>
<span class="file-size col-md-2 col-sm-2 col-xs-3 text-right">
528.78KB </span>
<span class="file-modified col-md-3 col-sm-4 hidden-xs text-right">
2020-04-05 22:00:24 </span>
</div>
</a>
<a href="javascript:void(0)" class="file-info-button">
<i class="fa fa-info-circle"></i>
</a>
</li>
</ul>
</div>
:
URL тАФ URL HTML-;
CSS Selector тАФ . li[data-name^=EGRUL]
тАФ li
, data-name
, EGRUL
;
Output Type тАФ Attribute
тАФ HTML-;
Destination тАФ flowfile-attribute
тАФ FlowFile- ( HTMLElement);
Attribute Name тАФ , . abs:${literal('data-href')}
тАФ URL (abs:
) + data-href
, CSS-.
, CSS- FlowFile ZIP- HTMLElement.
InvokeHTTP , HTML- . URL HTMLElement, ZIP-. SSLContextService .
ZIP- FlowFile .
UnpackContent. тАФ ZIP.
UnpackContent рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЖрдЙрдЯрдкреБрдЯ рдкрд░, рдкреНрд░реЛрд╕реЗрд╕рд░ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдкреНрд░рддреНрдпреЗрдХ XML рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝реНрд▓реЛрдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ ред
рдЖрдЧреЗ рдХреА...
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ XML рдХреЛ JSON рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рдВрдЧрдарди рджреНрд╡рд╛рд░рд╛ рдЯреВрдЯ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ XML рдореЗрдВ 1 рд╕реЗ 1000 рд░рдЬрд┐рд╕реНрдЯрд░ рдмрдпрд╛рди рд╣реЛрддреЗ рд╣реИрдВред рдФрд░ JSON рд╕реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ SQL рдпрд╛ NoSQL рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
XML рдХреЛ JSON рдФрд░ AVROSchema рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╣реИред