Madala koodi rakendamine analüütilistel platvormidel

Kallid lugejad, tere pärastlõunal!

Andmete kogumiseks ja analüüsimiseks IT-platvormide ülesehitamise ülesanne tekib varem või hiljem igal ettevõttel, kelle äritegevus põhineb intellektuaalselt koormatud teenuse osutamise mudelil või tehniliselt keerukate toodete loomisel. Analüütiliste platvormide loomine on keeruline ja aeganõudev ülesanne. Iga ülesannet saab aga lihtsustada. Selles artiklis tahan jagada oma kogemusi madala koodiga tööriistade kasutamisest analüütiliste lahenduste loomisel. See kogemus on omandatud mitmete projektide elluviimisel ettevõtte Neoflex Big Data Solutions suunal. Alates 2005. aastast on Neoflexi Big Data Solutionsi suund tegelenud andmeladude ja järvede ehitamise küsimustega, lahendanud infotöötluse kiiruse optimeerimise probleeme ning töötades välja andmekvaliteedi juhtimise metoodika.

Madala koodi rakendamine analüütilistel platvormidel

Keegi ei saa vältida nõrgalt ja/või tugevalt struktureeritud andmete teadlikku kogumist. Võib-olla isegi siis, kui me räägime väikeettevõtetest. Lõppude lõpuks seisab paljutõotav ettevõtja ettevõtte laiendamisel silmitsi lojaalsusprogrammi väljatöötamise probleemidega, soovib analüüsida müügikohtade tõhusust, mõtleb sihipärasele reklaamile ja on hämmingus kaasnevate toodete nõudlusest. . Esimesel hinnangul saab probleemi lahendada "põlve peal". Kuid äri kasvades on analüütilisele platvormile tulek siiski vältimatu.

Millisel juhul võivad andmeanalüütika ülesanded areneda aga “Rocket Science” klassi probleemideks? Võib-olla hetkel, kui me räägime tõesti suurandmetest.
Raketiteaduse hõlbustamiseks võite elevanti süüa tükkhaaval.

Madala koodi rakendamine analüütilistel platvormidel

Mida diskreetsemad ja autonoomsemad on teie rakendused/teenused/mikroteenused, seda lihtsam on teil, teie kolleegidel ja kogu ettevõttel elevanti seedida.

Peaaegu kõik meie kliendid jõudsid selle postulaadini, olles DevOpsi meeskondade inseneritavade põhjal maastiku ümber ehitanud.

Kuid isegi "eraldi elevantliku" dieedi korral on meil hea võimalus IT-maastiku "üleküllastamiseks". Sel hetkel tasub peatuda, välja hingata ja küljele vaadata madala koodiga inseneriplatvorm.

Paljusid arendajaid hirmutab nende karjääri ummiktee, kui nad liiguvad madala koodiga süsteemide kasutajaliidestes koodi otseselt kirjutamiselt noolte lohistamisele. Kuid tööpinkide tulek ei toonud kaasa inseneride kadumist, vaid viis nende töö uuele tasemele!

Mõelgem välja, miks.

Logistika, telekomitööstuse, meediauuringute ja finantssektori andmeanalüüs on alati seotud järgmiste küsimustega:

  • automatiseeritud analüüsi kiirus;
  • Võimalus läbi viia katseid, mõjutamata põhiandmete tootmise voogu;
  • Koostatud andmete usaldusväärsus;
  • Muuda jälgimist ja versioonimist;
  • Andmete päritolu, andmeliinid, CDC;
  • Uute funktsioonide kiire tarnimine tootmiskeskkonda;
  • Ja kurikuulus: arendus- ja tugikulud.

See tähendab, et inseneridel on tohutult palju kõrgetasemelisi ülesandeid, mida saab piisava efektiivsusega täita ainult siis, kui nad puhastavad oma teadvuse madala tasemega arendusülesannetest.

Arendajate uuele tasemele liikumise eelduseks olid ettevõtluse areng ja digitaliseerimine. Muutub ka arendaja väärtus: tuntavalt napib arendajaid, kes suudaksid süveneda automatiseeritava äri kontseptsioonidesse.

Toome analoogia madala taseme ja kõrgetasemeliste programmeerimiskeeltega. Üleminek madalatasemelistelt keeltelt kõrgetasemelistele keeltele on üleminek "otsete käskkirjade riistvara keeles" kirjutamiselt "juhiste inimeste keeles". See tähendab, et lisatakse mingi abstraktsioonikiht. Sel juhul on üleminek madala koodiga platvormidele kõrgetasemelistelt programmeerimiskeeltelt üleminek "inimeste keeles olevate direktiivide" vastu "ärikeeles olevate direktiivide" poole. Kui on arendajaid, keda see tõsiasi kurvastab, siis võib-olla on nad kurvastanud juba sellest hetkest, kui sündis Java Script, mis kasutab massiivi sortimise funktsioone. Ja nende funktsioonide puhul on loomulikult kapoti all tarkvara juurutamine sama kõrgetasemelise programmeerimise muude vahenditega.

Seetõttu on madalkood lihtsalt teise abstraktsioonitaseme välimus.

Rakenduskogemus madala koodiga

Madala koodi teema on üsna lai, kuid nüüd tahaksin ühe meie projekti näitel rääkida “madala koodiga mõistete” praktilisest rakendamisest.

Neoflexi Big Data Solutionsi divisjon on rohkem spetsialiseerunud ettevõtluse finantssektorile, andmeladude ja järvede ehitamisele ning erinevate aruandluse automatiseerimisele. Selles nišis on madala koodi kasutamine juba ammu muutunud standardiks. Teistest madala koodiga tööriistadest võib mainida tööriistu ETL protsesside korraldamiseks: Informatica Power Center, IBM Datastage, Pentaho Data Integration. Või Oracle Apex, mis toimib keskkonnana andmetele juurdepääsu ja andmete redigeerimise liideste kiireks arendamiseks. Madala koodiga arendustööriistade kasutamine ei hõlma aga alati väga sihitud rakenduste ehitamist kaubanduslikule tehnoloogiavirnale, mis on selgelt müüjast sõltuv.

Madala koodiga platvorme kasutades saab korraldada ka andmevoogude orkestreerimist, luua andmeteaduse platvorme või näiteks mooduleid andmekvaliteedi kontrollimiseks.

Üks rakendatud näide madala koodiga arendustööriistade kasutamise kogemusest on Neoflexi ja Venemaa meediauuringute turu ühe liidri Mediascope'i koostöö. Selle ettevõtte üks ärieesmärke on andmete tootmine, mille alusel reklaamijad, internetiplatvormid, telekanalid, raadiojaamad, reklaamiagentuurid ja kaubamärgid langetavad otsuseid reklaami ostmise kohta ning planeerivad oma turunduskommunikatsiooni.

Madala koodi rakendamine analüütilistel platvormidel

Meediauuringud on tehnoloogiliselt koormatud ärivaldkond. Videojadade tuvastamine, andmete kogumine vaatamist analüüsivatest seadmetest, veebiressursside tegevuse mõõtmine – kõik see tähendab, et ettevõttel on suur IT-personal ja tohutu kogemus analüütiliste lahenduste loomisel. Kuid teabe hulga, selle allikate arvu ja mitmekesisuse hüppeline kasv sunnib IT-andmetööstust pidevalt edasi liikuma. Lihtsaim lahendus juba toimiva Mediascope’i analüütilise platvormi skaleerimiseks võiks olla IT-personali suurendamine. Kuid palju tõhusam lahendus on arendusprotsessi kiirendamine. Üks selles suunas viivaid samme võib olla madala koodiga platvormide kasutamine.

Projekti alustamise ajal oli ettevõttel juba toimiv tootelahendus. Lahenduse juurutamine MSSQL-is ei suutnud aga täielikult vastata skaleerimise funktsionaalsuse ootustele, säilitades samal ajal vastuvõetava arenduskulu.

Meie ees seisev ülesanne oli tõeliselt ambitsioonikas – Neoflex ja Mediascope pidid vähem kui aastaga looma tööstusliku lahenduse, tingimusel et MVP avaldatakse alguskuupäeva esimeses kvartalis.

Hadoopi tehnoloogiapinn valiti uue madala koodiga andmetöötlusel põhineva andmeplatvormi ehitamise aluseks. HDFS-ist on saanud parkettfailide abil andmete salvestamise standard. Platvormil asuvatele andmetele ligi pääsemiseks kasutati Hive'i, milles on väliste tabelitena esitatud kõik saadaolevad poe esiküljed. Andmete laadimine salvestusruumi viidi läbi Kafka ja Apache NiFi abil.

Selle kontseptsiooni Lowe-koodi tööriista kasutati analüütilise platvormi loomise kõige töömahukama ülesande - andmete arvutamise - optimeerimiseks.

Madala koodi rakendamine analüütilistel platvormidel

Andmete kaardistamise peamiseks mehhanismiks valiti madala koodiga Datagrami tööriist. Neoflex Datagram on tööriist teisenduste ja andmevoogude arendamiseks.
Selle tööriista abil saate hakkama ilma Scala koodi käsitsi kirjutamata. Scala kood genereeritakse automaatselt, kasutades mudelipõhise arhitektuuri lähenemisviisi.

Selle lähenemisviisi ilmne eelis on arendusprotsessi kiirendamine. Kuid lisaks kiirusele on ka järgmised eelised:

  • Allikate/vastuvõtjate sisu ja struktuuri vaatamine;
  • Andmevoo objektide päritolu jälgimine üksikutele väljadele (liini);
  • Teisenduste osaline teostamine koos vahetulemuste vaatamisega;
  • Lähtekoodi ülevaatamine ja kohandamine enne käivitamist;
  • Teisenduste automaatne valideerimine;
  • Andmete automaatne allalaadimine üks ühes.

Teisenduste genereerimise madala koodiga lahendustesse sisenemise barjäär on üsna madal: arendaja peab teadma SQL-i ja omama ETL-i tööriistadega töötamise kogemust. Tasub mainida, et koodipõhised teisendusgeneraatorid ei ole ETL-i tööriistad selle sõna laiemas tähenduses. Madala koodiga tööriistadel ei pruugi olla oma koodikäivituskeskkonda. See tähendab, et loodud kood käivitatakse keskkonnas, mis eksisteeris klastris juba enne madala koodiga lahenduse installimist. Ja see on võib-olla veel üks pluss madala koodiga karma jaoks. Kuna paralleelselt madala koodiga meeskonnaga saab töötada “klassikaline” meeskond, mis rakendab funktsionaalsust näiteks puhtas Scala koodis. Mõlema meeskonna täiustuste toomine tootmisse on lihtne ja sujuv.

Võib-olla väärib märkimist, et lisaks madala koodiga lahendustele on olemas ka koodita lahendusi. Ja oma olemuselt on need erinevad asjad. Madal kood võimaldab arendajal genereeritud koodiga rohkem sekkuda. Datagrami puhul on võimalik genereeritud Scala koodi vaadata ja redigeerida, no-code ei pruugi sellist võimalust pakkuda. See erinevus on väga oluline mitte ainult lahenduse paindlikkuse, vaid ka andmeinseneride töö mugavuse ja motivatsiooni poolest.

Lahenduse arhitektuur

Proovime täpselt välja mõelda, kuidas madala koodiga tööriist aitab lahendada andmete arvutamise funktsionaalsuse arendamise kiiruse optimeerimise probleemi. Kõigepealt vaatame süsteemi funktsionaalset arhitektuuri. Antud juhul on näiteks meediauuringute andmetootmismudel.

Madala koodi rakendamine analüütilistel platvormidel

Meie puhul on andmeallikad väga heterogeensed ja mitmekesised:

  • Inimesemõõtjad (TV meetrid) on tarkvara- ja riistvaraseadmed, mis loevad telepaneeli vastajatelt kasutaja käitumist – keda, millal ja millist telekanalit uuringus osalevas leibkonnas vaadati. Pakutav teave kujutab endast meediapaketi ja meediatootega seotud ringhäälingu vaatamisintervallide voogu. Andmejärve laadimise etapis olevaid andmeid saab rikastada demograafiliste atribuutide, geostratifikatsiooni, ajavööndi ja muu teabega, mis on vajalik konkreetse meediatoote televaatamise analüüsimiseks. Tehtud mõõtmiste abil saab analüüsida või planeerida reklaamikampaaniaid, hinnata publiku aktiivsust ja eelistusi ning koostada eetrivõrku;
  • Andmed võivad pärineda seiresüsteemidest telesaadete voogedastamiseks ja videoressursi sisu vaatamise mõõtmiseks Internetis;
  • Mõõtevahendid veebikeskkonnas, sealhulgas nii saidi- kui ka kasutajakesksed arvestid. Data Lake'i andmepakkuja võib olla uurimisriba brauseri lisandmoodul ja sisseehitatud VPN-iga mobiilirakendus.
  • Andmed võivad pärineda ka saitidelt, mis koondavad veebiküsimustike täitmise ja ettevõtteuuringute telefoniintervjuude tulemusi;
  • Andmejärve täiendav rikastamine võib toimuda partnerettevõtete logidest teabe allalaadimisega.

Lähtesüsteemidest laadimise rakendamist algandmete esmasesse etappi saab korraldada mitmel viisil. Kui nendel eesmärkidel kasutatakse madalat koodi, on võimalik metaandmetel põhinevate laadimisskriptide automaatne genereerimine. Sel juhul ei ole vaja laskuda allika arendamise tasemele, et sihtida kaardistamist. Automaatse laadimise rakendamiseks peame looma ühenduse allikaga ja seejärel määratlema laadimisliideses laaditavate üksuste loendi. HDFS-i kataloogistruktuur luuakse automaatselt ja see vastab lähtesüsteemi andmesalvestusstruktuurile.

Kuid selle projekti kontekstis otsustasime seda madala koodiga platvormi funktsiooni mitte kasutada, kuna Mediascope'i ettevõte on juba iseseisvalt alustanud tööd sarnase teenuse tootmiseks, kasutades kombinatsiooni Nifi + Kafka.

Tasub kohe märkida, et need tööriistad ei ole omavahel asendatavad, vaid pigem täiendavad. Nifi ja Kafka on võimelised töötama nii otseses (Nifi -> Kafka) kui ka vastupidises (Kafka -> Nifi) ühenduses. Meediauuringute platvormi jaoks kasutati kimbu esimest versiooni.

Madala koodi rakendamine analüütilistel platvormidel

Meie puhul pidi NayFi töötlema erinevat tüüpi andmeid lähtesüsteemidest ja saatma need Kafka maaklerile. Sel juhul saadeti sõnumeid konkreetsele Kafka teemale kasutades PublishKafka Nifi protsessoreid. Nende torustike orkestreerimine ja hooldus toimub visuaalses liideses. Nifi tööriista ja Nifi + Kafka kombinatsiooni kasutamist võib nimetada ka madala koodiga lähenemiseks arendusele, millel on madal barjäär Big Data tehnoloogiatesse sisenemisel ja mis kiirendab rakenduste arendusprotsessi.

Projekti rakendamise järgmine etapp oli üksikasjalike andmete toomine ühte semantilise kihi vormingusse. Kui olemil on ajaloolised atribuudid, tehakse arvutus kõnealuse partitsiooni kontekstis. Kui olem ei ole ajalooline, siis on valikuliselt võimalik kas kogu objekti sisu ümber arvutada või täielikult keelduda selle objekti ümberarvutamisest (muudatuste puudumise tõttu). Selles etapis genereeritakse võtmed kõigi olemite jaoks. Võtmed salvestatakse põhiobjektidele vastavates Hbase kataloogides, mis sisaldavad vastavust analüütilise platvormi võtmete ja lähtesüsteemide võtmete vahel. Aatomiüksuste konsolideerimisega kaasneb rikastamine analüütiliste andmete esialgsete arvutuste tulemustega. Andmete arvutamise raamistikuks oli Spark. Kirjeldatud funktsionaalsus andmete ühtseks semantikaks toomiseks realiseeriti ka madala koodiga Datagrami tööriista vastenduste põhjal.

Sihtarhitektuur nõudis ärikasutajatelt SQL-i juurdepääsu andmetele. Selle valiku jaoks kasutati taru. Objektid registreeritakse Hive'is automaatselt, kui lubate madala koodiga tööriistas suvandi „Registreeri tarutabel”.

Madala koodi rakendamine analüütilistel platvormidel

Arvutusvoolu juhtimine

Datagrammil on liides töövoo kujunduse loomiseks. Kaardistusi saab käivitada Oozie ajakava abil. Voo arendaja liideses on võimalik luua paralleelsete, järjestikuste või täitmisest sõltuvate andmete teisenduste skeeme. Seal on tugi shelliskriptidele ja Java programmidele. Samuti on võimalik kasutada Apache Livy serverit. Apache Livyt kasutatakse rakenduste käivitamiseks otse arenduskeskkonnast.

Kui ettevõttel on juba oma protsesside korraldaja, on võimalik kasutada REST API-d, et manustada vastendusi olemasolevasse voogu. Näiteks oli meil üsna edukas kogemus Scala vastenduste manustamisel PLSQL-is ja Kotlinis kirjutatud orkestritesse. Madala koodiga tööriista REST API sisaldab selliseid toiminguid nagu täitmisaasta genereerimine kaardistamise kujunduse põhjal, vastenduse kutsumine, vastenduste jada väljakutsumine ja loomulikult parameetrite edastamine URL-ile vastenduste käivitamiseks.

Koos Oozie'ga on võimalik arvutusvoogu korraldada Airflow abil. Võib-olla ei peatu ma pikalt Oozie ja Airflow võrdlusel, vaid ütlen lihtsalt, et meedia uurimisprojektiga töötamise kontekstis langes valik Airflow kasuks. Peamisteks argumentideks olid seekord aktiivsem toodet arendav kogukond ja arenenum liides + API.

Õhuvool on hea ka seetõttu, et kasutab arvutusprotsesside kirjeldamiseks armastatud Pythonit. Ja üldiselt pole avatud lähtekoodiga töövoohaldusplatvorme nii palju. Protsesside käivitamine ja jälgimine (sh Gantti diagramm) lisab Airflow karmale ainult punkte.

Madala koodiga lahenduste vastendamise käivitamise konfiguratsioonifailivormingust on saanud spark-submit. See juhtus kahel põhjusel. Esiteks võimaldab spark-submit jar-faili otse konsoolist käivitada. Teiseks võib see sisaldada kogu vajalikku teavet töövoo konfigureerimiseks (mis muudab Dagi genereerivate skriptide kirjutamise lihtsamaks).
Meie puhul oli Airflow töövoo kõige levinum element SparkSubmitOperator.

SparkSubmitOperator võimaldab teil käivitada jareid – pakendatud Datagrammi vastendusi koos nende jaoks eelnevalt loodud sisendparameetritega.

Tasub mainida, et iga Airflow ülesanne jookseb eraldi lõimes ega tea teistest ülesannetest midagi. Seetõttu toimub ülesannetevaheline suhtlus juhtoperaatorite, näiteks DummyOperator või BranchPythonOperator abil.

Kokkuvõttes tõi Datagrami madala koodilahenduse kasutamine koos konfiguratsioonifailide universaalse muutmisega (moodustab Dag) andmelaadimisvoogude arendamise protsessi olulise kiirendamise ja lihtsustamise.

Esitage arvutused

Võib-olla on analüütiliste andmete tootmise kõige intellektuaalsemalt koormatud etapp vitriinide ehitamise etapp. Ühe uuringufirma andmearvutusvoo kontekstis taandatakse andmed selles etapis võrdlussaateks, võttes arvesse ajavööndite parandusi, ja seotakse edastusvõrguga. Samuti on võimalik kohaneda kohaliku ringhäälinguvõrguga (kohalikud uudised ja reklaam). Muuhulgas jagab see samm meediumitoodete pideva vaatamise intervallid, mis põhinevad vaatamisintervallide analüüsil. Vaatamisväärtused "kaalutakse" kohe nende olulisuse teabe põhjal (parandusteguri arvutamine).

Madala koodi rakendamine analüütilistel platvormidel

Vitriinide ettevalmistamise eraldi etapp on andmete valideerimine. Valideerimisalgoritm hõlmab mitmete matemaatikateaduste mudelite kasutamist. Madala koodiga platvormi kasutamine võimaldab aga jagada keeruka algoritmi mitmeks eraldi visuaalselt loetavaks kaardistuseks. Iga kaardistus täidab kitsa ülesande. Selle tulemusena on võimalik andmete ettevalmistamise etappide vahepealne silumine, logimine ja visualiseerimine.

Valideerimisalgoritm otsustati jaotada järgmisteks alametappideks:

  • Telerivõrgu vaatamise sõltuvuste regressioonide loomine piirkonnas kõigi piirkonna võrkude vaatamisega 60 päeva jooksul.
  • Studentiseeritud jääkide (tegelike väärtuste kõrvalekalded regressioonimudeliga ennustatutest) arvutamine kõigi regressioonipunktide ja arvutatud päeva kohta.
  • Valik anomaalseid regioon-võrk paare, kus arvelduspäeva üliõpilaste saldo ületab normi (määratletud toimingu seadetega).
  • Korrigeeritud studentiseeritud jäägi ümberarvutamine anomaalsete piirkonna-TV võrgupaaride jaoks iga vastaja kohta, kes vaatas võrku piirkonnas, määrates selle vastaja panuse (studieeritud jäägi muutuse suurus) selle vastaja vaatamise valimisest väljajätmisel. .
  • Otsige kandidaate, kelle väljajätmine viib palgapäeva üliõpilaste saldo tagasi normaalseks.

Ülaltoodud näide kinnitab hüpoteesi, et andmeinseneril on juba liiga palju meeles... Ja kui see on tõesti "insener", mitte "kodeerija", siis kardab madala koodiga tööriistu kasutades professionaalset halvenemist. peab lõpuks taganema.

Mida veel madala koodiga teha saab?

Madala koodiga tööriista rakendusala andmete pakett- ja vootöötluseks, ilma et oleks vaja Scalas koodi käsitsi kirjutada, sellega ei piirdu.

Madala koodi kasutamine datalake’i arendamisel on meie jaoks juba standardiks saanud. Tõenäoliselt võib öelda, et Hadoopi pinul põhinevad lahendused järgivad klassikaliste RDBMS-il põhinevate DWH-de arenguteed. Hadoopi virna madala koodiga tööriistad suudavad lahendada nii andmetöötlusülesandeid kui ka lõplike BI-liideste loomise ülesannet. Lisaks tuleb märkida, et BI võib tähendada mitte ainult andmete esitamist, vaid ka nende muutmist ärikasutajate poolt. Kasutame seda funktsiooni sageli finantssektori analüütiliste platvormide ehitamisel.

Madala koodi rakendamine analüütilistel platvormidel

Muuhulgas on madala koodi ja eriti Datagrammi abil võimalik lahendada andmevoo objektide päritolu jälgimise probleem aatomilisusega kuni üksikute väljadeni (liinini). Selleks rakendab madala koodiga tööriist liidese Apache Atlase ja Cloudera Navigatoriga. Põhimõtteliselt peab arendaja registreerima objektide komplekti Atlase sõnaraamatutes ja viitama registreeritud objektidele kaardistamise koostamisel. Andmete päritolu jälgimise või objektide sõltuvuste analüüsimise mehhanism säästab palju aega, kui on vaja arvutusalgoritme täiustada. Näiteks finantsaruannete koostamisel võimaldab see funktsioon mugavamalt üle elada seadusandlike muudatuste perioodi. Lõppude lõpuks, mida paremini mõistame vormidevahelist sõltuvust detailikihi objektide kontekstis, seda vähem kohtame "äkilisi" defekte ja vähendame ümbertegemiste arvu.

Madala koodi rakendamine analüütilistel platvormidel

Andmete kvaliteet ja madal kood

Teine Mediascope'i projekti madala koodiga tööriistaga rakendatud ülesanne oli andmekvaliteedi klassi ülesanne. Uuringufirma projekti andmete kontrollimise torustiku rakendamise eripäraks oli vähene mõju põhiandmete arvutusvoo jõudlusele ja kiirusele. Sõltumatute andmete kontrollimise voogude korraldamiseks kasutati juba tuttavat Apache Airflow'i. Kuna andmete tootmise iga samm oli valmis, käivitati paralleelselt ka eraldi osa DQ torustikust.

Heaks tavaks peetakse andmete kvaliteedi jälgimist alates nende loomise hetkest analüütilisel platvormil. Omades teavet metaandmete kohta, saame kontrollida vastavust põhitingimustele alates hetkest, kui teave siseneb esmasesse kihti - mitte null, piirangud, võõrvõtmed. Seda funktsiooni rakendatakse Datagrami andmekvaliteedi perekonna automaatselt genereeritud vastenduste põhjal. Koodi genereerimine põhineb sel juhul ka mudeli metaandmetel. Mediascope'i projektis viidi liides läbi Enterprise Architecti toote metaandmetega.

Madala koodiga tööriista sidumisel Enterprise Architectiga genereeriti automaatselt järgmised kontrollid.

  • "Null" väärtuste olemasolu kontrollimine väljadel modifikaatoriga "not null";
  • primaarvõtme duplikaatide olemasolu kontrollimine;
  • olemi võõrvõtme kontrollimine;
  • Stringi unikaalsuse kontrollimine väljade komplekti alusel.

Andmete saadavuse ja usaldusväärsuse keerukamaks kontrollimiseks loodi Scala Expressioniga vastendus, mis võtab sisendiks välise Spark SQL-i kontrollkoodi, mille on koostanud Zeppelini analüütikud.

Madala koodi rakendamine analüütilistel platvormidel

Loomulikult tuleb tšekkide automaatne genereerimine saavutada järk-järgult. Kirjeldatud projekti raames eelnesid sellele järgmised sammud:

  • DQ juurutatud Zeppelini sülearvutites;
  • DQ sisseehitatud kaardistusse;
  • DQ eraldi massiivsete vastenduste kujul, mis sisaldavad tervet komplekti eraldi olemi kontrolle;
  • Universaalsed parameetritega DQ vastendused, mis aktsepteerivad sisendina teavet metaandmete ja ärikontrollide kohta.

Võib-olla on parameetritega kontrolliteenuse loomise peamiseks eeliseks funktsionaalsuse tootmiskeskkonda tarnimiseks kuluva aja lühenemine. Uued kvaliteedikontrollid võivad mööda minna klassikalisest mustrist, mille kohaselt edastatakse kood kaudselt arendus- ja testimiskeskkondade kaudu:

  • Kõik metaandmete kontrollid genereeritakse automaatselt, kui mudelit EA-s muudetakse;
  • Andmete kättesaadavuse kontrolle (mis määravad mis tahes andmete olemasolu teatud ajahetkel) saab genereerida kataloogi alusel, mis salvestab järgmise andmetüki eeldatava ilmumise aja objektide kontekstis;
  • Äriandmete valideerimise kontrollid loovad analüütikud Zeppelini sülearvutites. Sealt saadetakse need otse tootmiskeskkonnas DQ mooduli seadistustabelitesse.

Skriptide otse tootmisse saatmisel pole ohtu. Ka süntaksivea puhul ähvardab meid maksimum ühe kontrolli tegemata jätmine, sest andmearvutuse voog ja kvaliteedikontrolli käivitusvoog on teineteisest eraldatud.

Sisuliselt töötab DQ teenus tootmiskeskkonnas pidevalt ja on valmis tööd alustama kohe, kui ilmub järgmine andmeosa.

Selle asemel, et järeldus

Madala koodi kasutamise eelis on ilmne. Arendajad ei pea rakendust nullist arendama. Ja lisaülesannetest vabastatud programmeerija annab tulemusi kiiremini. Kiirus omakorda vabastab lisaaega optimeerimisprobleemide lahendamiseks. Seetõttu võite sel juhul loota paremale ja kiiremale lahendusele.

Muidugi pole madal kood imerohi ja maagia ei juhtu iseenesest:

  • Madala koodiga tööstus on läbimas "tugevamaks muutumise" etappi ja veel puuduvad ühtsed tööstusstandardid;
  • Paljud madala koodiga lahendused ei ole tasuta ja nende ostmine peaks olema teadlik samm, mida tuleks teha nende kasutamise rahalises kasus täie kindlusega;
  • Paljud madala koodiga lahendused ei tööta alati GIT/SVN-iga hästi. Või on neid ebamugav kasutada, kui genereeritud kood on peidetud;
  • Arhitektuuri laiendamisel võib osutuda vajalikuks madala koodilahenduse viimistlemine – see omakorda kutsub esile “kinnituse ja sõltuvuse” efekti madala koodilahenduse tarnija suhtes.
  • Piisav turvatase on võimalik, kuid see on väga töömahukas ja madala koodisüsteemiga mootorites raskesti rakendatav. Madala koodiga platvorme tuleks valida mitte ainult nende kasutamisest kasu otsimise põhimõttel. Valides tasub esitada küsimusi ligipääsu kontrolli ja identifitseerimisandmete delegeerimise/eskaleerimise funktsionaalsuse olemasolu kohta kogu organisatsiooni IT-maastiku tasemele.

Madala koodi rakendamine analüütilistel platvormidel

Kui aga kõik valitud süsteemi puudused on teile teada ja selle kasutamisest saadav kasu on siiski valdavas enamuses, liikuge kartmata väikese koodi juurde. Pealegi on sellele üleminek vältimatu – nii nagu igasugune evolutsioon on vältimatu.

Kui madala koodiga platvormil üks arendaja teeb oma tööd kiiremini kui kaks ilma madala koodita arendajat, annab see ettevõttele igas mõttes edumaa. Madala koodiga lahendustesse sisenemise lävi on madalam kui “traditsioonilistes” tehnoloogiates ja see mõjutab positiivselt personalipuuduse probleemi. Madala koodiga tööriistu kasutades on võimalik kiirendada funktsionaalsete meeskondade omavahelist suhtlust ning langetada kiiremini otsuseid valitud andmeteaduse uurimistee õigsuse kohta. Madala taseme platvormid võivad juhtida organisatsiooni digitaalset ümberkujundamist, kuna toodetud lahendused on arusaadavad mittetehnilistele spetsialistidele (eriti ärikasutajatele).

Kui teil on kitsad tähtajad, koormatud äriloogika, tehnoloogiliste teadmiste puudumine ja teil on vaja kiirendada turule jõudmist, on madal kood üks võimalus teie vajaduste rahuldamiseks.

Ei saa eitada traditsiooniliste arendusvahendite tähtsust, kuid paljudel juhtudel on madala koodiga lahenduste kasutamine parim viis lahendatavate ülesannete efektiivsuse tõstmiseks.

Allikas: www.habr.com

Lisa kommentaar