Apache NiFi рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ USRLE рдЖрдпрд╛рдд рдХрд░реЗрдВред рдЪрд░рдг 1 - HTTPS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдбреЗрдЯрд╛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реИрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред Apache NiFi рдХреЛ рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдкрд╣рд▓реЗ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ, рд╕рдВрдШреАрдп рдХрд░ рд╕реЗрд╡рд╛ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд╛ рдЖрдпрд╛рдд рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред


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


NiFi рдХреЗ рд╕рд╛рде рдЬрд┐рд╕ рдХрд╛рд░реНрдп рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд╣ рдлреЗрдбрд░рд▓ рдЯреИрдХреНрд╕ рд╕рд░реНрд╡рд┐рд╕ рдХреА рдлрд╛рдЗрд▓реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЖрд▓реЗрдЦ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВред


рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд


рдпреВрдПрд╕рдЖрд░рдПрд▓рдИ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрдШреАрдп рдХрд░ рд╕реЗрд╡рд╛ рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ "рдпреВрдПрд╕рдЖрд░рдПрд▓рдИ рдФрд░ рдпреВрдПрд╕рдЖрд░рдЖрдИрдкреА рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдПрдХреАрдХрд░рдг рдФрд░ рдкрд╣реБрдВрдЪред" рдЗрдВрдЯрд░реИрдХреНрд╢рди рдореЙрдбрд▓ рдХрд╛ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред


рдпрд╣ рд╕рдВрдШреАрдп рдХрд░ рд╕реЗрд╡рд╛ рдХрд╛ рд╕рдВрд╕рд╛рдзрди рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
https://ftp.egrul.nalog.ru/?dir=EGRUL


рдкреВрд░реНрдг рдкреНрд░рддреНрдпрдп рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдЗрд╕реА рд╡рд░реНрд╖ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкреВрд░реНрдг рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдЕрдирд▓реЛрдбрд┐рдВрдЧ рд╣реИрдВред рд╢реЗрд╖ рдХреИрдЯрд▓реЙрдЧ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рджреИрдирд┐рдХ рдЕрджреНрдпрддрди рд╣реИрдВред рд╣рдо рджреИрдирд┐рдХ рдЕрдкрдбреЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред


Apache NiFi рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рд╕реЗрдЯрдЕрдк


рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдХрд╛рд░реНрдп рдХрд▓ рдХреЗ рдЕрдкрд▓реЛрдб рдХреЗ рд╕рд╛рде рдХреИрдЯрд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╣реИ, рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВред


NiFi :

  1. FlowFile,
  2. HTML
  3. HTML ,


FlowFile


FlowFile GenerateFlowFile.


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


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>


GetHTMLElement


:
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 .


InvokeHTTP


ZIP- FlowFile .



UnpackContent. тАФ ZIP.


UnpackContent рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ


рдЖрдЙрдЯрдкреБрдЯ рдкрд░, рдкреНрд░реЛрд╕реЗрд╕рд░ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдкреНрд░рддреНрдпреЗрдХ XML рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝реНрд▓реЛрдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ ред


рдЖрдЧреЗ рдХреА...


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ XML рдХреЛ JSON рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рдВрдЧрдарди рджреНрд╡рд╛рд░рд╛ рдЯреВрдЯ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ XML рдореЗрдВ 1 рд╕реЗ 1000 рд░рдЬрд┐рд╕реНрдЯрд░ рдмрдпрд╛рди рд╣реЛрддреЗ рд╣реИрдВред рдФрд░ JSON рд╕реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ SQL рдпрд╛ NoSQL рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред


XML рдХреЛ JSON рдФрд░ AVROSchema рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╣реИред


All Articles