Apliko de malalta kodo en analizaj platformoj

Karaj legantoj, bonan posttagmezon!

La tasko konstrui IT-platformojn por kolekti kaj analizi datumojn pli aŭ malpli frue aperas por iu ajn kompanio, kies komerco baziĝas sur intelekte ŝarĝita servo-livera modelo aŭ la kreado de teknike kompleksaj produktoj. Konstrui analizajn platformojn estas kompleksa kaj tempopostula tasko. Tamen, ajna tasko povas esti simpligita. En ĉi tiu artikolo mi volas kunhavigi mian sperton pri uzado de malaltkodaj iloj por helpi krei analizajn solvojn. Ĉi tiu sperto estis akirita dum la efektivigo de kelkaj projektoj en la direkto de Big Data Solutions de la kompanio Neoflex. Ekde 2005, la direkto de Big Data Solutions de Neoflex traktas la aferojn de konstruado de datumstokejoj kaj lagoj, solvante problemojn pri optimumigo de la rapideco de informpretigo kaj laboranta pri metodaro por datumkvalita administrado.

Apliko de malalta kodo en analizaj platformoj

Neniu povos eviti la konscian amasiĝon de malforte kaj/aŭ forte strukturitaj datumoj. Eble eĉ se ni parolas pri malgrandaj entreprenoj. Post ĉio, kiam grimpas komercon, promesplena entreprenisto alfrontos la problemojn pri disvolviĝo de lojaleca programo, volos analizi la efikecon de vendopunktoj, pensos pri celita reklamado, kaj estos konfuzita de la postulo de akompanaj produktoj. . Al unua aproksimado, la problemo povas esti solvita "sur la genuo". Sed dum la komerco kreskas, veni al analiza platformo ankoraŭ estas neevitebla.

Tamen, en kiu kazo povas datum-analitikaj taskoj disvolviĝi en klasajn problemojn de "Rocket Science"? Eble en la momento, kiam ni parolas pri vere grandaj datumoj.
Por faciligi Rocket Science, vi povas manĝi la elefanton pecon post peco.

Apliko de malalta kodo en analizaj platformoj

Ju pli diskretaj kaj aŭtonomaj estas viaj aplikaĵoj/servoj/mikroservoj, des pli facile estos por vi, viaj kolegoj kaj la tuta komerco digesti la elefanton.

Preskaŭ ĉiuj niaj klientoj venis al ĉi tiu postulato, rekonstruinte la pejzaĝon surbaze de la inĝenieraj praktikoj de DevOps-teamoj.

Sed eĉ kun "aparta, elefantina" dieto, ni havas bonan ŝancon de "trosaturiĝo" de la IT-pejzaĝo. En ĉi tiu momento indas halti, elspiri kaj rigardi flanken malaltkoda inĝenieristiko platformo.

Multaj programistoj timas la perspektivon de sakstrato en sia kariero kiam ili foriras de rekte skribi kodon al "treni" sagoj en la UI-interfacoj de malaltkodaj sistemoj. Sed la apero de maŝiniloj ne kaŭzis la malaperon de inĝenieroj, sed alportis ilian laboron al nova nivelo!

Ni eltrovu kial.

Datuma analizo en la kampo de loĝistiko, telekomunika industrio, amaskomunikila esplorado, financa sektoro ĉiam rilatas al la sekvaj demandoj:

  • Rapido de aŭtomata analizo;
  • Kapablo fari eksperimentojn sen influi la ĉefan datuman produktadfluon;
  • Fidindeco de la pretaj datumoj;
  • Ŝanĝi spuradon kaj versionadon;
  • Datumdeveno, Datenlinio, CDC;
  • Rapida livero de novaj funkcioj al la produktadmedio;
  • Kaj la fifama: la kosto de disvolviĝo kaj subteno.

Tio estas, inĝenieroj havas grandegan nombron da altnivelaj taskoj, kiuj povas esti kompletigitaj kun sufiĉa efikeco nur purigante sian konscion pri malaltnivelaj disvolvaj taskoj.

La antaŭkondiĉoj por programistoj moviĝi al nova nivelo estis la evoluo kaj ciferecigo de komerco. La valoro de la programisto ankaŭ ŝanĝiĝas: estas grava manko de programistoj, kiuj povas mergi sin en la konceptoj de la komerco aŭtomatigita.

Ni desegnu analogion kun malaltnivelaj kaj altnivelaj programlingvoj. La transiro de malaltnivelaj lingvoj al altnivelaj estas transiro de verkado de "rektaj direktivoj en la lingvo de aparataro" al "directivoj en la lingvo de homoj". Tio estas, aldonante iun tavolon de abstraktado. En ĉi tiu kazo, la transiro al malaltkodaj platformoj de altnivelaj programlingvoj estas transiro de "direktivoj en la lingvo de homoj" al "directivoj en la lingvo de komerco". Se estas programistoj, kiuj malĝojas pro ĉi tiu fakto, tiam ili malĝojas, eble, ekde la momento, kiam naskiĝis Java Script, kiu uzas tabelajn ordigajn funkciojn. Kaj ĉi tiuj funkcioj, kompreneble, havas programaran efektivigon sub la kapuĉo per aliaj rimedoj de la sama altnivela programado.

Tial malaltkodo estas nur la aspekto de alia nivelo de abstraktado.

Aplikita sperto uzante malaltan kodon

La temo de malalta kodo estas sufiĉe vasta, sed nun mi ŝatus paroli pri la praktika aplikado de "malaltkodaj konceptoj" uzante la ekzemplon de unu el niaj projektoj.

La Big Data Solutions-dividado de Neoflex specialiĝas pli pri la financa sektoro de komerco, konstruante datumajn stokejojn kaj lagojn kaj aŭtomatigante diversajn raportojn. En ĉi tiu niĉo, la uzo de malalta kodo jam delonge fariĝis normo. Inter aliaj malaltkodaj iloj, ni povas mencii ilojn por organizi ETL-procezojn: Informatica Power Center, IBM Datastage, Pentaho Data Integration. Aŭ Oracle Apex, kiu funkcias kiel medio por la rapida disvolviĝo de interfacoj por aliri kaj redakti datumojn. Tamen, la uzo de malaltkodaj evoluiloj ne ĉiam implikas konstrui tre celitajn aplikojn sur komerca teknologia stako kun klara dependeco de la vendisto.

Uzante malaltkodajn platformojn, vi ankaŭ povas organizi la instrumentadon de datumfluoj, krei datumajn platformojn aŭ, ekzemple, modulojn por kontroli datumkvaliton.

Unu el la aplikataj ekzemploj de sperto en uzado de malaltkodaj evoluiloj estas la kunlaboro inter Neoflex kaj Mediascope, unu el la gvidantoj en la rusa amaskomunikila esplormerkato. Unu el la komercaj celoj de ĉi tiu kompanio estas la produktado de datumoj surbaze de kiuj reklamantoj, interretaj platformoj, televidkanaloj, radiostacioj, reklam-agentejoj kaj markoj faras decidojn pri aĉetado de reklamoj kaj planas siajn merkatajn komunikadojn.

Apliko de malalta kodo en analizaj platformoj

Amaskomunikila esplorado estas teknologie ŝarĝita areo de komerco. Rekoni videosekvencojn, kolekti datumojn de aparatoj, kiuj analizas spektadon, mezuri agadon sur retaj rimedoj - ĉio ĉi implicas, ke la kompanio havas grandan IT-personaron kaj enorman sperton en konstruado de analizaj solvoj. Sed la eksponenta kresko en la kvanto de informoj, la nombro kaj vario de ĝiaj fontoj devigas la IT-datundustrion konstante progresi. La plej simpla solvo por grimpi la jam funkciantan analizan platformon Mediascope povus esti pliigi la IT-kunlaborantaron. Sed multe pli efika solvo estas akceli la disvolvan procezon. Unu el la paŝoj gvidantaj en ĉi tiu direkto povas esti la uzo de malaltkodaj platformoj.

Kiam la projekto komenciĝis, la firmao jam havis funkciantan produktan solvon. Tamen, la efektivigo de la solvo en MSSQL ne povis plene renkonti la atendojn por grimpi funkciecon konservante akcepteblan koston de evoluo.

La tasko antaŭ ni estis vere ambicia - Neoflex kaj Mediascope devis krei industrian solvon en malpli ol jaro, kondiĉe de la liberigo de la MVP en la unua kvara de la komenca dato.

La Hadoop-teknologia stako estis elektita kiel la fundamento por konstrui novan datumplatformon bazitan sur malaltkoda komputiko. HDFS fariĝis la normo por datumstokado uzante pargetajn dosierojn. Por aliri la datumojn situantajn en la platformo, Hive estis uzata, en kiu ĉiuj disponeblaj vendejoj estas prezentitaj en la formo de eksteraj tabloj. Ŝargado de datumoj en la stokado estis efektivigita uzante Kafka kaj Apache NiFi.

La Lowe-koda ilo en ĉi tiu koncepto estis uzita por optimumigi la plej laborintensan taskon en konstruado de analiza platformo - la tasko de datumkalkulo.

Apliko de malalta kodo en analizaj platformoj

La malaltkoda Datagram-ilo estis elektita kiel la ĉefa mekanismo por datummapado. Neoflex Datagramo estas ilo por disvolvi transformojn kaj datumfluojn.
Uzante ĉi tiun ilon, vi povas fari sen skribi Scala-kodon permane. Scala-kodo estas generita aŭtomate uzante la aliron Model Driven Architecture.

Evidenta avantaĝo de ĉi tiu aliro estas akceli la disvolvan procezon. Tamen, krom rapideco, ekzistas ankaŭ la jenaj avantaĝoj:

  • Vidante la enhavon kaj strukturon de fontoj/riceviloj;
  • Spurante la originon de datenfluaj objektoj al individuaj kampoj (genlinio);
  • Parta plenumo de transformoj kun spektado de mezaj rezultoj;
  • Revizii la fontkodon kaj ĝustigi ĝin antaŭ ekzekuto;
  • Aŭtomata validigo de transformoj;
  • Aŭtomata elŝuto de datumoj 1 en 1.

La baro al eniro en malaltkodajn solvojn por generi transformojn estas sufiĉe malalta: la programisto bezonas koni SQL kaj havi sperton laborante kun ETL-iloj. Menciindas, ke kod-movitaj transformgeneratoroj ne estas ETL-iloj en la larĝa signifo de la vorto. Malaltkodaj iloj eble ne havas sian propran kodan ekzekutmedion. Tio estas, la generita kodo estos ekzekutita en la medio kiu ekzistis sur la areto eĉ antaŭ instali la malaltkodan solvon. Kaj ĉi tio eble estas alia pluso por malaltkoda karmo. Ĉar, paralele kun malaltkoda teamo, "klasika" teamo povas labori, kiu efektivigas funkciecon, ekzemple, en pura Scala-kodo. Alporti plibonigojn de ambaŭ teamoj en produktadon estos simpla kaj senfina.

Eble indas rimarki, ke krom malaltkodaj, ekzistas ankaŭ senkodaj solvoj. Kaj ĉe ilia kerno, ĉi tiuj estas malsamaj aferoj. Malaltkodo permesas al la programisto interferi pli kun la generita kodo. En la kazo de Datagramo, eblas vidi kaj redakti la generitan Scala-kodon; senkodo eble ne provizas tian ŝancon. Ĉi tiu diferenco estas tre signifa ne nur laŭ la fleksebleco de la solvo, sed ankaŭ laŭ komforto kaj instigo en la laboro de datumaj inĝenieroj.

Solva arkitekturo

Ni provu eltrovi ĝuste kiel malaltkoda ilo helpas solvi la problemon de optimumigado de la rapideco de evoluigado de datumkalkulfunkcio. Unue, ni rigardu la funkcian arkitekturon de la sistemo. Ekzemplo en ĉi tiu kazo estas la datumproduktadmodelo por amaskomunikila esplorado.

Apliko de malalta kodo en analizaj platformoj

Datenfontoj en nia kazo estas tre heterogenaj kaj diversaj:

  • Homaj mezuriloj (televidmezuriloj) estas programaro kaj aparataro, kiuj legas uzantkonduton de televidpanelaj respondantoj - kiu, kiam kaj kia televidkanalo estis spektita en la domanaro kiu partoprenas la studon. La provizitaj informoj estas fluo de elsendaj spektadintervaloj ligitaj al la amaskomunikila pakaĵo kaj amaskomunikila produkto. Datenoj en la stadio de ŝarĝo en la Datuman Lago povas esti riĉigitaj per demografiaj atributoj, geostratifiko, horzono kaj aliaj informoj necesaj por analizi televidspektadon de speciala amaskomunikila produkto. La mezuradoj prenitaj povas esti uzataj por analizi aŭ plani reklamajn kampanjojn, taksi la agadon kaj preferojn de la spektantaro kaj kompili la elsendan reton;
  • La datumoj povas veni de monitoraj sistemoj por retsendado de televidaj elsendoj kaj mezurado de la spektado de video-resursa enhavo en la Interreto;
  • Mezuraj iloj en la interreta medio, inkluzive de kaj ejo-centraj kaj uzant-centraj mezuriloj. La datumprovizanto por la Datuma Lago povas esti aldonaĵo de retumilo pri esploro kaj poŝtelefona aplikaĵo kun enkonstruita VPN.
  • Datumoj ankaŭ povas veni de retejoj, kiuj solidigas la rezultojn de plenigado de interretaj demandaroj kaj la rezultojn de telefonaj intervjuoj en firmaaj enketoj;
  • Plia riĉiĝo de la datumlago povas okazi per elŝuto de informoj de protokoloj de partneraj kompanioj.

La efektivigo de kiel estas ŝarĝo de fontsistemoj en la primaran enscenigon de krudaj datumoj povas esti organizita en diversaj manieroj. Se malaltkodo estas uzata por ĉi tiuj celoj, aŭtomata generacio de ŝarĝaj skriptoj surbaze de metadatenoj eblas. En ĉi tiu kazo, ne necesas malsupreniri al la nivelo de evolua fonto por celi mapadojn. Por efektivigi aŭtomatan ŝarĝon, ni devas establi konekton al la fonto, kaj poste difini en la ŝarĝa interfaco la liston de ŝarĝotaj estaĵoj. La dosierujo-strukturo en HDFS estos kreita aŭtomate kaj korespondos al la datumstoka strukturo sur la fontsistemo.

Tamen, en la kunteksto de ĉi tiu projekto, ni decidis ne uzi ĉi tiun funkcion de la malaltkoda platformo pro la fakto, ke la kompanio Mediascope jam sendepende komencis labori pri produktado de simila servo uzante la kombinaĵon Nifi + Kafka.

Indas tuj indiki, ke ĉi tiuj iloj ne estas interŝanĝeblaj, sed prefere komplementaj. Nifi kaj Kafka kapablas labori kaj en rekta (Nifi -> Kafka) kaj inverse (Kafka -> Nifi) konekto. Por la amaskomunikila esplorplatformo, la unua versio de la pakaĵo estis uzita.

Apliko de malalta kodo en analizaj platformoj

En nia kazo, NayFi bezonis prilabori diversajn specojn de datumoj de fontaj sistemoj kaj sendi ilin al la Kafka makleristo. En ĉi tiu kazo, mesaĝoj estis senditaj al specifa Kafka temo uzante PublishKafka Nifi-procesorojn. La instrumentado kaj prizorgado de ĉi tiuj duktoj estas efektivigitaj en vida interfaco. La Nifi-ilo kaj la uzo de la kombinaĵo Nifi + Kafka ankaŭ povas esti nomitaj malaltkoda aliro al evoluo, kiu havas malaltan baron por eniro en Big Data-teknologiojn kaj akcelas la aplikaĵan disvolvan procezon.

La venonta etapo en la projektefektivigo devis alporti detalajn datenojn al ununura semantika tavolformato. Se ento havas historiajn atributojn, la kalkulo estas farita en la kunteksto de la koncerna sekcio. Se la ento ne estas historia, tiam estas laŭvole eble aŭ rekalkuli la tutan enhavon de la objekto, aŭ tute rifuzi rekalkuli ĉi tiun objekton (pro la manko de ŝanĝoj). En ĉi tiu etapo, ŝlosiloj estas generitaj por ĉiuj estaĵoj. La ŝlosiloj estas konservitaj en la Hbase-dosierujoj respondaj al la majstraj objektoj, kiuj enhavas korespondadon inter la ŝlosiloj en la analiza platformo kaj la ŝlosiloj de la fontsistemoj. Plifirmiĝo de atomaj estaĵoj estas akompanata de riĉiĝo kun la rezultoj de prepara kalkulo de analizaj datumoj. La kadro por datenkalkulo estis Spark. La priskribita funkcieco por alportado de datumoj al ununura semantiko ankaŭ estis efektivigita surbaze de mapadoj de la malaltkoda Datagram-ilo.

La cela arkitekturo postulis SQL-aliron al datumoj por komercaj uzantoj. Hive estis uzata por ĉi tiu opcio. Objektoj estas registritaj en Hive aŭtomate kiam vi ebligas la opcion "Registr Hive Table" en la malaltkoda ilo.

Apliko de malalta kodo en analizaj platformoj

Kalkula fluo kontrolo

Datagramo havas interfacon por krei laborfluajn dezajnojn. Mapoj povas esti lanĉitaj per la Oozie-horplanilo. En la flua programinterfaco, estas eble krei kabalojn por paralelaj, sinsekvaj aŭ ekzekut-dependaj datumtransformoj. Estas subteno por ŝelaj skriptoj kaj java-programoj. Ankaŭ eblas uzi la servilon Apache Livy. Apache Livy estas uzata por ruli aplikojn rekte de la evolumedio.

Se la firmao jam havas sian propran procezan orkestranton, eblas uzi la REST API por enkonstrui mapadojn en ekzistantan fluon. Ekzemple, ni havis sufiĉe sukcesan sperton de enkonstruado de mapadoj en Scala en orkestrantojn skribitajn en PLSQL kaj Kotlin. La REST API de malaltkoda ilo inkluzivas operaciojn kiel generado de plenumebla jaro bazita sur la mapa dezajno, vokado de mapado, vokado de sekvenco de mapadoj kaj, kompreneble, pasi parametrojn al la URL por ruli mapadojn.

Kune kun Oozie, eblas organizi kalkulfluon uzante Airflow. Eble mi ne longe daŭros pri la komparo inter Oozie kaj Airflow, sed simple diros, ke en la kunteksto de laboro pri amaskomunikila esplorprojekto, la elekto falis favore al Airflow. La ĉefaj argumentoj ĉi-foje estis pli aktiva komunumo evoluanta la produkton kaj pli evoluinta interfaco + API.

Aerfluo ankaŭ estas bona ĉar ĝi uzas la amatan Python por priskribi kalkulprocezojn. Kaj ĝenerale, ne ekzistas tiom da malfermfontaj platformoj pri laborflua administrado. Lanĉi kaj monitori la plenumon de procezoj (inkluzive de Gantt-diagramo) nur aldonas punktojn al la karmo de Airflow.

La agorda dosierformato por lanĉi malaltkodajn solvmapojn fariĝis spark-submit. Ĉi tio okazis pro du kialoj. Unue, spark-submit permesas vin rekte ruli jardosieron de la konzolo. Due, ĝi povas enhavi ĉiujn necesajn informojn por agordi la laborfluon (kiu faciligas verki skriptojn kiuj generas Dag).
La plej ofta elemento de la Fluo de Fluo en nia kazo estis la SparkSubmitOperator.

SparkSubmitOperator ebligas al vi ruli kruĉojn - pakitajn Datagram-mapadojn kun antaŭgeneritaj enigparametroj por ili.

Menciindas, ke ĉiu tasko de Airflow funkcias en aparta fadeno kaj scias nenion pri aliaj taskoj. Tial, interago inter taskoj estas efektivigita uzante kontrolfunkciigistojn, kiel ekzemple DummyOperator aŭ BranchPythonOperator.

Kune, la uzo de la malalta koda solvo Datagram kune kun la universaligo de agordaj dosieroj (formante Dag) kondukis al signifa akcelo kaj simpligo de la procezo de evoluigado de datumŝarĝaj fluoj.

Montrofenestroj kalkuloj

Eble la plej intelekte ŝarĝita stadio en la produktado de analizaj datumoj estas la paŝo konstrui montrofenestrojn. En la kunteksto de unu el la datumkalkulfluoj de la esplorfirmao, en ĉi tiu etapo, la datumoj estas reduktitaj al referenca elsendo, konsiderante korektojn por horzonoj kaj ligitaj al la elsenda krado. Eblas ankaŭ alĝustigi por la loka elsenda reto (lokaj novaĵoj kaj reklamado). Interalie, ĉi tiu paŝo malkonstruas la intervalojn de kontinua spektado de amaskomunikilaj produktoj bazitaj sur la analizo de spektadintervaloj. Tuj, la rigardaj valoroj estas "pezigitaj" surbaze de informoj pri ilia signifo (kalkulo de korekta faktoro).

Apliko de malalta kodo en analizaj platformoj

Aparta paŝo en preparado de montrofenestroj estas datumvalidigo. La validumalgoritmo implikas la uzon de kelkaj matematikaj sciencmodeloj. Tamen, la uzo de malaltkoda platformo permesas vin rompi kompleksan algoritmon en kelkajn apartajn videlegeblajn mapadojn. Ĉiu el la mapadoj plenumas mallarĝan taskon. Kiel rezulto, meza senararigado, arbodehakado kaj bildigo de datumpreparfazoj estas eblaj.

Estis decidite diskretigi la validumalgoritmon en la sekvajn substadiojn:

  • Konstruante regresojn de televidretaj spektaddependecoj en regiono kun spektado de ĉiuj retoj en la regiono dum 60 tagoj.
  • Kalkulo de studentigitaj restaĵoj (devojoj de realaj valoroj de tiuj antaŭviditaj de la regresa modelo) por ĉiuj regrespunktoj kaj por la kalkulita tago.
  • Elekto de nenormalaj regiono-retaj paroj, kie la studentigita bilanco de la kompromistago superas la normon (specifita de la operaciaj agordoj).
  • Rekalkulo de la korektita studentigita restaĵo por nenormalaj regiono-televidretaj paroj por ĉiu respondanto, kiu spektis la reton en la regiono, determinante la kontribuon de ĉi tiu respondanto (la kvanto de ŝanĝo en la studentigita restaĵo) ekskludante la spektadon de ĉi tiu respondanto de la specimeno. .
  • Serĉu kandidatojn, kies ekskludo normaligas la studentan saldon de la salajrotago.

La ĉi-supra ekzemplo konfirmas la hipotezon, ke datuma inĝeniero jam havas tro multe en sia menso... Kaj, se ĉi tio vere estas "inĝeniero" kaj ne "kodisto", tiam la timo de profesia degradado kiam li uzas malaltkodajn ilojn li devas finfine retiriĝi.

Kion alian povas fari malaltkoda?

La amplekso de aplikado de malaltkoda ilo por bata kaj flua datumtraktado sen bezono permane skribi kodon en Scala ne finiĝas tie.

La uzo de malalta kodo en la disvolviĝo de datalake jam fariĝis normo por ni. Ni verŝajne povas diri, ke solvoj bazitaj sur la Hadoop-stako sekvas la disvolvan vojon de klasikaj DWH-oj bazitaj sur RDBMS. Malaltkodaj iloj sur la Hadoop-stako povas solvi ambaŭ prilaborajn taskojn kaj la taskon konstrui finajn BI-interfacojn. Plie, oni devas rimarki, ke BI povas signifi ne nur la reprezentadon de datumoj, sed ankaŭ ĝian redaktadon de komercaj uzantoj. Ni ofte uzas ĉi tiun funkcion dum konstruado de analizaj platformoj por la financa sektoro.

Apliko de malalta kodo en analizaj platformoj

Interalie, uzante malaltan kodon kaj, precipe, Datagramon, eblas solvi la problemon spuri la originon de datumfluaj objektoj kun atomeco ĝis individuaj kampoj (genlinio). Por fari tion, la malaltkoda ilo efektivigas interfacon kun Apache Atlas kaj Cloudera Navigator. Esence, la programisto devas registri aron da objektoj en Atlas-vortaroj kaj referenci la registritajn objektojn dum konstruado de mapadoj. La mekanismo por spuri la originon de datumoj aŭ analizi objektajn dependecojn ŝparas multan tempon kiam necesas fari plibonigojn al la kalkulaj algoritmoj. Ekzemple, kiam vi preparas financajn deklarojn, ĉi tiu funkcio permesas vin pli komforte postvivi la periodon de leĝdonaj ŝanĝoj. Finfine, ju pli bone ni komprenas la interforman dependecon en la kunteksto de objektoj de detala tavolo, des malpli ni renkontos "subitajn" difektojn kaj reduktos la nombron da reverkoj.

Apliko de malalta kodo en analizaj platformoj

Datumkvalito & Malaltkodo

Alia tasko efektivigita per la malaltkoda ilo en la Mediascope-projekto estis la Data Quality klastasko. Karakterizaĵo de la efektivigo de la datumkonfirma dukto por la esplorfirmaa projekto estis la manko de efiko al la agado kaj rapideco de la ĉefa datuma kalkula fluo. Por povi reĝisori sendependajn datenkonfirmfluojn, la jam konata Apache Airflow estis uzita. Ĉar ĉiu datumproduktadpaŝo estis preta, aparta parto de la DQ-dukto estis lanĉita paralele.

Estas konsiderata bona praktiko kontroli la kvaliton de datumoj de la momento de ĝia komenco en la analiza platformo. Havante informojn pri metadatumoj, ni povas kontroli la konformecon de bazaj kondiĉoj ekde la momento, kiam la informoj eniras la primaran tavolon - ne nulajn, limojn, fremdajn ŝlosilojn. Ĉi tiu funkcio estas efektivigita surbaze de aŭtomate generitaj mapadoj de la datenkvalita familio en Datagramo. Kodgenerado en ĉi tiu kazo ankaŭ estas bazita sur modelmetadatenoj. En la Mediascope-projekto, la interfaco estis aranĝita kun la metadatenoj de la Enterprise Architect-produkto.

Kunigante la malaltkodan ilon kun Enterprise Architect, la sekvaj kontroloj estis aŭtomate generitaj:

  • Kontrolante la ĉeeston de "nulaj" valoroj en kampoj kun la modifilo "ne nula";
  • Kontrolante la ĉeeston de duplikatoj de la ĉefa ŝlosilo;
  • Kontroli la fremdan ŝlosilon de ento;
  • Kontrolante la unikecon de ĉeno bazita sur aro de kampoj.

Por pli kompleksaj kontroloj de datenhavebleco kaj fidindeco, mapado estis kreita kun Scala Expression, kiu prenas kiel enigaĵon eksteran Spark SQL-kontrolkodon preparitan fare de analizistoj ĉe Zeppelin.

Apliko de malalta kodo en analizaj platformoj

Kompreneble, aŭtomata generacio de ĉekoj devas esti atingita iom post iom. En la kadro de la priskribita projekto, ĉi tio estis antaŭita de la sekvaj paŝoj:

  • DQ efektivigita en Zeppelin-kajeroj;
  • DQ konstruita en mapadon;
  • DQ en la formo de apartaj masivaj mapadoj enhavantaj tutan aron de ĉekoj por aparta unuo;
  • Universalaj parametrizitaj DQ-mapoj kiuj akceptas informojn pri metadatenoj kaj komercaj kontroloj kiel enigaĵon.

Eble la ĉefa avantaĝo de kreado de parametriza ĉekservo estas la redukto de la tempo necesa por liveri funkciecon al la produktadmedio. Novaj kvalitkontroloj povas preteriri la klasikan ŝablonon de liverado de kodo nerekte per evoluaj kaj testaj medioj:

  • Ĉiuj metadatumaj kontroloj estas generitaj aŭtomate kiam la modelo estas modifita en EA;
  • Datenhavebleckontroloj (determinante la ĉeeston de iuj datenoj ĉe punkto en tempo) povas esti generitaj surbaze de adresaro kiu stokas la atendatan tempigon de la apero de la venonta peco de datenoj en la kunteksto de objektoj;
  • Komercaj datumoj-konfirmkontroloj estas kreitaj de analizistoj en Zeppelin-kajeroj. De tie ili estas senditaj rekte al la DQ-modulaj agordaj tabloj en la produktadmedio.

Ne estas riskoj rekte sendi skriptojn al produktado. Eĉ kun sintaksa eraro, la maksimumo, kiu minacas nin, estas malsukceso plenumi unu kontrolon, ĉar la datumkalkulfluo kaj la kvalitkontrola lanĉa fluo estas apartigitaj unu de la alia.

Esence, la DQ-servo konstante funkcias en la produktadmedio kaj estas preta komenci sian laboron en la momento, kiam la sekva datumo aperos.

Anstataŭ konkludo

La avantaĝo uzi malaltkodon estas evidenta. Programistoj ne bezonas disvolvi la aplikaĵon de nulo. Kaj programisto liberigita de pliaj taskoj produktas rezultojn pli rapide. Rapido, siavice, liberigas plian tempon por solvi optimumigajn problemojn. Tial, en ĉi tiu kazo, vi povas fidi je pli bona kaj pli rapida solvo.

Kompreneble, malaltkodo ne estas panaceo, kaj magio ne okazos per si mem:

  • La malaltkoda industrio trairas "plifortiĝantan" stadion, kaj ankoraŭ ne ekzistas unuformaj industriaj normoj;
  • Multaj malaltkodaj solvoj ne estas senpagaj, kaj aĉeti ilin devus esti konscia paŝo, kiu devus esti farita kun plena fido pri la financaj avantaĝoj de uzado de ili;
  • Multaj malaltkodaj solvoj ne ĉiam funkcias bone kun GIT/SVN. Aŭ ili estas maloportune uzi se la generita kodo estas kaŝita;
  • Pligrandigante la arkitekturon, eble necesas rafini la malaltkodan solvon - kiu, siavice, provokas la efikon de "alligiteco kaj dependeco" al la provizanto de la malaltkoda solvo.
  • Adekvata nivelo de sekureco estas ebla, sed ĝi estas tre laborintensa kaj malfacile efektivigebla en malaltkodaj sistemaj motoroj. Malaltkodaj platformoj devas esti elektitaj ne nur laŭ la principo serĉi profitojn de ilia uzo. Elektante, indas demandi demandojn pri la havebleco de funkcieco por alirkontrolo kaj delegado/pliigo de identigaj datumoj al la nivelo de la tuta IT-pejzaĝo de la organizo.

Apliko de malalta kodo en analizaj platformoj

Tamen, se ĉiuj mankoj de la elektita sistemo estas konataj al vi, kaj la avantaĝoj de ĝia uzo, tamen, estas en la reganta plimulto, tiam transiru al malgranda kodo sen timo. Cetere, la transiro al ĝi estas neevitebla – same kiel ajna evoluo estas neevitebla.

Se unu programisto sur malaltkoda platformo faras sian laboron pli rapide ol du programistoj sen malalta kodo, tiam ĉi tio donas al la kompanio antaŭan komencon en ĉiuj aspektoj. La sojlo por eniro en malaltkodajn solvojn estas pli malalta ol en "tradiciaj" teknologioj, kaj tio havas pozitivan efikon al la temo de manko de dungitaro. Kiam oni uzas malaltkodajn ilojn, eblas akceli interagadon inter funkciaj teamoj kaj fari pli rapidajn decidojn pri la ĝusteco de la elektita vojo de datuma esploro. Malaltnivelaj platformoj povas stiri la ciferecan transformon de organizo ĉar la solvoj produktitaj povas esti komprenataj de ne-teknikaj specialistoj (aparte komercaj uzantoj).

Se vi havas streĉajn limdatojn, ŝarĝitan komercan logikon, mankon de teknologia kompetenteco, kaj vi bezonas plirapidigi vian tempon por merkati, tiam malalta kodo estas unu maniero por plenumi viajn bezonojn.

Oni ne povas nei la gravecon de tradiciaj evoluiloj, sed en multaj kazoj, uzi malaltkodajn solvojn estas la plej bona maniero por pliigi la efikecon de la solvitaj taskoj.

fonto: www.habr.com

Aldoni komenton