Tapassing fan lege koade yn analytyske platfoarms

Beste lêzers, goeie dei!

De taak fan it bouwen fan IT-platfoarms foar it sammeljen en analysearjen fan gegevens ûntstiet ier of letter foar elk bedriuw waans bedriuw basearre is op in yntellektueel laden model foar tsjinstferliening of it meitsjen fan technysk komplekse produkten. It bouwen fan analytyske platfoarms is in komplekse en tiidslinend taak. Elke taak kin lykwols ferienfâldige wurde. Yn dit artikel wol ik myn ûnderfining diele yn it brûken fan lege-koade-ark om te helpen analytyske oplossingen te meitsjen. Dizze ûnderfining waard opdien tidens de útfiering fan in oantal projekten yn 'e rjochting fan Big Data Solutions fan it Neoflex-bedriuw. Sûnt 2005 is de rjochting fan Big Data Solutions fan Neoflex dwaande mei de problemen fan it bouwen fan datapakhuzen en marren, it oplossen fan problemen fan it optimalisearjen fan de snelheid fan ynformaasjeferwurking en wurkje oan in metodyk foar gegevenskwaliteitsbehear.

Tapassing fan lege koade yn analytyske platfoarms

Nimmen sil de bewuste accumulation fan swak en/of sterk strukturearre gegevens foarkomme kinne. Miskien sels as wy it oer lytse bedriuwen hawwe. Ommers, by it skaalfergrutting fan in bedriuw sil in kânsrike ûndernimmer te krijen hawwe mei de problemen fan it ûntwikkeljen fan in loyaliteitsprogramma, sil de effektiviteit fan ferkeappunten analysearje wolle, sil tinke oer doelgerichte reklame, en sil fernuverje troch de fraach nei begeliedende produkten . Foar in earste approximation kin it probleem oplost wurde "op 'e knibbel". Mar as it bedriuw groeit, is it kommen nei in analytysk platfoarm noch altyd ûnûntkomber.

Yn hokker gefal kinne taken foar gegevensanalyse lykwols ûntwikkelje ta problemen yn 'e klasse "Rocket Science"? Miskien op it momint dat wy it oer echt grutte gegevens hawwe.
Om Rocket Science makliker te meitsjen kinne jo de oaljefant stik foar stik ite.

Tapassing fan lege koade yn analytyske platfoarms

Hoe diskreter en autonomer jo applikaasjes / tsjinsten / mikrotsjinsten binne, hoe makliker it sil wêze foar jo, jo kollega's en it heule bedriuw om de oaljefant te fertarren.

Hast al ús kliïnten kamen ta dit postulaat, nei't se it lânskip opnij boud hawwe op basis fan de yngenieurpraktiken fan DevOps-teams.

Mar sels mei in "apart, elefantine" dieet hawwe wy in goede kâns op "oversaturation" fan it IT-lânskip. Op dit stuit is it wurdich om te stopjen, útademen en nei de kant te sjen low-koade engineering platfoarm.

In protte ûntwikkelders binne bang foar it perspektyf fan in deade ein yn har karriêre as se fuortgean fan it direkt skriuwen fan koade nei "slepen" pylken yn 'e UI-ynterfaces fan systemen mei leech koade. Mar de komst fan masines liedt net ta it ferdwinen fan yngenieurs, mar brocht har wurk nei in nij nivo!

Litte wy útfine wêrom.

Gegevensanalyse op it mêd fan logistyk, telekomyndustry, mediaûndersyk, finansjele sektor wurdt altyd ferbûn mei de folgjende fragen:

  • Snelheid fan automatisearre analyse;
  • Mooglikheid om eksperiminten út te fieren sûnder de haadgegevensproduksjestream te beynfloedzjen;
  • Betrouberens fan 'e taret gegevens;
  • Feroarje tracking en ferzje;
  • Data herkomst, Data lineage, CDC;
  • Snelle levering fan nije funksjes oan 'e produksjeomjouwing;
  • En de beruchte: de kosten fan ûntwikkeling en stipe.

Dat is, yngenieurs hawwe in enoarm oantal taken op heech nivo, dy't mei genôch effisjinsje kinne wurde foltôge allinich troch har bewustwêzen fan ûntwikkeltaken op leech nivo te wiskjen.

De betingsten foar ûntwikkelders om nei in nij nivo te gean wiene de evolúsje en digitalisearring fan bedriuw. De wearde fan 'e ûntwikkelder feroaret ek: d'r is in signifikant tekoart oan ûntwikkelders dy't har kinne ferdjipje yn' e konsepten fan it automatisearre bedriuw.

Litte wy in analogy tekenje mei programmeartalen op leech en heech nivo. De oergong fan talen op leech nivo nei talen op heech nivo is in oergong fan it skriuwen fan "direkte rjochtlinen yn 'e taal fan hardware" nei "rjochtlinen yn 'e taal fan minsken". Dat is, it tafoegjen fan wat laach fan abstraksje. Yn dit gefal is de oergong nei platfoarms mei leech koade fan programmeartalen op heech nivo in oergong fan "rjochtlinen yn 'e taal fan minsken" nei "rjochtlinen yn 'e taal fan it bedriuw." As d'r ûntwikkelders binne dy't fertrietlik binne troch dit feit, dan binne se fertrietlik, miskien, sûnt it momint dat Java Script berne is, dy't array-sortearjende funksjes brûkt. En dizze funksjes hawwe fansels software-ymplemintaasje ûnder de motorkap troch oare middels fan deselde programmearring op hege nivo.

Dêrom is lege koade gewoan it uterlik fan in oar nivo fan abstraksje.

Tapaste ûnderfining mei lege koade

It ûnderwerp fan lege koade is frij breed, mar no wol ik graach prate oer de praktyske tapassing fan "leech-koade konsepten" mei it foarbyld fan ien fan ús projekten.

De ôfdieling Big Data Solutions fan Neoflex is mear spesjalisearre yn 'e finansjele sektor fan bedriuw, it bouwen fan datapakhuzen en marren en it automatisearjen fan ferskate rapportaazjes. Yn dizze niche is it gebrûk fan lege koade al lang in standert wurden. Under oare ark mei lege koade kinne wy ​​ark neame foar it organisearjen fan ETL-prosessen: Informatica Power Center, IBM Datastage, Pentaho Data Integration. Of Oracle Apex, dy't fungearret as in omjouwing foar de rappe ûntwikkeling fan ynterfaces foar tagong en bewurkjen fan gegevens. It gebrûk fan ark foar ûntwikkeling mei lege koade omfettet lykwols net altyd it bouwen fan heul rjochte applikaasjes op in kommersjele technologystapel mei in dúdlike ôfhinklikens fan 'e ferkeaper.

Mei help fan platfoarms mei lege koade kinne jo ek de orkestraasje fan gegevensstreamen organisearje, gegevenswittenskipplatfoarms oanmeitsje of bygelyks modules foar it kontrolearjen fan gegevenskwaliteit.

Ien fan 'e tapaste foarbylden fan ûnderfining yn it brûken fan ark foar ûntwikkeling fan lege koade is de gearwurking tusken Neoflex en Mediascope, ien fan' e lieders yn 'e Russyske mediaûndersykmerk. Ien fan 'e saaklike doelen fan dit bedriuw is de produksje fan gegevens op basis wêrfan advertearders, ynternetplatfoarms, tv-kanalen, radiostasjons, reklame-ynstânsjes en merken besluten nimme oer it keapjen fan reklame en planje har marketingkommunikaasje.

Tapassing fan lege koade yn analytyske platfoarms

Mediaûndersyk is in technologysk laden gebiet fan bedriuw. It herkennen fan fideosekwinsjes, it sammeljen fan gegevens fan apparaten dy't besjen analysearje, aktiviteit mjitten op webboarnen - dit alles ymplisearret dat it bedriuw in grut IT-personiel hat en enoarme ûnderfining yn it bouwen fan analytyske oplossingen. Mar de eksponinsjele groei yn 'e hoemannichte ynformaasje, it oantal en ferskaat fan har boarnen twingt de IT-gegevenssektor om konstant foarút te gean. De ienfâldichste oplossing foar it skaalfergrutting fan it al funksjonearjende analytyske platfoarm fan Mediascope kin wêze om it IT-personiel te fergrutsjen. Mar in folle effektiver oplossing is om it ûntwikkelingsproses te fersnellen. Ien fan 'e stappen dy't yn dizze rjochting liede kin it gebrûk wêze fan platfoarms mei lege koade.

Op it momint dat it projekt begon, hie it bedriuw al in funksjonearjende produktoplossing. De ymplemintaasje fan 'e oplossing yn MSSQL koe lykwols net folslein foldwaan oan de ferwachtings foar skaalfergrutting fan funksjonaliteit, wylst in akseptabele kosten fan ûntwikkeling behâlde.

De taak foar ús wie wirklik ambisjeus - Neoflex en Mediascope moasten yn minder dan in jier in yndustriële oplossing meitsje, ûnder foarbehâld fan de frijlitting fan 'e MVP binnen it earste fearnsjier fan' e startdatum.

De Hadoop technology stack waard keazen as de stifting foar it bouwen fan in nij gegevensplatfoarm basearre op leech-koade komputer. HDFS is de standert wurden foar gegevensopslach mei parketbestannen. Om tagong te krijen ta de gegevens op it platfoarm, waard Hive brûkt, wêryn alle beskikbere winkelfronten wurde presintearre yn 'e foarm fan eksterne tabellen. It laden fan gegevens yn 'e opslach waard ymplementearre mei Kafka en Apache NiFi.

It Lowe-koade-ark yn dit konsept waard brûkt om de meast arbeidsintensive taak te optimalisearjen by it bouwen fan in analytysk platfoarm - de taak fan gegevensberekkening.

Tapassing fan lege koade yn analytyske platfoarms

It lege-koade Datagram-ark waard keazen as it haadmeganisme foar gegevensmapping. Neoflex Datagram is in ark foar it ûntwikkeljen fan transformaasjes en gegevensstreamen.
Mei dit ark kinne jo dwaan sûnder Scala-koade manuell te skriuwen. Scala-koade wurdt automatysk oanmakke mei de Model Driven Architecture-oanpak.

In dúdlik foardiel fan dizze oanpak is it fersnellen fan it ûntwikkelingsproses. Neist snelheid binne d'r lykwols ek de folgjende foardielen:

  • Besjoch de ynhâld en struktuer fan boarnen / ûntfangers;
  • Tracing de oarsprong fan gegevens flow objekten nei yndividuele fjilden (lineage);
  • Diellike útfiering fan transformaasjes mei besjen fan tuskenresultaten;
  • Besjoch de boarnekoade en oanpasse it foar útfiering;
  • Automatyske falidaasje fan transformaasjes;
  • Automatyske gegevensdownload 1 yn 1.

De barriêre foar yngong yn oplossingen mei lege koade foar it generearjen fan transformaasjes is frij leech: de ûntwikkelder moat SQL kenne en ûnderfining hawwe mei wurkjen mei ETL-ark. It is it neamen wurdich dat koade-oandreaune transformaasjegenerators gjin ETL-ark binne yn 'e brede sin fan it wurd. Tools mei lege koade hawwe miskien gjin eigen koade-útfieromjouwing. Dat is, de oanmakke koade sil wurde útfierd yn 'e omjouwing dy't bestie op it kluster noch foardat de ynstallaasje fan' e leechkoade-oplossing is. En dit is miskien in oare plus foar karma mei lege koade. Sûnt, parallel mei in team mei lege koade, kin in "klassyk" team wurkje dat funksjonaliteit ymplementearret, bygelyks yn suvere Scala-koade. Ferbetteringen fan beide teams yn produksje bringe sil ienfâldich en naadloos wêze.

It is miskien de muoite wurdich op te merken dat d'r neist lege koade ek oplossings sûnder koade binne. En yn har kearn binne dit ferskillende dingen. Low-koade lit de ûntwikkelder mear bemuoie mei de generearre koade. Yn it gefal fan Datagram is it mooglik om de generearre Scala-koade te besjen en te bewurkjen; no-koade kin sa'n kâns net leverje. Dit ferskil is heul wichtich net allinich yn termen fan de fleksibiliteit fan 'e oplossing, mar ek yn termen fan komfort en motivaasje yn it wurk fan data-yngenieurs.

Solution arsjitektuer

Lit ús besykje út te finen krekt hoe't in lege-koade ark helpt oplosse it probleem fan it optimalisearjen fan de snelheid fan it ûntwikkeljen fan gegevens berekkening funksjonaliteit. Lit ús earst sjen nei de funksjonele arsjitektuer fan it systeem. In foarbyld yn dit gefal is it dataproduksjemodel foar mediaûndersyk.

Tapassing fan lege koade yn analytyske platfoarms

Gegevensboarnen yn ús gefal binne heul heterogeen en ferskaat:

  • Minsken meters (TV meters) binne software- en hardware-apparaten dy't brûkersgedrach lêze fan respondinten fan televyzjepanielen - wa, wannear en hokker tv-kanaal waard besjoen yn 'e húshâlding dy't dielnimme oan it ûndersyk. De levere ynformaasje is in stream fan yntervallen foar útstjoeringen dy't keppele binne oan it mediapakket en mediaprodukt. Gegevens op it poadium fan it laden yn 'e Data Lake kinne wurde ferrike mei demografyske attributen, geostratifikaasje, tiidsône en oare ynformaasje dy't nedich is foar it analysearjen fan televyzjebesjen fan in bepaald mediaprodukt. De mjittingen kinne brûkt wurde om advertinsjekampanjes te analysearjen of te planjen, de aktiviteit en foarkarren fan it publyk te beoardieljen en it útstjoernetwurk te kompilearjen;
  • De gegevens kinne komme fan tafersjochsystemen foar it streamen fan televyzje-útstjoerings en it mjitten fan it besjen fan fideo-boarne-ynhâld op it ynternet;
  • Mjitynstruminten yn 'e webomjouwing, ynklusyf sawol side-sintraal as brûker-sintraal meters. De gegevensprovider foar de Data Lake kin in add-on foar ûndersyksbalkeblêder wêze en in mobile applikaasje mei in ynboude VPN.
  • Gegevens kinne ek komme fan siden dy't de resultaten fan it ynfoljen fan online fragelisten en de resultaten fan telefoanyske ynterviews yn bedriuwsûndersiken konsolidearje;
  • Oanfoljende ferriking fan 'e gegevensmar kin foarkomme troch it downloaden fan ynformaasje út logs fan partnerbedriuwen.

De ymplemintaasje fan as is laden fan boarnesystemen yn 'e primêre staging fan rauwe gegevens kin op ferskate manieren wurde organisearre. As lege-koade wurdt brûkt foar dizze doelen, automatyske generaasje fan laden skripts basearre op metadata is mooglik. Yn dit gefal is d'r gjin need om nei it nivo fan ûntwikkeljen fan boarne te gean om mappings te rjochtsjen. Om automatysk laden út te fieren, moatte wy in ferbining meitsje mei de boarne, en dan definiearje yn 'e laden ynterface de list mei entiteiten dy't wurde laden. De mapstruktuer yn HDFS sil automatysk oanmakke wurde en sil oerienkomme mei de gegevensopslachstruktuer op it boarnesysteem.

Yn 'e kontekst fan dit projekt hawwe wy lykwols besletten om dizze funksje fan it platfoarm mei lege koade net te brûken fanwegen it feit dat it bedriuw Mediascope al selsstannich wurk begon te meitsjen oan it produsearjen fan in ferlykbere tsjinst mei de kombinaasje Nifi + Kafka.

It is de muoite wurdich om fuortendaliks oan te jaan dat dizze ark net wikselber binne, mar earder komplemintêr. Nifi en Kafka kinne sawol yn direkte (Nifi -> Kafka) as yn omkearde (Kafka -> Nifi) ferbining wurkje. Foar it mediaûndersyksplatfoarm waard de earste ferzje fan de bondel brûkt.

Tapassing fan lege koade yn analytyske platfoarms

Yn ús gefal moast NayFi ferskate soarten gegevens fan boarnesystemen ferwurkje en stjoere nei de Kafka-broker. Yn dit gefal waarden berjochten stjoerd nei in spesifyk Kafka-ûnderwerp mei PublishKafka Nifi-processors. De orkestraasje en ûnderhâld fan dizze pipelines wurdt útfierd yn in fisuele ynterface. It Nifi-ark en it gebrûk fan 'e Nifi + Kafka-kombinaasje kinne ek in leech-koade-oanpak foar ûntwikkeling wurde neamd, dy't in lege barriêre hat foar yngong yn Big Data-technologyen en it proses fan applikaasjeûntwikkeling fersnelt.

De folgjende etappe yn 'e projektymplemintaasje wie om detaillearre gegevens te bringen nei in inkele semantyske laachformaat. As in entiteit histoaryske attributen hat, wurdt de berekkening útfierd yn 'e kontekst fan' e oanbelangjende dieling. As de entiteit net histoarysk is, dan is it opsjoneel mooglik om de folsleine ynhâld fan it objekt opnij te berekkenjen, of folslein wegerje dit objekt opnij te berekkenjen (fanwege it gebrek oan feroarings). Op dit stadium wurde kaaien oanmakke foar alle entiteiten. De kaaien wurde opslein yn 'e Hbase-mappen dy't oerienkomme mei de masterobjekten, dy't in korrespondinsje befetsje tusken de kaaien yn it analytyske platfoarm en de kaaien fan 'e boarnesystemen. Konsolidaasje fan atomêre entiteiten wurdt begelaat troch ferriking mei de resultaten fan foarriedige berekkening fan analytyske gegevens. It ramt foar gegevensberekkening wie Spark. De beskreaune funksjonaliteit foar it bringen fan gegevens nei ien semantyk waard ek ymplementearre op basis fan mappings fan it lege-koade Datagram-ark.

De doelarsjitektuer easke SQL-tagong ta gegevens foar saaklike brûkers. Hive waard brûkt foar dizze opsje. Objekten wurde automatysk registrearre yn Hive as jo de opsje "Registrearje Hive Table" ynskeakelje yn it ark mei lege koade.

Tapassing fan lege koade yn analytyske platfoarms

Berekkening flow kontrôle

Datagram hat in ynterface foar it meitsjen fan workflow-ûntwerpen. Mappings kinne wurde lansearre mei help fan de Oozie planner. Yn 'e streamûntwikkeldersynterface is it mooglik om skema's te meitsjen foar parallelle, sekwinsjele of útfieringsôfhinklike gegevenstransformaasjes. D'r is stipe foar shell-skripts en java-programma's. It is ek mooglik om de Apache Livy-tsjinner te brûken. Apache Livy wurdt brûkt om applikaasjes direkt út 'e ûntwikkelingsomjouwing út te fieren.

As it bedriuw al in eigen proses-orkestrator hat, is it mooglik om de REST API te brûken om mappings yn in besteande stream yn te foegjen. Wy hienen bygelyks frij suksesfolle ûnderfining fan it ynbêdzjen fan mappings yn Scala yn orkestrators skreaun yn PLSQL en Kotlin. De REST API fan it ark mei lege koade omfettet operaasjes lykas it generearjen fan in útfierber jier basearre op it mapping-ûntwerp, in mapping oproppe, in folchoarder fan mappings oproppe, en, fansels, parameters trochjaan oan de URL om mappings út te fieren.

Tegearre mei Oozie is it mooglik om te organisearjen in berekkening flow mei help Airflow. Faaks sil ik net lang stilstean by de ferliking tusken Oozie en Airflow, mar sil gewoan sizze dat yn it ramt fan wurk oan in media-ûndersyksprojekt de kar yn it foardiel fan Airflow foel. De wichtichste arguminten dizze kear wiene in mear aktive mienskip dy't it produkt ûntwikkele en in mear ûntwikkele ynterface + API.

Luchtstream is ek goed, om't it de leafste Python brûkt om berekkeningsprosessen te beskriuwen. En yn 't algemien binne d'r net safolle iepen boarne workflowbehearplatfoarms. It starten en kontrolearjen fan de útfiering fan prosessen (ynklusyf in Gantt-diagram) foeget allinich punten ta oan it karma fan Airflow.

It konfiguraasjebestânformaat foar it lansearjen fan oplossingsmappings mei lege koade is spark-submit wurden. Dit barde om twa redenen. As earste lit spark-submit jo direkt in jar-bestân útfiere fanút de konsole. As twadde kin it alle nedige ynformaasje befetsje om de workflow te konfigurearjen (wat it makliker makket om skripts te skriuwen dy't Dag generearje).
It meast foarkommende elemint fan 'e Airflow-workflow yn ús gefal wie de SparkSubmitOperator.

SparkSubmitOperator lit jo jars útfiere - ferpakte Datagram-mappings mei foarôf oanmakke ynfierparameters foar har.

It is it neamen wurdich dat elke Airflow-taak yn in aparte thread rint en neat wit oer oare taken. Dêrom wurdt ynteraksje tusken taken útfierd mei kontrôleoperators, lykas DummyOperator of BranchPythonOperator.

Tegearre, it brûken fan de Datagram low-code oplossing yn gearhing mei de universalisaasje fan konfiguraasje triemmen (foarmjen Dag) late ta in wichtige fersnelling en ferienfâldiging fan it proses fan it ûntwikkeljen fan gegevens laden streamen.

Showcase berekkening

Miskien is it meast yntellektueel laden poadium yn 'e produksje fan analytyske gegevens de stap fan it bouwen fan showcases. Yn 'e kontekst fan ien fan' e gegevensberekkeningsstreamen fan it ûndersyksbedriuw, wurde op dit stadium de gegevens fermindere ta in referinsjeútstjoering, rekken hâldend mei korreksjes foar tiidsônes en keppele oan it útstjoernet. It is ek mooglik om oan te passen foar it lokale útstjoernetwurk (lokaal nijs en reklame). Under oare dingen brekt dizze stap de yntervallen fan trochgeande besjen fan mediaprodukten ôf op basis fan 'e analyze fan besjen yntervallen. Fuortendaliks wurde de werjeftewearden "gewogen" basearre op ynformaasje oer har betsjutting (berekkening fan in korreksjefaktor).

Tapassing fan lege koade yn analytyske platfoarms

In aparte stap by it tarieden fan showcases is gegevensvalidaasje. It falidaasjealgoritme omfettet it brûken fan in oantal wiskundige wittenskiplike modellen. It gebrûk fan in platfoarm mei lege koade lit jo lykwols in kompleks algoritme brekke yn in oantal aparte visueel lêsbere mappings. Elk fan 'e mappings fiert in smelle taak. As gefolch binne tuskentiidse debuggen, logging en fisualisaasje fan gegevenstariedingsstadia mooglik.

It waard besletten om it validaasjealgoritme te diskretisearjen yn de folgjende substappen:

  • Regressions bouwe fan ôfhinklikens fan TV-netwurk yn in regio mei besjen fan alle netwurken yn 'e regio foar 60 dagen.
  • Berekkening fan studentisearre residuen (ôfwikingen fan werklike wearden fan dy foarsein troch it regressionmodel) foar alle regressionpunten en foar de berekkene dei.
  • In seleksje fan abnormale regio-netwurkpearen, wêrby't it studentisearre saldo fan 'e delsettingsdei de noarm is (oantsjutte troch de operaasjeynstellingen).
  • Herberekkening fan 'e korrizjearre studentisearre residueel foar abnormale regio-TV-netwurkpearen foar elke respondint dy't it netwurk yn' e regio seach, it bepalen fan 'e bydrage fan dizze respondint (it bedrach fan feroaring yn' e studentized residual) by it útsluten fan it besjen fan dizze respondint út 'e stekproef .
  • Sykje nei kandidaten waans útsluting it studintisearre saldo fan 'e betellingsdei werombringt nei normaal.

It boppesteande foarbyld befêstiget de hypoteze dat in data-yngenieur al tefolle op 'e holle hat ... En, as dit echt in "yngenieur" is en net in "koder", dan is de eangst foar profesjonele degradaasje by it brûken fan lege-koade-ark. moat úteinlik weromlûke.

Wat oars kin low-code dwaan?

It tapassingsgebiet fan in lege-koade-ark foar batch- en streamgegevensferwurking sûnder de needsaak om koade manuell te skriuwen yn Scala einiget dêr net.

It brûken fan lege koade yn 'e ûntwikkeling fan datalak is al in standert wurden foar ús. Wy kinne wierskynlik sizze dat oplossingen basearre op 'e Hadoop-stapel it ûntwikkelingspaad folgje fan klassike DWH's basearre op RDBMS. Lege-koade-ark op 'e Hadoop-stapel kinne sawol gegevensferwurkingstaken oplosse as de taak om definitive BI-ynterfaces te bouwen. Boppedat moat opmurken wurde dat BI kin betsjutte net allinnich de fertsjintwurdiging fan gegevens, mar ek syn bewurkjen troch saaklike brûkers. Wy brûke dizze funksjonaliteit faak by it bouwen fan analytyske platfoarms foar de finansjele sektor.

Tapassing fan lege koade yn analytyske platfoarms

Under oare, mei help fan lege-koade en, yn it bysûnder, Datagram, is it mooglik om te lossen it probleem fan it folgjen fan de oarsprong fan gegevens stream objekten mei atomiciteit del nei yndividuele fjilden (lineage). Om dit te dwaan implementeart it ark mei lege koade interface mei Apache Atlas en Cloudera Navigator. Yn wêzen moat de ûntwikkelder in set fan objekten registrearje yn Atlas-wurdboeken en ferwize nei de registrearre objekten by it bouwen fan mappings. It meganisme foar it folgjen fan 'e oarsprong fan gegevens of it analysearjen fan objektôfhinklikens besparret in protte tiid as it nedich is om ferbetteringen oan' e berekkeningsalgoritmen te meitsjen. Bygelyks, by it opstellen fan finansjele ferklearrings, dizze funksje kinne jo nofliker oerlibje de perioade fan wetjouwing feroarings. Ommers, hoe better wy begripe de inter-form ôfhinklikens yn 'e kontekst fan objekten fan in detaillearre laach, hoe minder wy sille tsjinkomme "hommels" defekten en ferminderje it oantal reworks.

Tapassing fan lege koade yn analytyske platfoarms

Gegevenskwaliteit en lege koade

In oare taak útfierd troch it ark mei lege koade op it Mediascope-projekt wie de taak fan 'e klasse Data Quality. In spesjaal skaaimerk fan 'e ymplemintaasje fan' e gegevensferifikaasjepipeline foar it ûndersyksbedriuwprojekt wie it gebrek oan ynfloed op 'e prestaasjes en snelheid fan' e haadgegevensberekkeningsstream. Om ûnôfhinklike gegevensferifikaasjestreamen te orkestrearjen, waard de al bekende Apache Airflow brûkt. As elke stap fan gegevensproduksje klear wie, waard in apart diel fan 'e DQ-pipeline parallel lansearre.

It wurdt beskôge as goede praktyk om de kwaliteit fan gegevens te kontrolearjen fanôf it momint fan har oprjochting yn it analytysk platfoarm. Mei ynformaasje oer metadata kinne wy ​​​​konformearje mei basisbetingsten fanôf it momint dat de ynformaasje yn 'e primêre laach komt - net nul, beheiningen, bûtenlânske kaaien. Dizze funksjonaliteit wurdt ymplementearre basearre op automatysk oanmakke mappen fan 'e gegevenskwaliteitsfamylje yn Datagram. Koade generaasje yn dit gefal is ek basearre op model metadata. Op it Mediascope-projekt waard de ynterface útfierd mei de metadata fan it Enterprise Architect-produkt.

Troch it keppeljen fan it lege-koade-ark mei Enterprise Architect, waarden de folgjende kontrôles automatysk generearre:

  • Kontrolearje op de oanwêzigens fan "null" wearden yn fjilden mei de "net null" modifier;
  • Kontrolearje de oanwêzigens fan duplikaten fan 'e primêre kaai;
  • Kontrolearje de bûtenlânske kaai fan in entiteit;
  • Kontrolearje de eigenheid fan in tekenrige basearre op in set fan fjilden.

Foar mear komplekse kontrôles fan gegevensbeskikberens en betrouberens waard in mapping makke mei Scala Expression, dy't as ynfier in eksterne Spark SQL-kontrôlekoade taret troch analisten by Zeppelin.

Tapassing fan lege koade yn analytyske platfoarms

Fansels moat it automatysk generearjen fan kontrôles stadichoan berikt wurde. Yn it ramt fan it beskreaune projekt waard dit foarôfgien troch de folgjende stappen:

  • DQ ymplementearre yn Zeppelin notebooks;
  • DQ ynboud yn mapping;
  • DQ yn 'e foarm fan aparte massive mappings dy't in heule set kontrôles befetsje foar in aparte entiteit;
  • Universele parameterisearre DQ-mappings dy't ynformaasje akseptearje oer metadata en saaklike kontrôles as ynfier.

Miskien is it wichtichste foardiel fan it meitsjen fan in parameterisearre kontrôletsjinst de fermindering fan 'e tiid dy't it nimt om funksjonaliteit te leverjen oan' e produksjeomjouwing. Nije kwaliteitskontrôles kinne it klassike patroan omgean fan it yndirekt leverjen fan koade fia ûntwikkeling- en testomjouwings:

  • Alle metadata kontrôles wurde generearre automatysk as it model wurdt wizige yn EA;
  • Gegevens beskikberens kontrôles (bepale de oanwêzigens fan alle gegevens op in punt yn 'e tiid) kin oanmakke wurde basearre op in map dy't bewarret de ferwachte timing fan it uterlik fan it folgjende stik gegevens yn' e kontekst fan objekten;
  • Kontrôles foar validaasje fan saaklike gegevens wurde makke troch analisten yn Zeppelin-notebooks. Dêrwei wurde se direkt stjoerd nei de DQ-module-opsettabellen yn 'e produksjeomjouwing.

D'r binne gjin risiko's om skripts direkt nei produksje te ferstjoeren. Sels mei in syntaksisflater is it maksimum dat ús bedriget it mislearjen fan ien kontrôle, om't de gegevensberekkeningsstream en de startstream fan kwaliteitskontrôle fan elkoar skieden binne.

Yn essinsje rint de DQ-tsjinst permanint yn 'e produksjeomjouwing en is ree om har wurk te begjinnen op it momint dat it folgjende stik gegevens ferskynt.

Yn stee fan in konklúzje

It foardiel fan it brûken fan lege koade is fanselssprekkend. Untwikkelders hoege de applikaasje net fanôf it begjin te ûntwikkeljen. En in programmeur befrijd fan ekstra taken produsearret flugger resultaten. Snelheid makket op syn beurt ekstra tiid frij foar it oplossen fan optimisaasjeproblemen. Dêrom, yn dit gefal, kinne jo rekkenje op in bettere en flugger oplossing.

Fansels is lege koade gjin panacea, en magy sil net op himsels barre:

  • De yndustry mei lege koade giet troch in poadium "sterker wurde", en der binne noch gjin unifoarme yndustriële noarmen;
  • In protte oplossings mei lege koade binne net fergees, en it keapjen fan se moat in bewuste stap wêze, dy't makke wurde mei folslein fertrouwen yn 'e finansjele foardielen fan it brûken fan se;
  • In protte oplossings mei lege koade wurkje net altyd goed mei GIT / SVN. Of se binne ûngemaklik te brûken as de oanmakke koade is ferburgen;
  • By it útwreidzjen fan 'e arsjitektuer kin it nedich wêze om de oplossing mei lege koade te ferfine - dy't op syn beurt it effekt fan "taheaksel en ôfhinklikens" op 'e leveransier fan 'e oplossing mei lege koade provosearret.
  • In adekwaat nivo fan feiligens is mooglik, mar it is heul arbeidsintensyf en lestich te ymplementearjen yn motoren mei leech koade. Platfoarms mei lege koade moatte wurde keazen net allinich op it prinsipe fan it sykjen nei foardielen fan har gebrûk. By it kiezen is it wurdich fragen te stellen oer de beskikberens fan funksjonaliteit foar tagongskontrôle en delegaasje / eskalaasje fan identifikaasjegegevens nei it nivo fan it hiele IT-lânskip fan 'e organisaasje.

Tapassing fan lege koade yn analytyske platfoarms

As jo ​​​​lykwols alle tekoarten fan it keazen systeem bekend binne, en de foardielen fan it gebrûk lykwols yn 'e dominante mearderheid binne, gean dan sûnder eangst troch nei lytse koade. Boppedat is de oergong dernei ûnûntkomber - lykas elke evolúsje ûnûntkomber is.

As ien ûntwikkelder op in platfoarm mei lege koade syn wurk rapper docht as twa ûntwikkelders sûnder lege koade, dan jout dit it bedriuw yn alle opsichten in foarsprong. De drompel foar yngong yn oplossings mei lege koade is leger as yn "tradisjonele" technologyen, en dit hat in posityf effekt op it probleem fan tekoart oan personiel. By it brûken fan lege-koade-ark is it mooglik om ynteraksje tusken funksjonele teams te fersnellen en rapper besluten te nimmen oer de krektens fan it keazen paad fan gegevenswittenskiplik ûndersyk. Platfoarms op leech nivo kinne de digitale transformaasje fan in organisaasje driuwe, om't de produsearre oplossingen kinne wurde begrepen troch net-technyske spesjalisten (benammen saaklike brûkers).

As jo ​​strakke deadlines hawwe, laden saaklike logika, in gebrek oan technologyske ekspertize, en jo moatte jo tiid op 'e merk fersnelle, dan is lege koade ien manier om oan jo behoeften te foldwaan.

D'r is it belang fan tradisjonele ûntwikkelingsynstruminten net te ûntkennen, mar yn in protte gefallen is it brûken fan oplossings mei lege koade de bêste manier om de effisjinsje fan 'e taken dy't wurde oplost te fergrutsjen.

Boarne: www.habr.com

Add a comment