Zema koda izmantoŔana analītiskajās platformās

Cienījamie lasītāji, laba diena!

IT platformu izveide datu vākÅ”anai un analÄ«zei agri vai vēlu rodas jebkuram uzņēmumam, kura bizness ir balstÄ«ts uz intelektuāli noslogotu pakalpojumu sniegÅ”anas modeli vai tehniski sarežģītu produktu izveidi. AnalÄ«tisku platformu izveide ir sarežģīts un laikietilpÄ«gs uzdevums. Tomēr jebkuru uzdevumu var vienkārÅ”ot. Å ajā rakstā es vēlos dalÄ«ties pieredzē par zema koda rÄ«ku izmantoÅ”anu, lai palÄ«dzētu radÄ«t analÄ«tiskos risinājumus. Å Ä« pieredze iegÅ«ta, realizējot vairākus projektus uzņēmuma Neoflex Big Data Solutions virzienā. KopÅ” 2005. gada Neoflex Big Data Solutions virziens nodarbojas ar datu noliktavu un ezeru bÅ«vniecÄ«bas jautājumiem, risina informācijas apstrādes ātruma optimizÄ“Å”anas problēmas un strādā pie datu kvalitātes vadÄ«bas metodikas.

Zema koda izmantoŔana analītiskajās platformās

Neviens nevarēs izvairÄ«ties no vāji un/vai spēcÄ«gi strukturētu datu apzinātas uzkrāŔanas. VarbÅ«t pat tad, ja mēs runājam par mazajiem uzņēmumiem. Galu galā, mērogojot biznesu, perspektÄ«vs uzņēmējs saskarsies ar lojalitātes programmas izstrādes jautājumiem, vēlēsies analizēt tirdzniecÄ«bas vietu efektivitāti, domās par mērÄ·tiecÄ«gu reklāmu un bÅ«s neizpratnē par pieprasÄ«jumu pēc pavadoÅ”ajiem produktiem. . Sākotnēji problēmu var atrisināt ā€œuz ceļaā€. Taču, biznesam augot, analÄ«tiskās platformas izmantoÅ”ana joprojām ir neizbēgama.

Tomēr kādos gadÄ«jumos datu analÄ«zes uzdevumi var izvērsties par "RaÄ·eÅ”u zinātnes" klases problēmām? VarbÅ«t tajā brÄ«dÄ«, kad mēs runājam par patieŔām lieliem datiem.
Lai atvieglotu raÄ·eÅ”u zinātni, varat ēst ziloni pa gabalu.

Zema koda izmantoŔana analītiskajās platformās

Jo diskrētākas un autonomākas ir jūsu lietojumprogrammas/pakalpojumi/mikropakalpojumi, jo vieglāk jums, jūsu kolēģiem un visam uzņēmumam būs sagremot ziloni.

GandrÄ«z visi mÅ«su klienti nonāca pie Ŕī postulāta, pārbÅ«vējot ainavu, pamatojoties uz DevOps komandu inženiertehnisko praksi.

Bet pat ar ā€œatseviŔķu ziloņuā€ diētu mums ir labas IT ainavas ā€œpārsātinājumaā€ iespējas. Å ajā brÄ«dÄ« ir vērts apstāties, izelpot un paskatÄ«ties uz sāniem zema koda inženierijas platforma.

Daudzus izstrādātājus biedē iespēja nonākt strupceļā savā karjerā, pārejot no tieÅ”as koda rakstÄ«Å”anas uz bultiņu vilkÅ”anu zema koda sistēmu interfeisos. Bet darbgaldu parādÄ«Å”anās neizraisÄ«ja inženieru pazuÅ”anu, bet gan pacēla viņu darbu jaunā lÄ«menÄ«!

Noskaidrosim, kāpēc.

Datu analÄ«ze loÄ£istikas, telekomunikāciju nozares, mediju pētniecÄ«bas, finanÅ”u sektora jomā vienmēr ir saistÄ«ta ar Ŕādiem jautājumiem:

  • automatizētas analÄ«zes ātrums;
  • Spēja veikt eksperimentus, neietekmējot galveno datu ražoÅ”anas plÅ«smu;
  • Sagatavoto datu ticamÄ«ba;
  • MainÄ«t izsekoÅ”anu un versiju veidoÅ”anu;
  • Datu izcelsme, Datu lÄ«nija, CDC;
  • Ātra jaunu funkciju piegāde ražoÅ”anas vidē;
  • Un bēdÄ«gi slavenais: izstrādes un atbalsta izmaksas.

Tas ir, inženieriem ir milzīgs skaits augsta līmeņa uzdevumu, kurus var veikt pietiekami efektīvi, tikai attīrot viņu apziņu no zema līmeņa attīstības uzdevumiem.

Izstrādātāju priekÅ”nosacÄ«jumi, lai pārietu uz jaunu lÄ«meni, bija biznesa attÄ«stÄ«ba un digitalizācija. Mainās arÄ« izstrādātāja vērtÄ«ba: ievērojami trÅ«kst izstrādātāju, kas varētu iedziļināties automatizētā biznesa koncepcijās.

ZÄ«mēsim analoÄ£iju ar zema lÄ«meņa un augsta lÄ«meņa programmÄ“Å”anas valodām. Pāreja no zema lÄ«meņa valodām uz augsta lÄ«meņa valodām ir pāreja no ā€œtieÅ”o direktÄ«vu rakstÄ«Å”anas aparatÅ«ras valodāā€ uz ā€œdirektÄ«vām cilvēku valodāā€. Tas ir, pievienojot kādu abstrakcijas slāni. Å ajā gadÄ«jumā pāreja uz zema koda platformām no augsta lÄ«meņa programmÄ“Å”anas valodām ir pāreja no ā€œdirektÄ«vām cilvēku valodāā€ uz ā€œdirektÄ«vām biznesa valodāā€. Ja ir izstrādātāji, kurus Å”is fakts apbēdina, tad viņus, iespējams, skumdina jau kopÅ” brīža, kad ir dzimis Java Script, kas izmanto masÄ«vu ŔķiroÅ”anas funkcijas. Un Ŕīm funkcijām, protams, ir programmatÅ«ras ievieÅ”ana zem pārsega, izmantojot citus tā paÅ”a augsta lÄ«meņa programmÄ“Å”anas lÄ«dzekļus.

Tāpēc zemais kods ir tikai cita abstrakcijas lÄ«meņa parādÄ«Å”anās.

LietiŔķā pieredze, izmantojot zemu kodu

Zema koda tēma ir diezgan plaÅ”a, bet tagad es vēlētos runāt par ā€œzema koda jēdzienuā€ praktisko pielietojumu, izmantojot kāda mÅ«su projekta piemēru.

Neoflex Big Data Solutions nodaļa vairāk specializējas biznesa finanÅ”u sektorā, datu noliktavu un ezeru veidoÅ”anā un dažādu atskaiÅ”u automatizācijā. Å ajā niŔā zemā koda izmantoÅ”ana jau sen ir kļuvusi par standartu. Starp citiem zema koda rÄ«kiem var minēt rÄ«kus ETL procesu organizÄ“Å”anai: Informatica Power Center, IBM Datastage, Pentaho Data Integration. Vai Oracle Apex, kas darbojas kā vide ātrai saskarņu attÄ«stÄ«bai datu piekļuvei un rediģēŔanai. Tomēr zema koda izstrādes rÄ«ku izmantoÅ”ana ne vienmēr ir saistÄ«ta ar ļoti mērÄ·tiecÄ«gu lietojumprogrammu izveidi komerciālā tehnoloÄ£iju kaudzē ar nepārprotamu atkarÄ«bu no pārdevēja.

Izmantojot zema koda platformas, jÅ«s varat arÄ« organizēt datu plÅ«smu orÄ·estrÄ“Å”anu, izveidot datu zinātnes platformas vai, piemēram, moduļus datu kvalitātes pārbaudei.

Viens no pielietotajiem pieredzes piemēriem zema koda izstrādes rÄ«ku izmantoÅ”anā ir sadarbÄ«ba starp Neoflex un Mediascope, kas ir viens no Krievijas mediju pētÄ«jumu tirgus lÄ«deriem. Viens no Ŕī uzņēmuma darbÄ«bas mērÄ·iem ir tādu datu iegÅ«Å”ana, uz kuru pamata reklāmdevēji, interneta platformas, TV kanāli, radiostacijas, reklāmas aÄ£entÅ«ras un zÄ«moli pieņem lēmumus par reklāmas iegādi un plāno savas mārketinga komunikācijas.

Zema koda izmantoŔana analītiskajās platformās

Mediju pētniecÄ«ba ir tehnoloÄ£iski noslogota uzņēmējdarbÄ«bas joma. Video secÄ«bu atpazÄ«Å”ana, datu vākÅ”ana no ierÄ«cēm, kas analizē skatÄ«Å”anos, darbÄ«bu mērÄ«Å”ana tÄ«mekļa resursos ā€“ tas viss nozÄ«mē, ka uzņēmumam ir liels IT personāls un milzÄ«ga pieredze analÄ«tisko risinājumu izveidē. Taču informācijas apjoma, tās avotu skaita un daudzveidÄ«bas eksponenciālais pieaugums liek IT datu nozarei pastāvÄ«gi progresēt. VienkārŔākais risinājums jau funkcionējoŔās Mediascope analÄ«tiskās platformas mērogoÅ”anai varētu bÅ«t IT personāla palielināŔana. Taču daudz efektÄ«vāks risinājums ir paātrināt izstrādes procesu. Viens no soļiem Å”ajā virzienā var bÅ«t zema koda platformu izmantoÅ”ana.

Laikā, kad projekts sākās, uzņēmumam jau bija funkcionējoÅ”s produkta risinājums. Tomēr risinājuma ievieÅ”ana MSSQL nevarēja pilnÄ«bā apmierināt cerÄ«bas uz mērogoÅ”anas funkcionalitāti, vienlaikus saglabājot pieņemamas izstrādes izmaksas.

MÅ«su priekŔā esoÅ”ais uzdevums bija patiesi ambiciozs ā€“ Neoflex un Mediascope bija jāizveido industriāls risinājums mazāk nekā gada laikā, ņemot vērā MVP izlaiÅ”anu sākuma datuma pirmajā ceturksnÄ«.

Hadoop tehnoloÄ£iju kaudze tika izvēlēta kā pamats jaunas datu platformas izveidei, kuras pamatā ir zema koda skaitļoÅ”ana. HDFS ir kļuvis par standartu datu glabāŔanai, izmantojot parketa failus. Lai piekļūtu platformā esoÅ”ajiem datiem, tika izmantots Hive, kurā visas pieejamās vitrÄ«nas ir parādÄ«tas ārējo tabulu veidā. Datu ielāde krātuvē tika Ä«stenota, izmantojot Kafka un Apache NiFi.

Lowe-koda rÄ«ks Å”ajā koncepcijā tika izmantots, lai optimizētu darbietilpÄ«gāko uzdevumu analÄ«tiskās platformas izveidē - datu aprēķināŔanas uzdevumu.

Zema koda izmantoŔana analītiskajās platformās

Zema koda Datagram rÄ«ks tika izvēlēts kā galvenais datu kartÄ“Å”anas mehānisms. Neoflex Datagram ir rÄ«ks transformāciju un datu plÅ«smu izstrādei.
Izmantojot Å”o rÄ«ku, jÅ«s varat iztikt, nerakstot Scala kodu manuāli. Scala kods tiek Ä£enerēts automātiski, izmantojot modeļu vadÄ«tas arhitektÅ«ras pieeju.

AcÄ«mredzama Ŕīs pieejas priekÅ”rocÄ«ba ir izstrādes procesa paātrināŔana. Tomēr papildus ātrumam ir arÄ« Ŕādas priekÅ”rocÄ«bas:

  • Avotu/uztvērēju satura un struktÅ«ras apskate;
  • Datu plÅ«smas objektu izcelsmes izsekoÅ”ana atseviŔķiem laukiem (lÄ«nija);
  • Pārveidojumu daļēja izpilde ar starprezultātu apskati;
  • Avota koda pārskatÄ«Å”ana un pielāgoÅ”ana pirms izpildes;
  • Automātiska transformāciju validācija;
  • Automātiska datu lejupielāde 1 in 1.

Šķērslis ienākÅ”anai zema koda risinājumos transformāciju Ä£enerÄ“Å”anai ir diezgan zems: izstrādātājam ir jāzina SQL un jābÅ«t pieredzei darbā ar ETL rÄ«kiem. Ir vērts pieminēt, ka koda vadÄ«ti transformāciju Ä£eneratori nav ETL rÄ«ki Ŕī vārda plaŔā nozÄ«mē. Zema koda rÄ«kiem var nebÅ«t savas koda izpildes vides. Tas nozÄ«mē, ka Ä£enerētais kods tiks izpildÄ«ts vidē, kas pastāvēja klasterÄ« pat pirms zema koda risinājuma instalÄ“Å”anas. Un tas, iespējams, ir vēl viens pluss zema lÄ«meņa karmai. Tā kā paralēli zema koda komandai var strādāt ā€œklasiskāā€ komanda, kas ievieÅ” funkcionalitāti, piemēram, tÄ«rā Scala kodā. Abu komandu uzlabojumu ievieÅ”ana ražoÅ”anā bÅ«s vienkārÅ”a un nemanāma.

Iespējams, ir vērts atzÄ«mēt, ka papildus zema koda kodiem ir arÄ« bezkoda risinājumi. Un bÅ«tÄ«bā tās ir dažādas lietas. Zems kods ļauj izstrādātājam vairāk iejaukties Ä£enerētajā kodā. Datagram gadÄ«jumā ir iespējams apskatÄ«t un rediģēt Ä£enerēto Scala kodu, bezkoda Ŕādu iespēju var nenodroÅ”ināt. Å Ä« atŔķirÄ«ba ir ļoti bÅ«tiska ne tikai risinājuma elastÄ«bas ziņā, bet arÄ« komforta un motivācijas ziņā datu inženieru darbā.

Risinājuma arhitektūra

Mēģināsim precÄ«zi noskaidrot, kā zema koda rÄ«ks palÄ«dz atrisināt datu aprēķina funkcionalitātes izstrādes ātruma optimizÄ“Å”anas problēmu. Vispirms apskatÄ«sim sistēmas funkcionālo arhitektÅ«ru. Piemērs Å”ajā gadÄ«jumā ir datu veidoÅ”anas modelis mediju izpētei.

Zema koda izmantoŔana analītiskajās platformās

Mūsu gadījumā datu avoti ir ļoti neviendabīgi un dažādi:

  • Cilvēku mērÄ«tāji (TV skaitÄ«tāji) ir programmatÅ«ras un aparatÅ«ras ierÄ«ces, kas nolasa lietotāju uzvedÄ«bu no televÄ«zijas paneļa respondentiem ā€“ kas, kad un kādu TV kanālu skatÄ«jās mājsaimniecÄ«bā, kas piedalās pētÄ«jumā. Sniegtā informācija ir apraides skatÄ«Å”anās intervālu straume, kas saistÄ«ta ar multivides pakotni un multivides produktu. Datus ielādes datu ezerā stadijā var papildināt ar demogrāfiskajiem atribÅ«tiem, Ä£eostratifikāciju, laika joslu un citu informāciju, kas nepiecieÅ”ama konkrēta medija produkta televÄ«zijas skatÄ«Å”anās analÄ«zei. Veiktos mērÄ«jumus var izmantot, lai analizētu vai plānotu reklāmas kampaņas, novērtētu auditorijas aktivitāti un vēlmes, kā arÄ« apkopotu apraides tÄ«klu;
  • Datus var iegÅ«t no uzraudzÄ«bas sistēmām televÄ«zijas raidÄ«jumu straumÄ“Å”anai un video resursa satura skatÄ«Å”anās mērÄ«Å”anai internetā;
  • MērÄ«Å”anas rÄ«ki tÄ«mekļa vidē, tostarp gan uz vietni, gan uz lietotāju orientēti skaitÄ«tāji. Datu ezera datu nodroÅ”inātājs var bÅ«t izpētes joslas pārlÅ«kprogrammas papildinājums un mobilā lietojumprogramma ar iebÅ«vētu VPN.
  • Dati var bÅ«t arÄ« no vietnēm, kas apkopo tieÅ”saistes anketu aizpildÄ«Å”anas rezultātus un telefoninterviju rezultātus uzņēmumu aptaujās;
  • Papildu datu ezera bagātināŔana var notikt, lejupielādējot informāciju no partneruzņēmumu žurnāliem.

As is ielādes ievieÅ”anu no avota sistēmām primārajā neapstrādāto datu inscenÄ“Å”anā var organizēt dažādos veidos. Ja Å”iem nolÅ«kiem tiek izmantots zems kods, ir iespējama automātiska ielādes skriptu Ä£enerÄ“Å”ana, pamatojoties uz metadatiem. Å ajā gadÄ«jumā nav nepiecieÅ”ams pazemināt lÄ«dz avota izstrādes lÄ«menim, lai atlasÄ«tu kartējumus. Lai ieviestu automātisko ielādi, mums ir jāizveido savienojums ar avotu un pēc tam ielādes interfeisā jādefinē ielādējamo entÄ«tiju saraksts. Direktoriju struktÅ«ra HDFS tiks izveidota automātiski un atbildÄ«s datu uzglabāŔanas struktÅ«rai avota sistēmā.

Tomēr Ŕī projekta kontekstā mēs nolēmām neizmantot Å”o zema koda platformas funkciju, jo Mediascope uzņēmums jau ir patstāvÄ«gi sācis darbu pie lÄ«dzÄ«ga pakalpojuma izveides, izmantojot kombināciju Nifi + Kafka.

Ir vērts nekavējoties norādÄ«t, ka Å”ie rÄ«ki nav savstarpēji aizvietojami, bet gan papildina viens otru. Nifi un Kafka spēj strādāt gan tieŔā (Nifi -> Kafka), gan reversā (Kafka -> Nifi) savienojumā. PlaÅ”saziņas lÄ«dzekļu izpētes platformai tika izmantota paketes pirmā versija.

Zema koda izmantoŔana analītiskajās platformās

MÅ«su gadÄ«jumā NayFi vajadzēja apstrādāt dažāda veida datus no avota sistēmām un nosÅ«tÄ«t tos Kafka brokerim. Å ajā gadÄ«jumā ziņojumi tika nosÅ«tÄ«ti uz konkrētu Kafka tēmu, izmantojot PublishKafka Nifi procesorus. Å o cauruļvadu orÄ·estrÄ“Å”ana un apkope tiek veikta vizuālā saskarnē. Nifi rÄ«ku un Nifi + Kafka kombinācijas izmantoÅ”anu var saukt arÄ« par zema koda pieeju izstrādei, kurai ir zems Ŕķērslis ienākÅ”anai Big Data tehnoloÄ£ijās un paātrina aplikāciju izstrādes procesu.

Nākamais projekta Ä«stenoÅ”anas posms bija detalizētu datu apkopoÅ”ana viena semantiskā slāņa formātā. Ja entÄ«tijai ir vēsturiski atribÅ«ti, aprēķins tiek veikts attiecÄ«gā nodalÄ«juma kontekstā. Ja entÄ«tija nav vēsturiska, tad pēc izvēles ir iespējams vai nu pārrēķināt visu objekta saturu, vai arÄ« pilnÄ«bā atteikties no Ŕī objekta pārrēķināŔanas (izmaiņu trÅ«kuma dēļ). Å ajā posmā visām entÄ«tijām tiek Ä£enerētas atslēgas. Atslēgas tiek glabātas Hbase direktorijos, kas atbilst galvenajiem objektiem, kas satur atbilstÄ«bu starp atslēgām analÄ«tiskajā platformā un atslēgām no avota sistēmām. Atomu vienÄ«bu konsolidācija tiek papildināta ar analÄ«tisko datu provizorisko aprēķinu rezultātiem. Datu aprēķināŔanas sistēma bija Spark. AprakstÄ«tā funkcionalitāte datu nogādāŔanai vienā semantikā tika ieviesta arÄ«, pamatojoties uz kartējumiem no zema koda Datagram rÄ«ka.

MērÄ·a arhitektÅ«rai biznesa lietotājiem bija nepiecieÅ”ama SQL piekļuve datiem. Å ai opcijai tika izmantots strops. Objekti tiek reÄ£istrēti Hive automātiski, kad zema koda rÄ«kā iespējojat opciju ā€œReÄ£istrēt Hive Tableā€.

Zema koda izmantoŔana analītiskajās platformās

Aprēķinu plūsmas kontrole

Datagram ir saskarne darbplÅ«smas plÅ«smas dizainu izveidei. KartÄ“Å”anu var palaist, izmantojot Oozie plānotāju. Straumes izstrādātāja saskarnē ir iespējams izveidot shēmas paralēlām, secÄ«gām vai no izpildes atkarÄ«gām datu transformācijām. Ir atbalsts čaulas skriptiem un java programmām. Ir iespējams izmantot arÄ« Apache Livy serveri. Apache Livy tiek izmantots, lai palaistu lietojumprogrammas tieÅ”i no izstrādes vides.

Ja uzņēmumam jau ir savs procesa organizētājs, ir iespējams izmantot REST API, lai iegultu kartējumus esoŔā plÅ«smā. Piemēram, mums bija diezgan veiksmÄ«ga pieredze kartējumu iegulÅ”anā Scala PLSQL un Kotlin rakstÄ«tos orÄ·estratoros. Zema koda rÄ«ka REST API ietver tādas darbÄ«bas kā izpildāmā gada Ä£enerÄ“Å”ana, pamatojoties uz kartÄ“Å”anas dizainu, kartÄ“Å”anas izsaukÅ”ana, kartējumu secÄ«bas izsaukÅ”ana un, protams, parametru nodoÅ”ana vietrādim URL, lai palaistu kartÄ“Å”anu.

Kopā ar Oozie ir iespējams organizēt aprēķinu plÅ«smu, izmantojot Airflow. VarbÅ«t es ilgi nekavÄ“Å”os pie Oozie un Airflow salÄ«dzinājuma, bet vienkārÅ”i teikÅ”u, ka saistÄ«bā ar darbu pie mediju izpētes projekta izvēle krita par labu Airflow. Galvenie argumenti Å”oreiz bija aktÄ«vāka kopiena, kas izstrādā produktu, un attÄ«stÄ«tāks interfeiss + API.

Gaisa plÅ«sma ir laba arÄ« tāpēc, ka tā izmanto iemīļoto Python, lai aprakstÄ«tu aprēķinu procesus. Un kopumā atvērtā koda darbplÅ«smas pārvaldÄ«bas platformu nav tik daudz. Procesu palaiÅ”ana un izpildes uzraudzÄ«ba (tostarp Ganta diagramma) tikai pievieno punktus Airflow karmai.

Konfigurācijas faila formāts zema koda risinājumu kartÄ“Å”anas palaiÅ”anai ir kļuvis par iesniegÅ”anu. Tas notika divu iemeslu dēļ. Pirmkārt, spark-submit ļauj tieÅ”i palaist jar failu no konsoles. Otrkārt, tajā var bÅ«t visa nepiecieÅ”amā informācija, lai konfigurētu darbplÅ«smu (kas atvieglo Dag Ä£enerējoÅ”u skriptu rakstÄ«Å”anu).
Visizplatītākais Airflow darbplūsmas elements mūsu gadījumā bija SparkSubmitOperator.

SparkSubmitOperator ļauj palaist burkas ā€” iesaiņotus Datagram kartējumus ar tiem iepriekÅ” Ä£enerētiem ievades parametriem.

Ir vērts pieminēt, ka katrs Airflow uzdevums darbojas atseviŔķā pavedienā un neko nezina par citiem uzdevumiem. Tāpēc mijiedarbÄ«ba starp uzdevumiem tiek veikta, izmantojot vadÄ«bas operatorus, piemēram, DummyOperator vai BranchPythonOperator.

Kopumā Datagram zema koda risinājuma izmantoÅ”ana kopā ar konfigurācijas failu universalizāciju (veidojot Dag) ievērojami paātrināja un vienkārÅ”oja datu ielādes plÅ«smu izstrādes procesu.

Vitrīnas aprēķins

Iespējams, ka intelektuāli visvairāk noslogotais analÄ«tisko datu iegÅ«Å”anas posms ir vitrÄ«nu celÅ”anas posms. Kontekstā ar vienu no izpētes uzņēmuma datu aprēķinu plÅ«smām, Å”ajā posmā dati tiek reducēti uz atsauces apraidi, ņemot vērā laika joslu korekcijas un piesaistÄ«ti apraides tÄ«klam. Ir iespējams arÄ« pielāgoties lokālajam apraides tÄ«klam (vietējās ziņas un reklāma). Cita starpā Ŕī darbÄ«ba sadala multivides produktu nepārtrauktas skatÄ«Å”anās intervālus, pamatojoties uz skatÄ«Å”anās intervālu analÄ«zi. SkatÄ«Å”anās vērtÄ«bas nekavējoties tiek ā€œsvērtasā€, pamatojoties uz informāciju par to nozÄ«mÄ«gumu (korekcijas koeficienta aprēķins).

Zema koda izmantoŔana analītiskajās platformās

AtseviŔķs solis vitrÄ«nu sagatavoÅ”anā ir datu validācija. Validācijas algoritms ietver vairāku matemātikas zinātnes modeļu izmantoÅ”anu. Tomēr zema koda platformas izmantoÅ”ana ļauj sadalÄ«t sarežģītu algoritmu vairākos atseviŔķos vizuāli nolasāmos kartējumos. Katrs no kartējumiem veic Å”auru uzdevumu. Rezultātā iespējama starpposma atkļūdoÅ”ana, reÄ£istrÄ“Å”ana un datu sagatavoÅ”anas posmu vizualizācija.

Tika nolemts diskretizēt validācijas algoritmu Ŕādos apakÅ”posmos:

  • TV tÄ«kla skatÄ«Å”anās atkarÄ«bu regresijas veidoÅ”ana reÄ£ionā, skatot visus reÄ£iona tÄ«klus 60 dienas.
  • Studentu atlikuma (faktisko vērtÄ«bu novirzes no regresijas modeļa prognozētajām) aprēķins visiem regresijas punktiem un aprēķinātajai dienai.
  • Anomālu reÄ£ionu-tÄ«klu pāru izlase, kur norēķinu dienas studentizētais atlikums pārsniedz normu (norāda darbÄ«bas iestatÄ«jumi).
  • Koriģētā studentizētā atlikuma pārrēķins anomālajiem reÄ£iona-TV tÄ«kla pāriem katram respondentam, kurÅ” skatÄ«jās tÄ«klu reÄ£ionā, nosakot Ŕī respondenta devumu (studentizētā atlikuma izmaiņu apjoms), izslēdzot Ŕī respondenta skatÄ«Å”anos no izlases. .
  • Meklējiet kandidātus, kuru izslēgÅ”ana atgriež studentu algas dienas atlikumu normālā stāvoklÄ«.

IepriekÅ” minētais piemērs apstiprina hipotēzi, ka datu inženierim jau ir pārāk daudz prātā... Un, ja tas tieŔām ir "inženieris", nevis "kodētājs", tad bailes no profesionālā degradācijas, izmantojot zema koda rÄ«kus, viņŔ beidzot jāatkāpjas.

Ko vēl var darīt zems kods?

Zema koda rÄ«ka pielietoÅ”anas joma datu pakeÅ”u un straumÄ“Å”anas apstrādei bez nepiecieÅ”amÄ«bas manuāli rakstÄ«t kodu Scala nebeidzas.

Zema koda izmantoÅ”ana datalake izstrādē mums jau ir kļuvusi par standartu. Mēs droÅ”i vien varam teikt, ka risinājumi, kuru pamatā ir Hadoop steka, seko klasisko DWH izstrādes ceļam, pamatojoties uz RDBMS. Zema koda rÄ«ki Hadoop stekā var atrisināt gan datu apstrādes uzdevumus, gan galÄ«go BI saskarņu izveides uzdevumu. Turklāt jāatzÄ«mē, ka BI var nozÄ«mēt ne tikai datu attēloÅ”anu, bet arÄ« to rediģēŔanu, ko veic biznesa lietotāji. Mēs bieži izmantojam Å”o funkcionalitāti, veidojot analÄ«tiskās platformas finanÅ”u sektoram.

Zema koda izmantoŔana analītiskajās platformās

Cita starpā, izmantojot zemu kodu un jo Ä«paÅ”i Datagram, ir iespējams atrisināt datu plÅ«smas objektu izcelsmes izsekoÅ”anas problēmu ar atomitāti lÄ«dz atseviŔķiem laukiem (lÄ«nija). Lai to izdarÄ«tu, zema koda rÄ«ks ievieÅ” saskarni ar Apache Atlas un Cloudera Navigator. BÅ«tÄ«bā izstrādātājam ir jāreÄ£istrē objektu kopa Atlas vārdnÄ«cās un, veidojot kartējumus, jāatsaucas uz reÄ£istrētajiem objektiem. Datu izcelsmes izsekoÅ”anas vai objektu atkarÄ«bu analÄ«zes mehānisms ietaupa daudz laika, kad nepiecieÅ”ams veikt uzlabojumus aprēķinu algoritmos. Piemēram, sagatavojot finanÅ”u pārskatus, Ŕī iespēja ļauj ērtāk pārdzÄ«vot likumdoÅ”anas izmaiņu periodu. Galu galā, jo labāk mēs saprotam starpformu atkarÄ«bu detalizēta slāņa objektu kontekstā, jo mazāk sastapsimies ar ā€œpēkŔņiemā€ defektiem un samazināsim pārstrādājumu skaitu.

Zema koda izmantoŔana analītiskajās platformās

Datu kvalitāte un zems kods

Vēl viens uzdevums, ko Mediascope projektā Ä«stenoja zema koda rÄ«ks, bija datu kvalitātes klases uzdevums. ÄŖpaÅ”a izpētes uzņēmuma projekta datu pārbaudes cauruļvada ievieÅ”anas iezÄ«me bija ietekmes trÅ«kums uz galveno datu aprēķinu plÅ«smas veiktspēju un ātrumu. Lai varētu organizēt neatkarÄ«gas datu pārbaudes plÅ«smas, tika izmantota jau pazÄ«stamā Apache Airflow. Tā kā katrs datu veidoÅ”anas posms bija gatavs, paralēli tika palaista atseviŔķa DQ cauruļvada daļa.

Tiek uzskatÄ«ts par labu praksi datu kvalitātes uzraudzÄ«bu no brīža, kad tie tiek ieviesti analÄ«tiskajā platformā. Ņemot vērā informāciju par metadatiem, mēs varam pārbaudÄ«t atbilstÄ«bu pamatnosacÄ«jumiem no brīža, kad informācija nonāk primārajā slānÄ« - nevis nulles, ierobežojumi, ārējās atslēgas. Å Ä« funkcionalitāte ir ieviesta, pamatojoties uz automātiski Ä£enerētiem datu kvalitātes saimes kartējumiem programmā Datagram. Koda Ä£enerÄ“Å”ana Å”ajā gadÄ«jumā ir balstÄ«ta arÄ« uz modeļa metadatiem. Mediascope projektā saskarne tika veikta ar Enterprise Architect produkta metadatiem.

Savienojot mazkoda rÄ«ku ar Enterprise Architect, automātiski tika Ä£enerētas Ŕādas pārbaudes:

  • Pārbaude, vai laukos ar modifikatoru ā€œnot nullā€ ir ā€œnullā€ vērtÄ«bas;
  • Primārās atslēgas dublikātu klātbÅ«tnes pārbaude;
  • entÄ«tijas ārējās atslēgas pārbaude;
  • Virknes unikalitātes pārbaude, pamatojoties uz lauku kopu.

Sarežģītākām datu pieejamÄ«bas un uzticamÄ«bas pārbaudēm tika izveidota kartÄ“Å”ana ar Scala Expression, kas kā ievadi izmanto ārēju Spark SQL pārbaudes kodu, ko sagatavojuÅ”i Zeppelin analÄ«tiÄ·i.

Zema koda izmantoŔana analītiskajās platformās

Protams, automātiska čeku Ä£enerÄ“Å”ana ir jāpanāk pakāpeniski. AprakstÄ«tā projekta ietvaros pirms tam tika veiktas Ŕādas darbÄ«bas:

  • DQ ieviests Zeppelin piezÄ«mjdatoros;
  • DQ iebÅ«vēts kartÄ“Å”anā;
  • DQ atseviŔķu masveida kartējumu veidā, kas satur veselu pārbaužu komplektu atseviŔķai entÄ«tijai;
  • Universāli parametrizēti DQ kartējumi, kas pieņem informāciju par metadatiem un biznesa pārbaudēm kā ievadi.

Iespējams, ka galvenā parametrizēta pārbaudes pakalpojuma izveides priekÅ”rocÄ«ba ir laika samazinājums, kas nepiecieÅ”ams funkcionalitātes nodroÅ”ināŔanai ražoÅ”anas vidē. Jaunās kvalitātes pārbaudes var apiet klasisko koda netieŔās piegādes modeli, izmantojot izstrādes un testÄ“Å”anas vidi:

  • Visas metadatu pārbaudes tiek Ä£enerētas automātiski, kad modelis tiek modificēts EA;
  • Datu pieejamÄ«bas pārbaudes (jebkuru datu esamÄ«bas noteikÅ”ana konkrētā brÄ«dÄ«) var tikt Ä£enerētas, pamatojoties uz direktoriju, kurā tiek saglabāts paredzamais nākamās datu daļas parādÄ«Å”anās laiks objektu kontekstā;
  • Biznesa datu validācijas pārbaudes Zeppelin piezÄ«mjdatoros izveido analÄ«tiÄ·i. No turienes tie tiek nosÅ«tÄ«ti tieÅ”i uz DQ moduļa iestatÄ«Å”anas tabulām ražoÅ”anas vidē.

Nepastāv risks, ka skripti tiks tieÅ”i nosÅ«tÄ«ti uz ražoÅ”anu. Pat ar sintakses kļūdu maksimums, kas mÅ«s apdraud, ir vienas pārbaudes neveikÅ”ana, jo datu aprēķinu plÅ«sma un kvalitātes pārbaudes palaiÅ”anas plÅ«sma ir atdalÄ«tas viena no otras.

BÅ«tÄ«bā DQ pakalpojums pastāvÄ«gi darbojas ražoÅ”anas vidē un ir gatavs sākt savu darbu brÄ«dÄ«, kad parādās nākamie dati.

Tā vietā, lai noslēgtu

Zema koda izmantoÅ”anas priekÅ”rocÄ«ba ir acÄ«mredzama. Izstrādātājiem lietojumprogramma nav jāizstrādā no nulles. Un programmētājs, kas atbrÄ«vots no papildu uzdevumiem, nodroÅ”ina ātrāku rezultātu. Ātrums savukārt atbrÄ«vo papildu laiku optimizācijas problēmu risināŔanai. Tāpēc Å”ajā gadÄ«jumā varat paļauties uz labāku un ātrāku risinājumu.

Protams, zemais kods nav panaceja, un maģija nenotiks pati par sevi:

  • Zema koda nozare piedzÄ«vo ā€œspēcÄ«gākasā€ stadiju, un vēl nav vienotu rÅ«pniecÄ«bas standartu;
  • Daudzi zema koda risinājumi nav bezmaksas, un to iegādei ir jābÅ«t apzinātam solim, kas jāveic, pilnÄ«bā pārliecinoties par to izmantoÅ”anas finansiālajiem ieguvumiem;
  • Daudzi zema koda risinājumi ne vienmēr labi darbojas ar GIT/SVN. Vai arÄ« tos ir neērti lietot, ja Ä£enerētais kods ir paslēpts;
  • PaplaÅ”inot arhitektÅ«ru, var bÅ«t nepiecieÅ”ams pilnveidot zemā koda risinājumu, kas, savukārt, izraisa ā€œpieÄ·erÅ”anās un atkarÄ«basā€ efektu zemā koda risinājuma piegādātājam.
  • Ir iespējams atbilstoÅ”s droŔības lÄ«menis, taču tas ir ļoti darbietilpÄ«gs un grÅ«ti Ä«stenojams zema koda sistēmu dzinējos. Zema koda platformas jāizvēlas ne tikai pēc principa, lai gÅ«tu labumu no to izmantoÅ”anas. Izvēloties, ir vērts uzdot jautājumus par funkcionalitātes pieejamÄ«bu piekļuves kontrolei un identifikācijas datu deleģēŔanai/eskalācijai visas organizācijas IT ainavas lÄ«menÄ«.

Zema koda izmantoŔana analītiskajās platformās

Tomēr, ja visi izvēlētās sistēmas trÅ«kumi jums ir zināmi un ieguvumi no tās izmantoÅ”anas tomēr ir dominējoÅ”ais vairākums, tad bez bailēm pārejiet pie maza koda. Turklāt pāreja uz to ir neizbēgama ā€“ tāpat kā jebkura evolÅ«cija ir neizbēgama.

Ja viens izstrādātājs zema koda platformā veic savu darbu ātrāk nekā divi izstrādātāji bez zema koda, tas dod uzņēmumam priekÅ”rocÄ«bu visos aspektos. Slieksnis ienākÅ”anai zema koda risinājumos ir zemāks nekā ā€œtradicionālajāsā€ tehnoloÄ£ijās, un tas pozitÄ«vi ietekmē personāla trÅ«kuma problēmu. Izmantojot zema koda rÄ«kus, iespējams paātrināt funkcionālo komandu mijiedarbÄ«bu un ātrāk pieņemt lēmumus par izvēlētā datu zinātnes pētniecÄ«bas ceļa pareizÄ«bu. Zema lÄ«meņa platformas var veicināt organizācijas digitālo transformāciju, jo izstrādātos risinājumus var saprast netehniskie speciālisti (Ä«paÅ”i biznesa lietotāji).

Ja jums ir stingri termiņi, noslogota biznesa loÄ£ika, tehnoloÄ£isko zināŔanu trÅ«kums un jums ir jāpaātrina laiks, lai nonāktu tirgÅ«, zems kods ir viens no veidiem, kā apmierināt jÅ«su vajadzÄ«bas.

Nevar noliegt tradicionālo izstrādes rīku nozīmi, taču daudzos gadījumos zema koda risinājumu izmantoŔana ir labākais veids, kā palielināt risināmo uzdevumu efektivitāti.

Avots: www.habr.com

Pievieno komentāru