{"id":95283,"date":"2020-09-27T19:42:23","date_gmt":"2020-09-27T17:42:23","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah"},"modified":"2020-09-27T19:42:23","modified_gmt":"2020-09-27T17:42:23","slug":"primenenie-low-code-v-analiticheskih-platformah","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah","title":{"rendered":"Low-code rakendamine anal\u00fc\u00fctilistes platvormides","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Lugupidajad, tere p\u00e4evast!<\/p>\n<p>IT-platformide loomise \u00fclesanne andmete kogumiseks ja anal\u00fc\u00fcsimiseks tekib varem v\u00f5i hiljem igas ettev\u00f5ttes, mille \u00e4rimudel toetub intellektuaalselt keeruliste teenuste osutamisele v\u00f5i tehniliselt keerukate toodete loomisele. Anal\u00fc\u00fctiliste platvormide rajamine on keeruline ja aegan\u00f5udev \u00fclesanne. Siiski on igat \u00fclesannet v\u00f5imalik lihtsustada. K\u00e4esolevas artiklis soovin jagada kogemusi low-code-t\u00f6\u00f6riistade rakendamisel anal\u00fc\u00fctiliste lahenduste loomisel. See kogemus on saadud mitmete Big Data Solutions projekti elluviimisel ettev\u00f5ttes \"Neoflex\". Ettev\u00f5tte \"Neoflex\" Big Data Solutions suunitluses tegeletakse alates 2005. aastast andmete hoidlate ja j\u00e4rvede loomise k\u00fcsimustega, lahendatakse teabe t\u00f6\u00f6tlemise kiirusen\u00f5udmisi ja t\u00f6\u00f6tatakse v\u00e4lja andmekvaliteedi juhtimise metoodikat.<\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fctilistes platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/ca066793a937041577085dfb813f979e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTeadlikult madala ja\/v\u00f5i k\u00f5rge struktuuriandmete kogumisel ei p\u00e4\u00e4se keegi. T\u00f5en\u00e4oliselt isegi mitte v\u00e4ikeettev\u00f5te. Kui ettev\u00f5te kasvab, satub tulevikus optimistlik ettev\u00f5tja silmitsi lojaalsusprogrammi arendamise, m\u00fc\u00fcgikohtade efektiivsuse anal\u00fc\u00fcsiga, k\u00e4ivitab sihitud reklaami ja m\u00f5tleb lisatoodete n\u00f5udlusele. Esialgselt saab probleemi lahendada \"h\u00f5lpsalt\". Kuid ettev\u00f5tte kasvu korral on anal\u00fc\u00fctilisele platvormile \u00fcleminek v\u00e4ltimatu.<\/p>\n<p>Kuid millal v\u00f5ivad andmeanal\u00fc\u00fcsi \u00fclesanded muutuda \"Rocket Science\"-i kategooriaks? T\u00f5en\u00e4oliselt siis, kui on t\u00f5eliselt suurtest andmetest jutt.<br \/>\nEt \u00fclesannet \"Rocket Science\" lihtsustada, v\u00f5ib hea idee olla \"s\u00f6\u00f6da elevanti t\u00fckkideks\". <\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fctilistes platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/f81e7704b91a5b95303e4240d6012730.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMida suurem on teie rakenduste\/teenuste\/mikroteenuste diskreetne ja autonoomne kontseptsioon, seda lihtsam on teil, teie kolleegidel ja kogu ettev\u00f5ttel elevanti Seedida.<\/p>\n<p>Selle postulaadi on m\u00f5istnud praktiliselt k\u00f5ik meie kliendid, kes on \u00fcmber kujundanud maastiku, tuginedes DevOps meeskondade inseneritavadele.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nKuid isegi \"eraldi, elevanti-k\u00fcllastunud\" dieediga on meil head v\u00f5imalused IT-maastiku \"\u00fclek\u00fcllastamiseks\". Sel hetkel tasub peatuda, s\u00fcgada ja vaadata poole <b>low-code engineering platform<\/b>.<\/p>\n<p>Paljude arendajate jaoks on hirm, et karj\u00e4\u00e4r v\u00f5ib takerduda, kui liikuda koodikirjutamisest low-code s\u00fcsteemide \u201eui-interfaces\u201c lohistamise suunas. Kuid masinate tulek ei t\u00e4hendanud inseneride kadumist, vaid t\u00f5stis nende t\u00f6\u00f6 uuele tasemele!<\/p>\n<p>Vaatame, miks.<\/p>\n<p>Andmete anal\u00fc\u00fcs logistikasektoris, telekommunikatsioonit\u00f6\u00f6stuses, meediauuringute valdkonnas ja rahanduses on alati seotud j\u00e4rgmiste k\u00fcsimustega: <\/p>\n<ul>\n<li>Automatiseeritud anal\u00fc\u00fcsi teostamise kiirus;<\/li>\n<li>Eksperimentide l\u00e4biviimise v\u00f5imalus ilma peamise andmete tootmisvoo m\u00f5jutamisega;<\/li>\n<li>T\u00f6\u00f6deldud andmete usaldusv\u00e4\u00e4rsus;<\/li>\n<li>Muutuste j\u00e4lgimine ja versioonimine;<\/li>\n<li>Andmete p\u00e4ritolu, andmete seosed, CDC;<\/li>\n<li>Uute funktsioonide kiire tarnimine tootmis\u00fcmbrusse;<\/li>\n<li>Ja kuulus k\u00fcsimus: arenduse ja hoolduse maksumus.<\/li>\n<\/ul>\n<p>\nSee t\u00e4hendab, et inseneridel on tohutul hulgal k\u00f5rgtaseme \u00fclesandeid, mille t\u00f5hus t\u00e4itmine on v\u00f5imalik vaid siis, kui vabaneda madalama taseme arenduse \u00fclesannetest.<\/p>\n<p>Arendajate uuele tasemele liikumise eelduseks sai \u00e4ri areng ja digitaliseerimine. Arendaja v\u00e4\u00e4rtus muutub samuti: puudus on arendajatest, kes suudavad s\u00fcveneda automatiseeritava \u00e4ri kontseptsioonidesse.<\/p>\n<p>Teeme analoogia madala- ja k\u00f5rgematasemeliste programmeerimiskeelte vahel. Liikumine madala taseme keeltest k\u00f5rgema taseme keelte suunas on \u00fcleminek \u201eotse masinakeele k\u00e4skude kirjutamisest\u201c \u201ek\u00e4sudeni inimkeeles\u201c. T\u00f5si, see t\u00e4hendab teatud abstraktsioonikihi lisamist. Sel juhul on \u00fcleminek madala-koodiga platvormidele k\u00f5rgema taseme programmidelt samm \u201einimkeeles k\u00e4skude andmisest\u201c \u00e4ri keelde k\u00e4skude andmise suunas. Kui on arendajaid, keda see fakt kurvastab, siis v\u00f5ib-olla on nad kurvastanud sellest hetkest, kui s\u00fcndis Java Script, kus kasutatakse massiivi sorteerimise funktsioone. Ja need funktsioonid sisaldavad loomulikult sama k\u00f5rgtaseme programmeerimise rakendusi.<\/p>\n<p><b>Seega on low-code lihtsalt veel \u00fche abstraktsioonitaseme ilmumine. <\/b><\/p>\n<h2>Praktiline kogemus low-code'i kasutamisest<\/h2>\n<p>\nLow-code teema on \u00fcsna lai, kuid n\u00fc\u00fcd sooviksin r\u00e4\u00e4kida \"madalkoodide kontseptsioonide\" rakendusliku kasutamise kohta \u00fche meie projekti n\u00e4itel.<\/p>\n<p>Ettev\u00f5tte \"Neoflex\" Big Data Solutions divisjon keskendub peamiselt finantssektorile, luues andmehoidlaid ja andmej\u00e4rvi ning automatiseerides erinevaid aruandeid. Selles ni\u0161\u0161is on low-code kasutamine juba ammu standardiks saanud. Muude madalkoodide t\u00f6\u00f6riistade seas v\u00f5ib mainida ETL-protsesside korraldamise vahendeid: Informatica Power Center, IBM Datastage, Pentaho Data Integration. V\u00f5i Oracle Apex, mis on kiire arendamise keskkond andmete juurdep\u00e4\u00e4su ja redigeerimise liideste loomiseks. Siiski ei ole madalkoodide arendust\u00f6\u00f6de kasutamine alati seotud kitsaste rakenduste loomisega kommertstehnoloogiate virnas, mis on selgelt s\u00f5ltuvuses m\u00fc\u00fcjast.<\/p>\n<p>Low-code platvormide abil on samuti v\u00f5imalik korraldada andmevoogude orkestreerimist, luua andeteaduse platvorme v\u00f5i n\u00e4iteks andmekvaliteedi kontrollimooduleid. <\/p>\n<p>\u00dcks rakenduslik n\u00e4ide madalkoodide arendust\u00f6\u00f6de kasutamisest on koost\u00f6\u00f6 \"Neoflex\" ja ettev\u00f5tte Mediascope vahel, mis on \u00fcks Venemaa meediauuringute turu juhtidest. Selle ettev\u00f5tte \u00e4ri\u00fclesanne on luua andmeid, mille alusel reklaamisponsorid, veebiplatvormid, telekanalid, raadiod, reklaamiagentuurid ja kaubam\u00e4rgid teevad reklaamiostuotsused ja planeerivad oma turunduskommunikatsioone. <\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fctilistes platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/d6410c1fe93231281bdd536798fe7c66.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMeediauuringud on tehnoloogiliselt n\u00f5udlik \u00e4ri valdkond. Videoklippide tuvastamine, andmete kogumine seadmetelt, mis anal\u00fc\u00fcsivad vaatamist, veebiresursside aktiivsuse m\u00f5\u00f5tmine \u2013 k\u00f5ik see eeldab ettev\u00f5ttelt suurt IT-t\u00f6\u00f6tajate arvu ja tohutut kogemust anal\u00fc\u00fctiliste lahenduste v\u00e4ljat\u00f6\u00f6tamises. Kuid teabe suurenev maht, selle allikate arv ja mitmekesisus sunnib andmete IT-t\u00f6\u00f6stust pidevalt arenema. K\u00f5ige lihtsam lahendus Mediascope'i juba toimiva anal\u00fc\u00fctika platvormi m\u00f5\u00f5tmedamise suurendamiseks oleks olnud suurendada IT-t\u00f6\u00f6tajate arvu. Kuid palju t\u00f5husam lahendus on arendusprotsessi kiirendamine. \u00dcks samm, mis viib selleni, v\u00f5ib olla madalkoodide platvormide kasutamine.<\/p>\n<p>Projekti k\u00e4ivitamise hetkeks omas ettev\u00f5te juba toimivat tootelahendust. Kuid MSSQL-i kasutamine ei suutnud t\u00e4ielikult rahuldada funktsionaalsuse skaleerimise ootusi, s\u00e4ilitades samas aktsepteeritava lisandmooduli hinna.<\/p>\n<p>Meie ees seisev \u00fclesanne oli t\u00f5eliselt ambitsioonikas \u2013 Neoflex ja Mediascope pidid looma t\u00f6\u00f6stuslahenduse v\u00e4hem kui aastaga, kusjuures MVP (minimaalne toimiv toode) pidi valmima juba esimese kvartali jooksul p\u00e4rast t\u00f6\u00f6de alustamist.<\/p>\n<p>Uue andmeplatvormi aluseks, mis p\u00f5hineb madala koodiga arvutustel, valiti Hadoopi tehnoloogiate virn. Andmete salvestamise standardiks sai HDFS, kasutades parquet formaadi faile. Andmetele, mis asuvad platvormil, p\u00e4\u00e4seb ligi Hive'i kaudu, kus k\u00f5ik saadavad vitriinid on esitatud v\u00e4liste tabelitena. Andmete laadimine ladustamisse teostati Kafka ja Apache NiFi abil.<\/p>\n<p>Madala koodiga t\u00f6\u00f6riista rakendati selles kontseptsioonis, et optimeerida k\u00f5ige t\u00f6\u00f6mahukamat \u00fclesannet anal\u00fc\u00fcsiplatvormi ehitamisel \u2013 andmete arvutamise \u00fclesannet.<\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fctilistes platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/fe62234ab0ae611a0c4a536ca68af898.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPeamiseks andmete mappimise mehhanismiks valiti madala koodiga t\u00f6\u00f6riist Datagram. <b>Neoflex Datagram<\/b> on vahend andmete transformatsioonide ja voogude arendamiseks. <br \/>\nSelle t\u00f6\u00f6riista kasutamisel saab hakkama ilma Scala kodeerimiseta \"k\u00e4si\". Scala kood genereeritakse automaatselt, kasutades Model Driven Architecture l\u00e4henemist.<\/p>\n<p>Ilmselge pluss selle l\u00e4henemise juures on arendusprotsessi kiirus. Kuid lisaks kiirusel on veel mitmeid eeliseid: <\/p>\n<ul>\n<li>Allikate \/ sihtkohtade sisu ja struktuuri vaatamine;<\/li>\n<li>Andmevoogude objektide p\u00e4ritolu j\u00e4lgimine kuni \u00fcksikute v\u00e4ljade tasemeni (lineage);<\/li>\n<li>Osaline transformatsioonide teostamine vahepealsete tulemuste vaatamisega;<\/li>\n<li>Algkoodi vaatamine ja selle kohandamine enne k\u00e4ivitamist;<\/li>\n<li>Automaatne transformatsioonide valideerimine;<\/li>\n<li>Andmete automaatne laadimine 1:1.<\/li>\n<\/ul>\n<p>\nLow-code lahenduste sisenemisbarj\u00e4\u00e4r transformatsioonide genereerimiseks on piisavalt madal: arendajal on vaja tunda SQL-i ja omada kogemusi ETL-t\u00f6\u00f6riistadega. Siiski tasub mainida, et code-driven transformatsioonide generaatorid ei ole ETL-t\u00f6\u00f6riistad laiemas m\u00f5ttes. Low-code t\u00f6\u00f6riistad ei pruugi omada oma keskkonda koodi t\u00e4itmiseks. See t\u00e4hendab, et genereeritud kood t\u00e4idetakse keskkonnas, mis oli klastris olemas juba enne low-code lahenduse installimist. Ja see on ehk veel \u00fcks pluss low-code'i kasuks. Sest k\u00f5rvale low-code meeskonnale v\u00f5ib t\u00f6\u00f6tada \"klassikaline\" meeskond, mis teostab funktsionaalsust n\u00e4iteks puhtal Scala koodil. M\u00f5lema meeskonna muudatuste viimine tootmisse on lihtne ja \"sujuv\".<\/p>\n<p>Tuleb veel m\u00e4rkida, et lisaks low-code lahendustele on olemas ka no-code lahendused. Ja oma olemuselt on need erinevad asjad. Low-code v\u00f5imaldab arendajal rohkem sekkuda genereeritud koodi. Datagrami puhul on v\u00f5imalik vaadata ja redigeerida genereeritud Scala koodi, no-code ei pruugi sellist v\u00f5imalust pakkuda. See erinevus on \u00fcsna oluline mitte ainult lahenduse paindlikkuse osas, vaid ka andmeinseneride t\u00f6\u00f6 mugavuse ja motivatsiooni osas. <\/p>\n<h2>Lahenduse arhitektuur<\/h2>\n<p>\nProovime m\u00f5ista, kuidas low-code t\u00f6\u00f6riist aitab lahendada andmete arvutamise funktsionaalsuse arendamise kiirusprobleemi. Alustame s\u00fcsteemi funktsionaalsest arhitektuurist. Sel juhul on n\u00e4iteks andmete tootmismudel meedia-uuringute jaoks.<\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fctilistes platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/365f1b1cf69bf2a71854eb05c5bba809.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Ainealased andmeallikad on meie juhul v\u00e4ga mitmekesised ja mitmekesised:<\/b><\/p>\n<ul>\n<li>Peoplemeters (TV meters) are software and hardware devices that capture user behavior among respondents of a television panel\u2014who, when, and which TV channel was viewed in the household participating in the study. The supplied information is a stream of viewing intervals linked to the media package and media product. Data during the upload phase to the Data Lake can be enriched with demographic attributes, geographic ties, time zones, and other information necessary for analyzing the viewership of a particular media product. The measurements obtained can be used for the analysis or planning of advertising campaigns, evaluating audience activity and preferences, and creating broadcasting schedules.<\/li>\n<li>Data can be sourced from streaming television monitoring systems and from measuring content viewership on video resources on the internet;<\/li>\n<li>Measuring tools in the web environment include both site-centric and user-centric counters. A research bar browser extension and a mobile application with embedded features can serve as data suppliers for the Data Lake. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/vpn\/\"   title=\"VPN\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"133\">VPN<\/a>.<\/li>\n<li>Data can also be obtained from platforms that consolidate results from online surveys and the outcomes of telephone interviews in the company's survey research;<\/li>\n<li>Additional enrichment of the data lake can occur through loading information from the logs of partner companies.<\/li>\n<\/ul>\n<p>\nThe implementation of as-is loading from source systems into the initial staging of raw data can be organized in various ways. If low-code is used for these purposes, automatic script generation for loading can be based on metadata. In this case, there is no need to delve into the development of source to target mappings. To facilitate automatic loading, we need to establish a connection with the source and then define in the loading interface the list of entities to be loaded. The creation of the directory structure in HDFS will happen automatically and will correspond to the data storage structure in the source system.<\/p>\n<p>However, in the context of this project, we decided not to utilize this low-code platform capability due to the fact that Mediascope has already begun working independently on creating a similar service using the Nifi + Kafka combination.<\/p>\n<p>On kohe selgelt m\u00e4rkida, et need t\u00f6\u00f6riistad ei ole \u00fcksteist asendavad, vaid pigem t\u00e4iendavad teineteist. Nifi ja Kafka suudavad t\u00f6\u00f6tada nii otse (Nifi -&gt; Kafka) kui ka vastupidiselt (Kafka -&gt; Nifi). Meediauurimise platvormil kasutati esimest varianti.<\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fctilistes platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/8284ef5bd6d3b947998ffd42bfb66dbd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMeie puhul pidi Nifi t\u00f6\u00f6tlema erinevat t\u00fc\u00fcpi andmeid allikate s\u00fcsteemidest ja edastama need Kafka vahendajale. Samal ajal suunati s\u00f5numid kindlasse Kafka teema, kasutades Nifi publishKafka protsessoreid. Nende pipeline'ide orkestreerimine ja hooldus toimub visuaalses liideses. Nifi t\u00f6\u00f6riista ja Nifi + Kafka \u00fchenduse kasutamist v\u00f5ib samuti nimetada low-code l\u00e4henemiseks arendusele, mis omab madalat sisenemispiiri Big Data tehnoloogiatesse ja kiirendab rakenduste arendamise protsessi. <\/p>\n<p>Projekti elluviimise j\u00e4rgmine etapp oli detailsete andmete \u00fchise semantilise kihina vormindamine. Kui entiteedil on ajaloolisi atribuute, toimingut teostatakse arvesse v\u00f5etud partitsiooni kontekstis. Kui entiteet ei ole ajalooline, on v\u00f5imalus kas arvutada \u00fcmber kogu objekti sisu v\u00f5i loobuda objekti \u00fcmberarvutamisest (t\u00e4nu muudatuste puudumisele). Sellel etapil genereeritakse v\u00f5tmed k\u00f5igi entiteetide jaoks. V\u00f5tmed salvestatakse vastavatesse Hbase p\u00f5hielementide registritesse, mis sisaldavad seoseid anal\u00fc\u00fctilise platvormi v\u00f5tmete ja allikate s\u00fcsteemide v\u00f5tmete vahel. Aatomiliste entiteetide konsolideerimist saadab anal\u00fc\u00fcsitud andmete tulemuste rikastamine. Andmete arvutamise raamistikuks oli Spark. Kirjeldatud andmete viimine \u00fchte semantika juurde realiseeriti ka low-code t\u00f6\u00f6riista Datagram mappimise alusel.<\/p>\n<p>Eesm\u00e4rgi arhitektuuris oli vajalik tagada SQL-juurdep\u00e4\u00e4s andmetele \u00e4rit\u00f6\u00f6tajate jaoks. Selle valiku jaoks kasutati Hive'i. Objektide registreerimine Hive'is toimub automaatselt, kui low-code t\u00f6\u00f6riistas l\u00fclitatakse sisse valik \u201eRegistr Hive Table\u201d.<\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fctilistes platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/a13f7260d067d3d21b7090bd8fa10aff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Arvutamise voogude haldamine<\/h2>\n<p>\nDatagramil on t\u00f6\u00f6voogude kujundamiseks liides. Kaardistamise k\u00e4ivitamine v\u00f5ib toimuda Oozie ajastaja abil. Arendaja liideses on v\u00f5imalik luua paralleelse, j\u00e4rjekindla v\u00f5i tingimustel p\u00f5hineva andmete muundamise skeeme. Toetatakse shell-skripte ja Java programme. Samuti on v\u00f5imalik kasutada <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/server\/dts-los-angeles\/\"   title=\"serverilt\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3662\">serverilt<\/a> Apache Livy. Apache Livy't kasutatakse rakenduste k\u00e4ivitamiseks otse arenduskeskkonnast. <\/p>\n<p>Kui ettev\u00f5ttel on juba oma protsesside orkestreerija, on v\u00f5imalik REST API abil olemasolevatesse t\u00f6\u00f6voogudesse kaardistamisi sisestada. N\u00e4iteks oleme omanud \u00fcsna edukat kogemust Scala kaardistamiste integreerimises PLSQL ja Kotlinis kirjutatud orkestreerijatesse. Madala koodiga t\u00f6\u00f6riista REST API sisaldab selliseid toiminguid nagu kaardistamise disainist l\u00e4htuva k\u00e4ivitatava aasta genereerimine, kaardistamise kutsumine, kaardistamiste j\u00e4rjestuse v\u00e4ljakutsumine ja loomulikult ka parameetrite edastamine URL-is kaardistamiste k\u00e4ivitamiseks.<\/p>\n<p>Koos Ooziega on v\u00f5imalik arvutusprotsessi korraldada ka Airflow abil. V\u00f5ib-olla ei viibi ma pikalt Oozie ja Airflow v\u00f5rdlemisel, vaid \u00fctlen lihtsalt, et meedia-uuringute projekti kontekstis langes valik Airflow kasuks. Peamised argumendid olid seekord aktiivsem kogukond, kes arendab toodet, ja arenenum liides + API.<\/p>\n<p>Airflow on suurep\u00e4rane ka seet\u00f5ttu, et selle arvutusprotsesside kirjeldamiseks kasutatakse paljude seas populaarset Pythonit. \u00dcldiselt ei ole avatud l\u00e4htekoodiga t\u00f6\u00f6voogude juhtimise platvorme v\u00e4ga palju. Protsesside k\u00e4ivitamine ja j\u00e4lgimine (sealhulgas Gantt-diagrammiga) lisab Airflow'le veel punkte. <\/p>\n<p>Kaardistamiste k\u00e4ivitamise konfiguratsioonifaili formaadiks madala koodiga lahenduse jaoks sai spark-submit. See juhtus kahel p\u00f5hjusel. Esiteks v\u00f5imaldab spark-submit otse k\u00e4ivitada jar-faili konsoolist. Teiseks v\u00f5ib see sisaldada kogu vajaliku teabe t\u00f6\u00f6voo konfigureerimiseks (mis h\u00f5lbustab Dag-i genereerivate skriptide kirjutamist).<br \/>\nAirflow t\u00f6\u00f6protsesside k\u00f5ige sagedamini esinev element on meie puhul olnud SparkSubmitOperator.<\/p>\n<p>SparkSubmitOperator v\u00f5imaldab k\u00e4ivitada jar-file, mis on pakendatud Datagrami kaardistamised koos eelnevalt vormistatud sisendparameetritega.<\/p>\n<p>Tuleb mainida, et iga Airflow'i \u00fclesanne t\u00e4idetakse eraldi l\u00f5imes ja ei tea midagi teistest \u00fclesannetest. Seet\u00f5ttu toimub \u00fclesannete vaheline suhtlemine juhtivate operaatorite, nagu DummyOperator v\u00f5i BranchPythonOperator, kaudu.<\/p>\n<p>Low-code lahenduse Datagram kasutamine koos konfiguratsioonifailide (Dage moodustavate) universaliseerimisega on oluliselt kiirendanud andmete laadimisprotsesside arendamist ja lihtsustanud neid.<\/p>\n<h2>Vitrinade arvestus<\/h2>\n<p>\nT\u00f5en\u00e4oliselt on k\u00f5ige vaimsemalt koormatud etapp anal\u00fc\u00fctiliste andmete tootmises vitrinade ehitamine. \u00dche andmevoo kontekstis toimub sellel etapil viidatud standardiseerimise k\u00e4igus andmete \u00fcleviimine ajav\u00f6\u00f6ndite korrigeerimisega, mis on seotud edastamisv\u00f5rguga. Samuti on v\u00f5imalik kohandamine kohaliku eetriv\u00f5rgu (kohalikud uudised ja reklaam) jaoks. Selles etapis toimub muu hulgas pideva vaatamise ajavahemike jagamine meediatoodete anal\u00fc\u00fcsi p\u00f5hjal. Samuti toimub siin vaatamise v\u00e4\u00e4rtuste \u201ekaalumine\u201c nende olulisuse andmete p\u00f5hjal (korrigeerimisteguri arvutamine).<\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fctilistes platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/b5f90f7d1d95c97c9819218aab9079c4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVitrinate ettevalmistamise eraldi samm on andmete valideerimine. Valideerimise algoritm on seotud mitmete matemaatiliste teadusmudelite rakendamisega. Siiski v\u00f5imaldab low-code platvormi kasutamine keerulise algoritmi jagada visuaalselt loetavateks kaardistusteks. Iga kaardistus t\u00e4idab kitsast \u00fclesannet. Selle tulemusena on v\u00f5imalik vahepealne t\u00f5rkeotsing, logimine ja andmete ettevalmistamise etappide visualiseerimine. <\/p>\n<p>Valideerimise algoritmi otsustati diskretiseerida j\u00e4rgmiste alaetappideks:<\/p>\n<ul>\n<li>Ahnmise regressioonide koostamine telev\u00f5rgu vaatamise ja k\u00f5igi v\u00f5rgu vaatamise vahel piirkonnas viimase 60 p\u00e4eva jooksul. <\/li>\n<li>Tudengiseeritud j\u00e4\u00e4kide arvutamine (erinevused tegelike v\u00e4\u00e4rtuste ja regressioonimudelite ennustatud v\u00e4\u00e4rtuste vahel) k\u00f5igi regressioonipunktide ja arvutusliku p\u00e4eva jaoks.<\/li>\n<li>Ebanormaalsete paari valimine piirkond-telev\u00f5rk, kus arvutatud p\u00e4eva tudengiseeritud j\u00e4\u00e4k \u00fcletab normi (mille seadistas operatsioon).<\/li>\n<li>Korrektseeritud \u00fcli\u00f5pilaste saldot arvestavate anomaalsete piirkondade telev\u00f5rkude j\u00e4rgi iga k\u00fcsitletava jaoks, kes vaatas piirkonnas v\u00f5rku, tuvastades selle k\u00fcsitletava panuse (\u00fcletatud \u00fcli\u00f5pilaste saldo muutus), v\u00e4lja arvatud selle k\u00fcsitletava vaatamine valimist.<\/li>\n<li>Kandidaatide otsimine, kelle v\u00e4listamine toob normi tagasi korrigeeritud saldo kalkulatsiooni p\u00e4eval. <\/li>\n<\/ul>\n<p>\n\u00dclaltoodud n\u00e4ide kinnitab h\u00fcpoteesi, et andmeinseneril on peas juba liiga palju asju... Ja kui ta t\u00f5eliselt on \u00abinsener\u00bb, mitte \u00abkooder\u00bb, siis madala koodiga t\u00f6\u00f6riistade kasutamise hirm professionaalse degradeerumise ees peaks t\u00f5eliselt kaduma.<\/p>\n<h2>Mis veel madala koodi puhul v\u00f5imalik on?<\/h2>\n<p>\nMadala koodi t\u00f6\u00f6riista rakendus infovoogude ja partiiandmete t\u00f6\u00f6tlemiseks ilma Scala k\u00e4sitsi koodi kirjutamata ei piirdu.<\/p>\n<p>Madala koodi rakendamine datalake'ide arendamisel on meist juba saanud teatud standard. T\u00f5en\u00e4oliselt v\u00f5ib \u00f6elda, et Hadoopi tehnoloogia lahendused j\u00e4lgivad klassikaliste RDBMS p\u00f5histe DWH arenguteed. Madala koodiga t\u00f6\u00f6riistad Hadoopi tehnoloogial v\u00f5ivad lahendada nii andmete t\u00f6\u00f6tlemise \u00fclesandeid kui ka l\u00f5puks BI-liideste loomise \u00fclesandeid. Oluline on m\u00e4rkida, et BI all v\u00f5ib m\u00f5ista mitte ainult andmete esitlust, vaid ka nende redigeerimist \u00e4ritegevuse kasutajate poolt. Seda funktsionaalsust rakendame me sageli anal\u00fc\u00fctiliste platvormide loomisel finantssektoris. <\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fctilistes platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/cde5ce9dac9fcc9356b2b0ed291e299c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLoodud on madala koodi abiga ja eelk\u00f5ige Datagram'i kaudu v\u00f5imalik lahendada andmevoogude objektide p\u00e4ritolu j\u00e4lgimise \u00fclesanne, sealhulgas \u00fcksikute v\u00e4ljade (lineage) tasandil. Selleks on madala koodi t\u00f6\u00f6riistas rakendatud integreerimine Apache Atlase ja Cloudera Navigatoriga. Sisuliselt peab arendaja registreerima objektide kogumi Atlase s\u00f5nastikes ja viitama registreeritud objektidele kaardistamise koostamise k\u00e4igus. Andmete p\u00e4ritolu j\u00e4lgimise mehhanism v\u00f5i objektide s\u00f5ltuvuste anal\u00fc\u00fcs s\u00e4\u00e4stab palju aega, kui on vajalik algoritmide t\u00e4iendamine. N\u00e4iteks finantsaruande koostamisel v\u00f5imaldab see funktsioon mugavamalt \u00fcle elada seadusandlikke muudatusi. Mida paremini m\u00f5istame objektide detailitaseme vahelisi s\u00f5ltuvusi, seda v\u00e4hem kohtame \u201e\u00fcllatavaid\u201c defekte ja v\u00e4hendame \u00fcmbertegemiste arvu. <\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fctilistes platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/0b351b116564090bd03f6adf3fc52616.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Andmete kvaliteet ja madal kood<\/h2>\n<p>\nTeiseks \u00fclesandeks, mille madala koodi t\u00f6\u00f6riist rakendas Mediascope'i projektis, oli andmete kvaliteedi \u00fclesanne. Andmete kontrollimise konveieril puudus m\u00f5ju andmete arvutamise peamise voolu toimimisele ja kiirus. Andmete kontrollimiseks eraldiseisvate voogude orkestreerimiseks kasutati tuttavat Apache Airflow'i. Iga andmete tootmise etapi valmides k\u00e4ivitati samal ajal eraldi DQ-konveieri osa. <\/p>\n<p>Heaks praktikaks peetakse andmete kvaliteedi j\u00e4lgimist nende tekkimisest alates anal\u00fc\u00fcsiplatvormil. Omades teavet metaandmete kohta, saame juba alates informatsiooni j\u00f5udmisest esmaste andmete kihina kontrollida p\u00f5hiliste tingimuste j\u00e4rgimist \u2014 mitte-null, piirangud, v\u00e4lisv\u00f5tmed. See funktsioon on rakendatud automaatselt genereeritud kaardistuste alusel, mis kuuluvad andmete kvaliteedi peresse Datagram'is. Koodigeneratsioon p\u00f5hineb sel juhul samuti mudeli metaandmetel. Mediascope'i projektis toimus integreerimine Enterprise Architecti toote metaandmetega. <\/p>\n<p>Madala koodi t\u00f6\u00f6riista ja Enterprise Architecti integreerimise tulemusena on automaatselt genereeritud j\u00e4rgmised kontrollid:<\/p>\n<ul>\n<li>Kontroll \u201enull\u201d v\u00e4\u00e4rtuste olemasolu \u00fcle mitte-null modifikaatoriga v\u00e4ljadest; <\/li>\n<li>Kontroll algsete v\u00f5tmete dubleerimise \u00fcle;<\/li>\n<li>V\u00e4lise v\u00f5tme kontrollimine entiteedis;<\/li>\n<li>Rea unikaalsuse kontroll vastavalt v\u00e4ljade kogumile.<\/li>\n<\/ul>\n<p>\nKasutajate vajadustega kohandatud keerukamate kontrollide jaoks andmete k\u00e4ttesaadavuse ja usaldusv\u00e4\u00e4rsuse tagamiseks loodi Scala v\u00e4ljendite kaardistus, mis v\u00f5tab sisendiks v\u00e4lise Spark SQL kontrollkoodi, mille on ette valmistanud anal\u00fc\u00fctikud Zeppelin'is.<\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fctilistes platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/f6dcc5719077a3186d23d7bdcb412c45.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLoomulikult tuleb automaatsete kontrollide genereerimisele l\u00e4heneda j\u00e4rk-j\u00e4rgult. K\u00e4esoleva projekti eel\u00f5htul olid j\u00e4rgmised sammud:<\/p>\n<ul>\n<li>DQ, mis on realiseeritud Zeppelin'i m\u00e4rkmikes;<\/li>\n<li>DQ, mis on integreeritud kaardistusse;<\/li>\n<li>DQ eraldi mahukate kaardistustena, mis sisaldavad mitmeid kontrollpunkte konkreetse entiteedi jaoks;<\/li>\n<li>\u00dcksikasjalikud parameetriseeritud DQ kaardistused, mis v\u00f5tavad sisendiks metainformatsiooni ja \u00e4rikontrollide kohta.<\/li>\n<\/ul>\n<p>\nT\u00f5en\u00e4oliselt on parameetritesse kohandatud kontrollide teenuse loomise peamine eelis funktsionaalsuse toimetamise aega tootmisringkonda l\u00fchendada. Uued kvaliteedikontrollid v\u00f5ivad m\u00f6\u00f6da minna klassikalisest koodide toimetamise mustrist arendus- ja testimistest;<\/p>\n<ul>\n<li>K\u00f5ik metaandmete kontrollid genereeritakse automaatselt mudeli muutmisel EA-s;<\/li>\n<li>Andmete k\u00e4ttesaadavuse kontrollid (andmete olemasolu kindlaksm\u00e4\u00e4ramine teatud ajahetkel) saab genereerida jaotise alusel, mis s\u00e4ilitab oodatava ajakava j\u00e4rgmise andmehulgaga objektide osas;<\/li>\n<li>\u00c4rikontrollide andmete usaldusv\u00e4\u00e4rsus luuakse anal\u00fc\u00fctikute poolt Zeppelin'i m\u00e4rkmikes. Sealt suunatakse nad otse DQ mooduli seadistustabelitesse tootmisringis. <\/li>\n<\/ul>\n<p>\nOtsese skriptide saatmise riske tootmisringkonnas ei ole. Isegi s\u00fcntaktilise vea korral on maksimum, mis meid \u00e4hvardab, - \u00fche kontrolli mitte t\u00e4itmine, kuna andmete arvutuss\u00fcsteem ja kvaliteedikontrollide k\u00e4ivitusprotsess on omavahel eraldatud.<\/p>\n<p>Sisuliselt on DQ teenus pidevalt aktiivne tootmisringkonnas ja valmis alustama oma t\u00f6\u00f6d, kui j\u00e4rgmine andmehulk ilmub. <\/p>\n<h2>L\u00f5petuseks<\/h2>\n<p>\nMadaloodud kodeerimise eelised on ilmsed. Arendajatel ei ole vaja rakendust \"nullist\" v\u00e4lja t\u00f6\u00f6tada. Ja vabanenud programmeerija annab tulemusi kiiremini. Kiirus omakorda vabastab t\u00e4iendava ajavaru, et tegeleda optimeerimise k\u00fcsimustega. Seega v\u00f5ib sellisel juhul loota paremate ja kiiremate lahenduste olemasolule.<\/p>\n<p><b>Muidugi ei ole madaloodud kood imerohi ja maagia ei juhtu iseenesest:<\/b><\/p>\n<ul>\n<li>Madaloodud koodit\u00f6\u00f6stus l\u00e4bib \"tugevdamise\" etappi, kus seni puuduvad \u00fchtsed t\u00f6\u00f6stusstandardid;<\/li>\n<li>Paljud madaloodud lahendused ei ole tasuta ja nende soetamine peab olema teadlik samm, mille peaks tegema t\u00e4ieliku veendumusega finantsh\u00fcvede osas nende kasutamisest;<\/li>\n<li>Paljud madaloodud lahendused ei sobi alati h\u00e4sti GITi \/ SVNi. Kasutamine v\u00f5ib olla ebamugav, kui genereeritud kood on varjatud;<\/li>\n<li>Aruandluse laienemisel v\u00f5ib olla vajalik madaloodud lahenduse kohandamine - see omakorda kutsub esile \"seotuse ja s\u00f5ltuvuse\" efekti madaloodud lahenduse pakkujast.<\/li>\n<li>Kohane turvalisuse tagamise tase on v\u00f5imalik, kuid v\u00f5ib olla v\u00e4ga t\u00f6\u00f6mahukas ja keeruline madaloodud s\u00fcsteemide mootorite rakendamiseks. Madaloodud platvormid ei tohiks olla valitud ainult nende kasutamise kasu otsimise p\u00f5hjal. Valimisel on m\u00f5istlik k\u00fcsida, kas funktsionaalsus juurdep\u00e4\u00e4su haldamiseks ja identifitseerimisandmete delegeerimise\/escalation tasemele kogu organisatsiooni IT-maastik h\u00f5lmab.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fctilistes platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/8ad44d2f71f519b70f5ae1e1fe722066.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKuid kui k\u00f5ik valitud s\u00fcsteemi puudused on teile teada ja selle kasutamise kasulikkus on siiski domineeriv, siis minge madaloodud koodi juurde kartmata. Veelgi enam, liikumine selle poole on v\u00e4ltimatu - nagu on v\u00e4ltimatu iga evolutsioon.<\/p>\n<p>Kui \u00fcks arendaja madala koodiga platvormil suudab oma t\u00f6\u00f6d teha kiiremini kui kaks arendajat ilma madala koodita, annab see ettev\u00f5ttele iga\u00fches eelise. Madala koodi lahenduste kasutuselev\u00f5tu takistus on v\u00e4iksem kui \"traditsiooniliste\" tehnoloogiate puhul, mis positiivselt m\u00f5jutab t\u00f6\u00f6j\u00f5u puuduse k\u00fcsimust. Madala koodi t\u00f6\u00f6riistade abil on v\u00f5imalik kiirendada koost\u00f6\u00f6d funktsionaalsete meeskondade vahel ja kiiresti langetada otsuseid andmete teadusuuringute valitud suuna \u00f5igsuse osas. Madala taseme platvormid v\u00f5ivad olla organisatsiooni digitaalsete transformatsioonide p\u00f5hjustajad, kuna loodud lahendused on m\u00f5istetavad mitte-tehnilistele spetsialistidele (eriti \u00e4rit\u00f6\u00f6tajatele). <\/p>\n<p>Kui teil on t\u00e4htaegade surve, keeruline \u00e4riloogika, tehnoloogiaekspertiisi puudus ja teil on vaja turule j\u00f5udmist kiirendada, on madala koodiga lahendus \u00fcks viise teie vajaduste rahuldamiseks.<\/p>\n<p>Ei saa eitada traditsiooniliste arendust\u00f6\u00f6riistade t\u00e4htsust, kuid paljude juhtumite korral on madala koodi lahenduste kasutamine parim viis suurendada lahenduste t\u00f5husust.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/neoflex\/blog\/520554\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u0434\u043e\u0431\u0440\u043e\u0433\u043e \u0434\u043d\u044f! \u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0418\u0422-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0443 \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043b\u0435\u0436\u0430\u0442 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0443\u0441\u043b\u0443\u0433 \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432. \u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u2014 \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0438 \u0442\u0440\u0443\u0434\u043e\u0437\u0430\u0442\u0440\u0430\u0442\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u043b\u044e\u0431\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":95284,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-95283","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0423\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u0434\u043e\u0431\u0440\u043e\u0433\u043e \u0434\u043d\u044f! \u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0418\u0422-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0443 \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043b\u0435\u0436\u0430\u0442 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\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\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\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\udd47\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 low-code \u0432 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0423\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u0434\u043e\u0431\u0440\u043e\u0433\u043e \u0434\u043d\u044f! \u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0418\u0422-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0443 \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043b\u0435\u0436\u0430\u0442 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah\" \/>\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=\"2020-09-27T17:42:23+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-27T17:42:23+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\udd47Madala koodi rakendamine anal\u00fc\u00fcsiplatvormidel | ProHoster","description":"Lugupeetud lugejad, tere p\u00e4evast! IT-platvormide rajamise \u00fclesanne andmete kogumiseks ja anal\u00fc\u00fcsimiseks tekib varem v\u00f5i hiljem igas ettev\u00f5ttes, mille \u00e4ri p\u00f5hineb intellektuaalselt koormatud mudelil.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah","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\udd47\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 low-code \u0432 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 | ProHoster","og:description":"\u0423\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u0434\u043e\u0431\u0440\u043e\u0433\u043e \u0434\u043d\u044f! \u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0418\u0422-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0443 \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043b\u0435\u0436\u0430\u0442 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/primenenie-low-code-v-analiticheskih-platformah","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":"2020-09-27T17:42:23+00:00","article:modified_time":"2020-09-27T17:42:23+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"95283","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:08:24","updated":"2026-02-22 15:29:41","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/95283","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=95283"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/95283\/revisions"}],"predecessor-version":[{"id":162190,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/95283\/revisions\/162190"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/95284"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=95283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=95283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=95283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}