{"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\u00fcsi platvormides","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Lugupidamine, head p\u00e4eva!<\/p>\n<p>IT-platvormide loomise \u00fclesanne andmete kogumiseks ja anal\u00fc\u00fcsimiseks tekib varem v\u00f5i hiljem igas ettev\u00f5ttes, mille \u00e4ri p\u00f5hineb keerulisel teenuse osutamise mudelil v\u00f5i tehnoloogiliselt keerukate toodete loomisel. Anal\u00fc\u00fctiliste platvormide v\u00e4ljat\u00f6\u00f6tamine on keeruline ja t\u00f6\u00f6mahukas \u00fclesanne. Siiski v\u00f5ib iga \u00fclesande lihtsustamiseks leida v\u00f5imalusi. Selles artiklis tahan jagada oma kogemusi low-code-t\u00f6\u00f6riistade rakendamisest, mis aitavad luua anal\u00fc\u00fctilisi lahendusi. See kogemus on saadud ettev\u00f5tte \u201eNeoflex\u201d Big Data Solutions suunalise projektide elluviimisel. Big Data Solutions suund ettev\u00f5ttes \u201eNeoflex\u201d on alates 2005. aastast tegelenud andmete ladude ja j\u00e4rvede \u00fclesehitamise k\u00fcsimustega, lahendab teabe t\u00f6\u00f6tlemise kiirusprobleeme ning t\u00f6\u00f6tab v\u00e4lja andmekvaliteedi haldamise metoodikat.<\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fcsi platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/ca066793a937041577085dfb813f979e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKeegi ei p\u00e4\u00e4se t\u00f5eliselt teadlikult v\u00e4ltimast n\u00f5rgalt ja\/v\u00f5i tugevalt struktureeritud andmete kogumist. Isegi v\u00e4ikeettev\u00f5tte puhul. Kui ettev\u00f5te kasvab, seisab ambitsioonikas ettev\u00f5tja silmitsi k\u00fcsimustega, nagu lojaalsusprogrammi arendamine, m\u00fc\u00fcgipunktide t\u00f5hususe anal\u00fc\u00fcs, sihitud reklaam ja vajadus lisatoodete j\u00e4rele. Esialgu v\u00f5ib probleem isegi lahendada \u201ek\u00fcmne s\u00f5rme\u201d meetodil. Kuid ettev\u00f5tte laienemisega muutub anal\u00fc\u00fctikaplatvormi kasutamine paratamatuks.<\/p>\n<p>Kuid millal v\u00f5ivad andmeanal\u00fc\u00fctika \u00fclesanded muutuda t\u00f5eliselt keerukateks? Samal hetkel, kui on juttu t\u00f5eliselt suurtest andmetest.<br \/>\nT\u00f5eliselt keerulise \u00fclesande lihtsustamiseks v\u00f5ib porkna s\u00fc\u00fca osade kaupa. <\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fcsi 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 iseseisev struktuur, seda lihtsam on teil, teie kollegidel ja kogu ettev\u00f5ttel 's\u00f6\u00f6da' suur porkna.<\/p>\n<p>Sellele postulaadile on j\u00f5udnud praktiliselt k\u00f5ik meie kliendid, muutes oma maastikku, p\u00f5hinedes DevOps-meeskondade inseneritavadel.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nKuid isegi \u201eeraldiseisva, elevandi\u201c dieedi korral on meil head v\u00f5imalused IT-maastiku \u201e\u00fclek\u00fclluse\u201c saamiseks. Sel hetkel tasub peatuda, hingata v\u00e4lja ja vaadata poole. <b>low-code inseneritehnoloogia platvorm<\/b>.<\/p>\n<p>Paljusid arendajaid hirmutab perspektiiv karj\u00e4\u00e4ril\u00f5ksust, liikudes otsekohe kodeerimisest \u201elohistamise\u201c suunas low-code s\u00fcsteemide UI-liidestes. Kuid masinate tulek ei viinud insenere kadumiseni, vaid t\u00f5stis nende t\u00f6\u00f6 uuele tasemele!<\/p>\n<p>Vaatame, miks.<\/p>\n<p>Andmeanal\u00fc\u00fcs logistikas, telekommunikatsiooni sektoris, meediauuringutes, rahanduse valdkonnas on alati seotud j\u00e4rgmiste k\u00fcsimustega: <\/p>\n<ul>\n<li>Automatiseeritud anal\u00fc\u00fcsi l\u00e4biviimise kiirus;<\/li>\n<li>Eksperimentide l\u00e4biviimise v\u00f5imalus ilma andmevoogude p\u00f5hivoolu m\u00f5jutamata;<\/li>\n<li>Valmistatud andmete usaldusv\u00e4\u00e4rsus;<\/li>\n<li>Muudatuste j\u00e4lgimine ja versioonihaldus;<\/li>\n<li>Andmete p\u00e4ritolu, andmete radade j\u00e4lgimine, CDC;<\/li>\n<li>Uute funktsioonide kiire kohaletoimetamine tootmiskeskkonda;<\/li>\n<li>Ja kurikuulus: arendamise ja hooldamise kulu.<\/li>\n<\/ul>\n<p>\nSee, inseneritel on tohutult palju k\u00f5rgetasemelisi \u00fclesandeid, mille t\u00e4itmine efektiivselt on v\u00f5imalik vaid madalate arendustegevuste m\u00f5tetest vabanemisega.<\/p>\n<p>Arendajate uuele tasemele \u00fclemineku eeltingimuseks on olnud \u00e4ri areng ja digitaliseerimine. Arendaja v\u00e4\u00e4rtus on samuti muutunud: puudus on arendajatest, kes suudavad s\u00fcveneda automatiseeritava \u00e4ri kontseptsioonide olemusse.<\/p>\n<p>Vaatame, kuidas madalama ja k\u00f5rgema taseme programmeerimiskeeled omavahel seonduvad. \u00dcleminek madalama taseme keeltest k\u00f5rgema taseme keelte suunas t\u00e4hendab, et liigume \u201eotsek\u00e4skudelt rauale\u201d \u201einimkeeles k\u00e4skudeni\u201d. See t\u00e4hendab, et lisandub teatud abstraktsioonikiht. Seega, \u00fcleminek low-code platvormidele k\u00f5rgema taseme programmeerimiskeeltelt on nagu \u00fcleminek \u201einimkeeles k\u00e4skudelt\u201d \u201e\u00e4ri keeles k\u00e4skudele\u201d. Kui leidub arendajaid, kellele see fakt muret teeb, siis v\u00f5ivad nad olla mures juba alates hetkest, mil JavaScript ilmavalgust n\u00e4gi, kus kasutatakse massiivi sorteerimise funktsioone. Need funktsioonid, loomulikult, sisaldavad teisi programmeerimisvahendeid sama k\u00f5rgema taseme programmeerimise all.<\/p>\n<p><b>Seega on low-code lihtsalt veel \u00fche abstraktsioonikihi ilmumine. <\/b><\/p>\n<h2>Praktiline kogemus low-code'i kasutamisest<\/h2>\n<p>\nLow-code teema on piisavalt lai, kuid t\u00e4na sooviksin r\u00e4\u00e4kida \u201ev\u00e4he kodeerimise kontseptsioonide\u201d praktilisest rakendamisest \u00fche meie projekti n\u00e4itel.<\/p>\n<p>ProHoster-i Big Data Solutions divisjon keskendub peamiselt finantssektorile, luues andmesalvestusi ja andmej\u00e4rvede ning automatiseerides erinevat aruandlust. Selles valdkonnas on madala koodiga lahenduste kasutamine juba pikka aega standardiks kujunenud. Muuhulgas v\u00f5ib nimetada ETL-protsesside korraldamiseks m\u00f5eldud madala koodi t\u00f6\u00f6riistu: Informatica Power Center, IBM Datastage, Pentaho Data Integration. V\u00f5i Oracle Apex, mis toimib kiire arenduse keskkonnana andmete juurdep\u00e4\u00e4su ja redigeerimise jaoks. Siiski ei ole madala koodi arendust\u00f6\u00f6riistade kasutamine alati seotud kitsaste rakenduste loomisega kommerts-tehnoloogiakuhjal, millel on selgelt v\u00e4ljendatud tarnija s\u00f5ltuvus.<\/p>\n<p>Madala koodiga platvormide abil on v\u00f5imalik korraldada ka andmevoogude orkestreerimist, luua andmete teaduse platvorme v\u00f5i n\u00e4iteks andmekvaliteedi kontrollimise mooduleid. <\/p>\n<p>\u00dcheks n\u00e4idisprojekti kogemuse n\u00e4idiseks madalkoodide arendust\u00f6\u00f6riistade kasutamiseks on koost\u00f6\u00f6 \"Neoflex\" ja Mediascope'i vahel, mis on \u00fcks Venemaa meediauuringute turuliidreid. Selle ettev\u00f5tte \u00e4ri\u00fcheks \u00fclesandeks on andmete tootmine, mille p\u00f5hjal reklaamijad, Interneti-platvormid, televisioonikanalid, raadiojaamad, reklaamiagentuurid ja br\u00e4ndid teevad reklaamiostuotsuseid ja planeerivad oma turunduskommunikatsiooni. <\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fcsi platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/d6410c1fe93231281bdd536798fe7c66.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMeediauuringud on tehnoloogiliselt keeruline \u00e4ritase. Videoj\u00e4rje tundmine, andmete kogumine seadmetest, mis anal\u00fc\u00fcsivad vaatamist, tegevuse m\u00f5\u00f5tmine veebiresurssidel \u2013 see k\u00f5ik eeldab ettev\u00f5ttelt suurt IT-meeskonda ja tohutut kogemust anal\u00fc\u00fcsilahenduste loomisel. Kuid info koguse ja allikate arvu eksponentsiaalne kasv sunnib IT-andmete t\u00f6\u00f6stust pidevalt arenema. Mediascope'i juba toimiva anal\u00fc\u00fcsiplatvormi laiendamise k\u00f5ige lihtsam lahendus oleks v\u00f5inud olla IT-meeskonna suurendamine. Kuid palju t\u00f5husam lahendus on arenduse protsessi kiirendamine. \u00dcheks sammuks selle suunas v\u00f5iks olla madala koodisisestusega platvormide kasutamine.<\/p>\n<p>Projekt algas juba t\u00f6\u00f6valmis produkti lahendusega. Siiski, MSSQL-lahenduse rakendamine ei suutnud t\u00e4ielikult vastata ootustele funktsionaalsuse suurendamise osas, s\u00e4ilitades samas rahuldava t\u00e4iendustasu.<\/p>\n<p>Meie ees seisnud \u00fclesanne oli t\u00f5eliselt ambitsioonikas \u2013 \u00abNeoflex\u00bb ja Mediascope pidid v\u00e4lja t\u00f6\u00f6tama t\u00f6\u00f6stusliku lahenduse v\u00e4hem kui aasta jooksul, kusjuures MVP pidanuks valmima juba esimese kvartali jooksul alates t\u00f6\u00f6de algusest.<\/p>\n<p>Uue andmeplatvormi p\u00f5hjana, mis p\u00f5hineb low-code-arvutustel, valiti tehnoloogiate virn Hadoop. Andmete salvestamise standardiks sai HDFS, kasutades parquet formaadis faile. Andmetele, mis asuvad platvormil, p\u00e4\u00e4stakse juurde Hive'i kaudu, kus k\u00f5ik saadaval olevad vitriinid on esitatud v\u00e4liste tabelitena. Andmete laadimine salvestusse toimus Kafka ja Apache NiFi abiga.<\/p>\n<p>Low-code-t\u00f6\u00f6riista kasutati selles kontseptsioonis t\u00f6\u00f6voogude optimeerimiseks, et v\u00e4hendada k\u00f5ige t\u00f6\u00f6mahukamat \u00fclesannet anal\u00fc\u00fctilise platvormi koostamisel \u2013 andmete arvutamise \u00fclesannet.<\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fcsi platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/fe62234ab0ae611a0c4a536ca68af898.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAndmete mappimiseks valiti p\u00f5himehhanismiks low-code-t\u00f6\u00f6riist Datagram. <b>Neoflex Datagram<\/b> on vahend transformatsioonide ja andmevoogude arendamiseks. <br \/>\nK\u00e4esoleva t\u00f6\u00f6riista kasutamine v\u00f5imaldab v\u00e4ltida Scala koodi k\u00e4sitsi kirjutamist. Scala kood genereeritakse automaatselt Model Driven Architecture l\u00e4henemist kasutades.<\/p>\n<p>Selge pluss selle l\u00e4henemise juures on arendusprotsessi kiirendamine. Kuid kiirusest lisaks on ka teised eelised: <\/p>\n<ul>\n<li>Allikate\/sihtkohtade sisu ja struktuuri vaatamine;<\/li>\n<li>Andmevoogude objektide p\u00e4ritolu j\u00e4lgimine kuni \u00fcksikute v\u00e4ljadeni (lineage);<\/li>\n<li>Muundamiste osaline t\u00e4itmine, vaadates vahepealseid tulemusi;<\/li>\n<li>Allika koodi vaatamine ja selle parandamine enne t\u00e4itmist;<\/li>\n<li>Automaatne muundamiste valideerimine;<\/li>\n<li>Automaatne andmete laadimine 1:1.<\/li>\n<\/ul>\n<p>\nLow-code lahenduste l\u00e4vendi saavutamine transformatsioonide genereerimiseks on piisavalt madal: arendajal on vajalik teada SQL-i ja omada kogemusi ETL-t\u00f6\u00f6riistadega. Samas tuleb m\u00e4rkida, et code-driven genereerijad ei ole ETL-t\u00f6\u00f6riistad laiemas m\u00f5ttes. Low-code t\u00f6\u00f6riistadel v\u00f5ib puududa oma keskkond koodi t\u00e4itmiseks. See t\u00e4hendab, et genereeritud kood t\u00f6\u00f6tatakse v\u00e4lja keskkonnas, mis oli klastris enne low-code lahenduse installimist. Ja see on ilmselt veel \u00fcks pluss low-code\u2019i kasuks. Kuna parallel on low-code meeskonna k\u00f5rval aktiivne ka \"klassikaline\" meeskond, kes rakendab funktsionaalsust n\u00e4iteks puhtal Scala-koodil. M\u00f5lema meeskonna muudatuste toomine tootmisse saab olema lihtne ja \"juhtmeta\".<\/p>\n<p>V\u00f5ib-olla tasub mainida, et lisaks low-code lahendustele on olemas ka no-code lahendused. Need on p\u00f5him\u00f5tteliselt erinevad asjad. Low-code v\u00f5imaldab arendajal rohkem sekkuda genereeritud koodi. Datagrami puhul on v\u00f5imalik vaadata ja redigeerida genereeritud Scala koodi, kuid no-code ei pruugi sellist v\u00f5imalust pakkuda. See erinevus on m\u00e4rkimisv\u00e4\u00e4rne mitte ainult lahenduse paindlikkuse, vaid ka andmeinseneride t\u00f6\u00f6 mugavuse ja motivatsiooni osas. <\/p>\n<h2>Lahenduse arhitektuur<\/h2>\n<p>\nProovime aru saada, kuidas low-code t\u00f6\u00f6riist aitab lahendada andmete arvutamise funktsionaalsuse arendamise kiirusprobleemi. Esiteks anal\u00fc\u00fcsime s\u00fcsteemi funktsionaalset arhitektuuri. Antud juhul on n\u00e4itena toodud andmete tootmise mudel meediauuringute jaoks.<\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fcsi platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/365f1b1cf69bf2a71854eb05c5bba809.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Meie puhul on andmeallikad v\u00e4ga mitmekesised ja erinevad:<\/b><\/p>\n<ul>\n<li>Peoplemeters (TV meters) \u2014 software-hardware devices that read user behavior from respondents of the television panel \u2014 who, when, and which TV channel was watched in the household participating in the study. The provided information consists of a stream of viewing intervals linked to the media package and media product. Data at the loading stage into the Data Lake can be enriched with demographic attributes, geographic references, time zones, and other information needed for analyzing viewing habits of specific media products. The measurements taken can be used for analysis or planning advertising campaigns, assessing audience activity and preferences, and scheduling broadcasts.<\/li>\n<li>Data may come from monitoring systems of streaming television and measuring content viewing on internet video resources.<\/li>\n<li>Measurement tools in the web environment, including both site-centric and user-centric counters. A browser extension research bar and a mobile application with built-in functionality can serve as data providers 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>Andmed v\u00f5ivad samuti p\u00e4rineda saitidelt, mis konsolideerivad online-k\u00fcsimustike t\u00e4itmise tulemusi ja telefonintervjuude tulemusi ettev\u00f5tte uuringutes;<\/li>\n<li>Andmej\u00e4rve t\u00e4iendav rikastamine v\u00f5ib toimuda partnerettev\u00f5tete logide andmete laadimise kaudu.<\/li>\n<\/ul>\n<p>\nAllikate s\u00fcsteemidest toore andmete esmase staging'u laadimise rakendamine as is v\u00f5ib olla organiseeritud erinevalt. Kui kasutada low-code lahenduseid, on v\u00f5imalik automaatne l\u00e4hetuslaadimisstsenaariumide genereerimine metandmete p\u00f5hjal. Sellisel juhul ei ole vajalik laskuda source to target mappide tasemele. Automaatse laadimise teostamiseks on vajalik luua \u00fchendus allikaga, p\u00e4rast mida tuleb laadimisliideses m\u00e4\u00e4rata laadimise alla kuuluvate \u00fcksuste loend. Kataloogistruktuuri loomine HDFS-is toimub automaatselt ja vastab allikasse salvestamise struktuurile.<\/p>\n<p>Kuid selle projekti kontekstis otsustasime seda low-code platvormi v\u00f5imalust mitte kasutada, kuna Mediascope on juba iseseisvalt k\u00e4ivitanud samalaadse teenuse loomise Nifi + Kafka kombinatsioonil.<\/p>\n<p>Oluline on kohe \u00f6elda, et need t\u00f6\u00f6riistad ei ole omavahel vahetatavad, vaid pigem t\u00e4iendavad teineteist. Nifi ja Kafka suudavad t\u00f6\u00f6tada nii otseses (Nifi -&gt; Kafka) kui ka tagurpidi (Kafka -&gt; Nifi) seoses. Meediauuringute platvormil kasutati esimest seose varianti.<\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fcsi platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/8284ef5bd6d3b947998ffd42bfb66dbd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMeie juhtumi puhul pidi Nifi t\u00f6\u00f6tlema erinevat t\u00fc\u00fcpi andmeid allikatest ning edastama need Kafka vahendajale. Samuti suunati s\u00f5numite saatmine kindlasse Kafka teema Nifi PublishKafka protsessorite abil. Nende pipeline'ide koordineerimine ja haldamine toimub visuaalses liideses. T\u00f6\u00f6riista Nifi ja Nifi + Kafka kombinatsiooni v\u00f5ib samuti nimetada low-code l\u00e4henemiseks arendusele, millel on madal sisenemise piir tehnoloogiatesse Big Data ning mis kiirendab rakenduste arendamise protsessi. <\/p>\n<p>J\u00e4rgmine etapp projekti elluviimisel h\u00f5lmas detailsete andmete \u00fchtse semantilise kihi vormingusse toomist. Ajalooliste atribuutidega entiteedi korral toimub arvutus arvestatava partitsiooni kontekstis. Kui entiteet ei ole ajalooline, on v\u00f5imalik kas kogu objekti sisu \u00fcmberarvutamine v\u00f5i selle objekti \u00fcmberarvutamisest loobumine (muutuste puudumise t\u00f5ttu). Selles etapis genereeritakse v\u00f5tmed k\u00f5igi entiteetide jaoks. V\u00f5tmed salvestatakse vastavatesse Hbase'i p\u00f5hielementide registritesse, mis sisaldavad seoseid anal\u00fc\u00fctilise platvormi v\u00f5tmete ja allika s\u00fcsteemide v\u00f5tmete vahel. Aatomaarsete entiteetide konsolideerimine k\u00e4ib eelnevalt arvutatud anal\u00fc\u00fctiliste andmete rikastamisega. Andmete arvutamise raamistikuks oli Spark. Kirjeldatud funktsionaalsus andmete \u00fchtse semantika saavutamiseks viidi ellu samuti low-code-t\u00f6\u00f6riista Datagram kaardistuste baasil.<\/p>\n<p>Sihtarhitektuuris oli vajalik, et SQL-juurdep\u00e4\u00e4s andmetele oleks \u00e4rikasutajatele tagatud. Selle v\u00f5imaluse jaoks kasutati Hive'i. Hive'i objektide registreerimine toimub automaatselt, kui madalkoodit\u00f6\u00f6riista \u201eRegistr Hive Table\u201c funktsioon on aktiivne.<\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fcsi platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/a13f7260d067d3d21b7090bd8fa10aff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Arvutuse voo haldamine<\/h2>\n<p>\nDatagramil on liides t\u00f6\u00f6voogude disaini loomiseks. Kaardistuste k\u00e4ivitamine v\u00f5ib toimuda Oozie ajastaja abil. T\u00f6\u00f6voogude arendaja liideses on v\u00f5imalik luua andmete t\u00f6\u00f6tlemise muundamiste paralleelseid, j\u00e4rjestikulisi v\u00f5i tingimuslike 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=\"serverile\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3662\">serverile<\/a> Apache Livy'd. Apache Livy't kasutatakse rakenduste k\u00e4ivitamiseks otse arenduskeskkonnast. <\/p>\n<p>Kui ettev\u00f5ttel on juba olemas oma protsesside orkestratsioon, on v\u00f5imalik kasutada REST API-d, et integreerida mappimisi juba olemasolevasse voogu. N\u00e4iteks oleme saanud piisavalt edukat kogemust mappimiste integreerimisel Scalasse, mis on kirjutatud PLSQL ja Kotlinis. Madala koodiga t\u00f6\u00f6riista REST API h\u00f5lmab selliseid operatsioone nagu k\u00e4ivitatava aasta genereerimine mappimise kujunduse p\u00f5hjal, mappimise v\u00e4ljakutse, mappimise j\u00e4rjestuse v\u00e4ljakutse ja loomulikult parameetrite edastamine URL-is mappimiste k\u00e4ivitamiseks.<\/p>\n<p>Oozie k\u00f5rval on v\u00f5imalik korraldada arvutusvoog Airflow abil. Ma ei hakka pikalt peatuma Oozie ja Airflow v\u00f5rdlemisel, vaid \u00fctlen lihtsalt, et meediauurimiste projekti kontekstis langes valik Airflow kasuks. Peamisteks argumentideks olid seekord aktiivsem kogukond, mis arendab toodet, ja arenenum liides + API.<\/p>\n<p>Airflow on samuti hea, sest protsesside arvutamiseks kasutatakse paljude lemmikprogrammi Pythonit. \u00dcldiselt ei ole avatud l\u00e4htekoodiga t\u00f6\u00f6voogude haldamise platvorme nii palju. Protsesside k\u00e4ivitamine ja j\u00e4lgimine (sealhulgas Gantti diagramm) annab Airflow'le lisapunkte. <\/p>\n<p>Konfiguratsioonifaili vorminguks low-code lahenduse k\u00e4ivitamiseks sai spark-submit. See juhtus kahe p\u00f5hjuse t\u00f5ttu. Esiteks v\u00f5imaldab spark-submit otse k\u00e4ivitada jar-faili konsoolist. Teiseks v\u00f5ib see sisaldada kogu vajalikku teavet t\u00f6\u00f6voo konfigureerimiseks (mis lihtsustab skriptide kirjutamist, mis genereerivad Dag'i).<br \/>\nMeie juhul on k\u00f5ige sagedamini esinev Airflow t\u00f6\u00f6voo element SparkSubmitOperator.<\/p>\n<p>SparkSubmitOperator v\u00f5imaldab k\u00e4ivitada jar'e - pakitud Datagrami kaarte, mille jaoks on eelnevalt valmistatud sisendparameetrid.<\/p>\n<p>Oluline on mainida, et iga Airflow \u00fclesanne t\u00e4idetakse eraldi l\u00f5imes ja ei tea teistest \u00fclesannetest midagi. Seet\u00f5ttu toimub \u00fclesannetevaheline suhtlemine haldamisoperatsioonide, n\u00e4iteks DummyOperator v\u00f5i BranchPythonOperator, kaudu.<\/p>\n<p>Low-code lahenduse Datagram kasutamine koos konfiguratsioonifailide universaliseerimisega (mis moodustavad Dag) on toonud kaasa m\u00e4rkimisv\u00e4\u00e4rse kiiruset\u00f5usu ja arendusprotsessi lihtsustamise andmevoogude loomisel.<\/p>\n<h2>Vitrinite arvutamine<\/h2>\n<p>\nT\u00f5en\u00e4oliselt on k\u00f5ige k\u00f5rgemal tasemel vaimselt laetud etapp anal\u00fc\u00fcsandmete tootmisel just vitrinide loomine. \u00dche andmevoo anal\u00fc\u00fcsimisel toimub sel etapil viidatud standardse t\u00f5lke kohandamine, arvestades ajav\u00f6\u00f6ndite korrektiive seostudes edastamisv\u00f5rguga. Samuti on v\u00f5imalik kohandada kohaliku edastamise v\u00f5rku (kohalikud uudised ja reklaam). Selles etapis jagatakse pideva vaatamise ajaklussed meedia toodete vaatamise ajavahemike anal\u00fc\u00fcsi alusel. Siin toimub ka vaatamise v\u00e4\u00e4rtuste \u201ekaalumine\u201d nende olulisuse info alusel (korrektuuriteguri arvutamine).<\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fcsi platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/b5f90f7d1d95c97c9819218aab9079c4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00dcks samm vitriinide ettevalmistamisel on andmete valideerimine. Valideerimise algoritm on seotud mitmete matemaatiliste teadusmudelite rakendamisega. Ent madala koodiga platvormi kasutamine v\u00f5imaldab keerulise algoritmi jagada mitmeks eraldi visuaalselt loetavaks kaartimiseks. Iga kaartimine t\u00e4idab konkreetset \u00fclesannet. Selle tulemusena on v\u00f5imalik vahepealne silumine, logimine ja andmete ettevalmistamise etappide visualiseerimine. <\/p>\n<p>Valideerimise algoritmi otsustati diskreetida j\u00e4rgmisteks alamsammudeks:<\/p>\n<ul>\n<li>Regressioonide koostamine, mis seob telekanali vaatamised piirkonnas k\u00f5ikide v\u00f5rkude vaatamistega piirkonnas 60 p\u00e4eva jooksul. <\/li>\n<li>Stjuuditeeritud j\u00e4\u00e4kide arvutamine (reaalsete v\u00e4\u00e4rtuste k\u00f5rvalekalle regressioonimudeli ennustatud v\u00e4\u00e4rtustest) k\u00f5igi regressioonipunktide ja arvestusp\u00e4eva jaoks.<\/li>\n<li>Anomaalsete piirkond-telekanali paaride valimine, kus arvestusp\u00e4eva stjuuditeeritud j\u00e4\u00e4k \u00fcletab normi (mis on m\u00e4\u00e4ratud operatsiooni seadistustega).<\/li>\n<li>Korrigeeritud studentiseeritud j\u00e4\u00e4gi \u00fcmberarvutamine anomaalsete piirkondade-telev\u00f5rkude paaride jaoks iga vastaniku puhul, kes vaatas v\u00f5rgustikku piirkonnas, m\u00e4\u00e4rates selle vastaniku panuse (studentiseeritud j\u00e4\u00e4gi muutuse suurus), j\u00e4ttes v\u00e4lja selle vastaniku vaatamise valimist.<\/li>\n<li>Kandidaatide otsimine, kelle v\u00e4listamine toob arvutusp\u00e4eva studentiseeritud j\u00e4\u00e4gi normaali. <\/li>\n<\/ul>\n<p>\n\u00dclaltoodud n\u00e4ide kinnitab h\u00fcpoteesi, et andmealusel inseneril on juba liiga palju m\u00f5tteid peas\u2026 Ja kui see t\u00f5esti on 'insener', mitte 'kooder', siis madala koodiga t\u00f6\u00f6riistade kasutamise professionaalse languse hirm peaks tema jaoks l\u00f5puks kaduma.<\/p>\n<h2>Mida veel madala koodiga teha saab?<\/h2>\n<p>\nMadalakoodiliste t\u00f6\u00f6riistade kasutusala pakett- ja vooluandmete t\u00f6\u00f6tlemisel ilma Scala k\u00e4sitsi kodeerimise vajaduseta ei l\u00f5ppe.<\/p>\n<p>Low-code kasutamine datalake'ide arenduses on meie jaoks juba muutunud teatud standardiks. V\u00f5ib \u00f6elda, et Hadoopi stekil p\u00f5hinevad lahendused j\u00e4rgivad klassikaliste RDBMS-ide p\u00f5histe DWH-de arenguteed. Hadoopi stekil p\u00f5hinevad madalkoodilised t\u00f6\u00f6riistad suudavad lahendada nii andmete t\u00f6\u00f6tlemise \u00fclesandeid kui ka l\u00f5pp-BI-liideste loomise \u00fclesandeid. Samas tuleb m\u00e4rkida, et BI m\u00f5iste ei t\u00e4henda ainult andmete esitlust, vaid ka nende redigeerimist \u00e4rikasutajate poolt. Seda funktsionaalsust kasutame sageli anal\u00fc\u00fctiliste platvormide loomisel finantssektori jaoks. <\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fcsi platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/cde5ce9dac9fcc9356b2b0ed291e299c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMuuhulgas lahendab low-code, eriti Datagram, andmevoogude objektide p\u00e4ritolu j\u00e4lgimise \u00fclesande, saavutades atomaarse taseme eraldi v\u00e4ljade osas (lineage). Selleks on low-code t\u00f6\u00f6riistas rakendatud \u00fchendus Apache Atlase ja Cloudera Navigatoriga. Sisuliselt peab arendaja registreerima objektide kogumi Atlase s\u00f5nastikes ja viitama registreeritud objektidele mappide loomisel. Andmete p\u00e4ritolu j\u00e4lgimise mehhanism v\u00f5i objektide s\u00f5ltuvuste anal\u00fc\u00fcs s\u00e4\u00e4stab suures koguses aega, kui on vaja teha muudatusi arvutuste algoritmides. N\u00e4iteks finantsaruannete koostamisel aitab see funktsioon mugavamalt \u00fcle elada seadusandlikke muudatusi. Mida paremini me m\u00f5istame vormidevahelist s\u00f5ltuvust detailse kihi objektide l\u00f5ikes, seda v\u00e4hem kohtame '\u00fcllatavaid' defekte ja v\u00e4hendame \u00fcmbertegemiste arvu. <\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fcsi platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/0b351b116564090bd03f6adf3fc52616.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Andmete kvaliteet &amp; low-code<\/h2>\n<p>\nVeel \u00fclesandeid, mille on rakendanud low-code t\u00f6\u00f6riist ettev\u00f5ttes Mediascope, on andmekvaliteedi klassi \u00fclesanne. Andmekontrolli konveieri rakendamise erip\u00e4ra uurimisettev\u00f5tte projektis oli see, et see ei m\u00f5jutanud andmete peamise arvutust\u00f6\u00f6tluse toimimist ja kiirus. Andmete kontrollimisprotsesside iseseisvaks orkestreerimiseks kasutati juba tuttavat Apache Airflow'd. Iga andmebaasi tootmisetapi valmisolekul k\u00e4ivitati paralleelselt eraldiseisev DQ konveier. <\/p>\n<p>Hea praktikana peetakse andmete kvaliteedi j\u00e4lgimist juba andmete tekkimise hetkest anal\u00fc\u00fctilises platvormis. Omades teavet metaandmete kohta, saame kontrollida p\u00f5hitingimuste t\u00e4itmist \u2014 not null, constraints, foreign keys \u2014 juba siis, kui teave j\u00f5uab esmasesse kihti. See funktsionaalsus on rakendatud automaatselt genereeritavate mappide baasil data quality peres Datagram'is. Koodigeneratsioon p\u00f5hineb samuti mudeli metaandmetel. Ettev\u00f5ttes Mediascope toimus sidumine Enterprise Architect'i toote metaandmetega. <\/p>\n<p>Ait\u00e4h madala koodiga t\u00f6\u00f6riista ja Enterprise Architecti \u00fchendamise eest on automaatselt genereeritud j\u00e4rgmised kontrollid:<\/p>\n<ul>\n<li>Kontroll v\u00e4\u00e4rtuste \u00abnull\u00bb olemasolu v\u00e4ljade puhul, mille modifikaator on \u00abnot null\u00bb; <\/li>\n<li>Kontroll primaarv\u00f5tme dubleeritud olemasolu;<\/li>\n<li>Kontroll once-entity v\u00e4lisv\u00f5tme olemasolu;<\/li>\n<li>Kontroll unikaalsuse olemasolu rida kombinatsiooni alusel;<\/li>\n<\/ul>\n<p>\nT\u00f6\u00f6tlemiseks, et saada rohkem keerulisi kontrolli k\u00e4ttesaadavuse ja usaldusv\u00e4\u00e4rsuse andmeid, loodi mapp Scala v\u00e4ljendiga, mis v\u00f5tab sisendina v\u00e4lise Spark SQL-koodi, mille anal\u00fc\u00fctikud ette valmistasid Zeppelinis.<\/p>\n<p><img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fcsi platvormides\" src=\"\/wp-content\/uploads\/2020\/09\/f6dcc5719077a3186d23d7bdcb412c45.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLoomulikult peab automaatsete kontrollide genereerimine toimuma j\u00e4rk-j\u00e4rgult. Kirjeldatud projekti raames eelnesid j\u00e4rgmised sammud:<\/p>\n<ul>\n<li>DQ, mis on loodud Zeppelinis olevates m\u00e4rkmikes;<\/li>\n<li>DQ, mis on integreeritud mappimisse;<\/li>\n<li>DQ eraldi massiivsete kaardistuste kujul, mis sisaldavad kogu kontrollide kogumit \u00fcksiku \u00fcksuse jaoks;<\/li>\n<li>\u00dcksikute parameetriseeritud DQ-mappimised, mis v\u00f5tavad sisendina teavet metaandmete ja \u00e4ri kontrollide kohta.<\/li>\n<\/ul>\n<p>\nT\u00f5en\u00e4oliselt on peamine eelis parameetritest s\u00f5ltuvate kontrollide teenuse loomisel funktsionaalsuse tootmis\u00fcksusesse toimetamise aja l\u00fchendamine. Uued kvaliteedikontrollid v\u00f5ivad m\u00f6\u00f6da minna klassikalisest koodi edastamise mustrist, mis toimub arendus- ja testikeskkondade kaudu.<\/p>\n<ul>\n<li>K\u00f5ik metaandmete kontrollid genereeritakse automaatselt, kui mudel EA-s muutub;<\/li>\n<li>Andmete k\u00e4ttesaadavuse kontrollid (mis m\u00e4\u00e4ravad, kas mingid andmed on antud ajahetkel olemas) v\u00f5ivad p\u00f5hineda registril, mis salvestab j\u00e4rgmise andmepartii ootamatut ajakava objektide l\u00f5ikes;<\/li>\n<li>\u00c4rikontrollide andmete t\u00f5ep\u00e4rasuse kohta loovad anal\u00fc\u00fctikud Zeppelin'i notebook'ides. Need suunatakse otse DQ moduuli seadistuslauadesse tootmiskeskkonnas. <\/li>\n<\/ul>\n<p>\nOtsese skriptide tootmisse laadimise riskid puuduvad. Isegi s\u00fcntaktilise vea korral on see, mis meid \u00e4hvardab, maksimaalselt \u00fche kontrolli eba\u00f5nnestumine, kuna andmete arvutamise voog ja kvaliteedikontrollide k\u00e4ivitamise voog on \u00fcksteisest lahus.<\/p>\n<p>DQ teenus t\u00f6\u00f6tab pidevalt tootmisv\u00f5ttes ja on valmis alustama oma t\u00f6\u00f6d kohe, kui j\u00e4rgmine andmepartii saadakse. <\/p>\n<h2>Kokkuv\u00f5tte asemel<\/h2>\n<p>\nLow-code'i kasutamine toob selged eelised. Arendajad ei pea rakendust \"nullist\" arendama. Ja v\u00e4hem t\u00f6\u00f6d tegelev arendaja toob tulemuse kiiremini. Kiirus vabastab omakorda lisaaja ressurssi optimeerimise k\u00fcsimuste lahendamiseks. Seega v\u00f5ib antud juhul oodata kvaliteetsemat ja kiiremat lahendust.<\/p>\n<p><b>Muidugi, low-code ei ole imerelv ja ime ei juhtu iseenesest:<\/b><\/p>\n<ul>\n<li>Low-code t\u00f6\u00f6stus l\u00e4bib \"tugevnemise\" etappi ning hetkel puuduvad sellised homogeensed t\u00f6\u00f6stusstandardid;<\/li>\n<li>Paljud low-code lahendused ei ole tasuta ning nende soetamine peab olema teadlik otsus, mille tegemiseks peab olema t\u00e4ielik kindlus nende kasutamise rahalist kasu toomisest;<\/li>\n<li>Paljud madala koodiga lahendused ei pruugi alati h\u00e4sti toimida GIT \/ SVN-iga. V\u00f5i on ebamugavad kasutada, kui genereeritud kood on varjatud.<\/li>\n<li>Arhitektuuri laiendamisel v\u00f5ib olla vajalik madalkoodide lahenduse t\u00e4iendamine, mis omakorda tekitab \u201esidumise ja s\u00f5ltuvuse\u201c efekti madalkoodide lahenduse pakkujast.<\/li>\n<li>N\u00f5utud turvalisustase on v\u00f5imalik, kuid madalkoodide s\u00fcsteemide mootorite rakendamine on \u00e4\u00e4rmiselt t\u00f6\u00f6mahukas ja keeruline. Madalkoodide platvormid ei tohiks valituks osutuda ainult kasuotsimise p\u00f5him\u00f5tte j\u00e4rgi. Valiku tegemisel tuleks m\u00f5elda juurdep\u00e4\u00e4su haldamise ja identiteediandmete volitamise\/escalatsiooni funktsionaalsuse olemasolule kogu organisatsiooni IT-maastikul.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Low-code rakendamine anal\u00fc\u00fcsi 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 ning selle kasutamisest saadav kasu on sellegipoolest domineeriv, siis liikuge madalkoodi suunas kartmata. Eriti, kuna selle suunas liikumine on v\u00e4ltimatu \u2013 nagu igasugune evolutsioon.<\/p>\n<p>Kui \u00fcks arendaja madala koodi platvormil teeb oma t\u00f6\u00f6d kiiremini kui kaks arendajat ilma madala koodita, annab see ettev\u00f5ttele eelise igas m\u00f5ttes. Madala koodi lahenduste sissep\u00e4\u00e4suk\u00fcnnis on madalam kui traditsiooniliste tehnoloogiate puhul, mis positiivselt m\u00f5jutab personalipuuduse k\u00fcsimust. Madala koodi t\u00f6\u00f6riistade kasutamine v\u00f5ib kiirendada koost\u00f6\u00f6d funktsionaalsete meeskondade vahel ja v\u00f5imaldada kiiremaid otsuseid andmete teaduslike uurimiste \u00f5igustatuse kohta. Madala koodi platvormid v\u00f5ivad olla organisatsiooni digitaalsete transformatsioonide ajendiks, kuna loodud lahendused v\u00f5ivad olla arusaadavad mitte-tehnilistele spetsialistidele (eriti \u00e4rikasutajatele). <\/p>\n<p>Kui teil on ajakava pingeline, \u00e4\u00e4rmiselt keeruline \u00e4riloogika, tehnoloogilisest ekspertiisist puudus ning vajate time to marketi kiirusest suurendamist, siis madala koodi lahendus on \u00fcks viis teie vajaduste rahuldamiseks.<\/p>\n<p>Ei saa eitada traditsiooniliste arendust\u00f6\u00f6riistade t\u00e4htsust, kuid paljudel juhtudel on madala koodisisaldusega lahenduste kasutamine parim viis t\u00f5hususe suurendamiseks.<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 4.9.10 - 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 \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\" \/>\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) 4.9.10\" \/>\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 \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\" \/>\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\udd47Low-code rakendamine anal\u00fc\u00fctilistes platvormides | ProHoster","description":"Lugupeetud lugejad, head p\u00e4eva! IT-platvormide loomise \u00fclesanne andmete kogumiseks ja anal\u00fc\u00fcsimiseks tekib t\u00f4t v\u00f5i hiljem iga firma jaoks, mille \u00e4rimudel p\u00f5hineb intellektuaalselt keerulistel teenuste osutamise mudelitel v\u00f5i tehniliselt keerukate toodete loomisel. Anal\u00fc\u00fctiliste platvormide loomine on keeruline ja t\u00f6\u00f6mahukas \u00fclesanne. Kuid igasuguseid \u00fclesandeid on v\u00f5imalik lihtsustada. Selles artiklis soovin jagada kogemusi.","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 \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","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"},"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}]}}