MÄs dzÄ«vojam pÄrsteidzoÅ”Ä laikÄ, kad varat Ätri un vienkÄrÅ”i savienot vairÄkus gatavus atvÄrtÄ pirmkoda rÄ«kus, iestatÄ«t tos ar āizslÄgtu apziÅuā saskaÅÄ ar stackoverflow ieteikumiem, neiedziļinoties āvairÄkos burtosā un palaist. nodot tos komerciÄlai darbÄ«bai. Un, kad vajag atjauninÄt/paplaÅ”inÄt vai kÄds nejauÅ”i pÄrstartÄ pÄris maŔīnas - tu saproti, ka patiesÄ«bÄ ir sÄcies kaut kÄds uzmÄcÄ«gi slikts sapnis, viss pÄkÅ”Åi ir kļuvis sarežģītÄks lÄ«dz nepazÄ«Å”anai, nav atgrieÅ”anÄs, nÄkotne ir neskaidra un droÅ”Äk, tÄ vietÄ, lai programmÄtu, audzÄtu bites un taisÄ«t sieru.
Ne velti pieredzÄjuÅ”Äki kolÄÄ£i ar kļūdÄm nokaisÄ«tÄm un tÄpÄc jau pelÄkÄm galvÄm apsver neticami Ätru "konteineru" paku izvietoÅ”anu "kubiÅos" desmitiem serveru "modes valodÄs" ar iebÅ«vÄtu atbalstu asinhrona nebloÄ·ÄjoÅ”a I/O, pieticÄ«gi smaidiet . Un viÅi klusÄ«bÄ turpina pÄrlasÄ«t āman psā, iedziļinÄties ānginxā pirmkodÄ, lÄ«dz viÅiem asiÅo acis, un rakstÄ«t, rakstÄ«t, rakstÄ«t vienÄ«bu testus. KolÄÄ£i zina, ka pats interesantÄkais bÅ«s tad, kad ātas vissā kÄdu dienu tiks likts uz spÄles Vecgada vakarÄ. Un tiem palÄ«dzÄs tikai dziļa izpratne par unix bÅ«tÄ«bu, iegaumÄtÄ TCP/IP stÄvokļa tabulu un pamata ŔķiroÅ”anas-meklÄÅ”anas algoritmiem. Lai sistÄma atdzÄ«vinÄtu, kad skan zvani.
Ak jÄ, es mazliet apjucis, bet ceru, ka man izdevÄs nodot to gaidÄ«Å”anas stÄvokli.
Å odien vÄlos dalÄ«ties pieredzÄ par Ärtas un lÄtas DataLake steka izvietoÅ”anu, kas uzÅÄmumÄ atrisina lielÄko daļu analÄ«tisko uzdevumu pilnÄ«gi atŔķirÄ«gÄm struktÅ«rvienÄ«bÄm.
Pirms kÄda laika mÄs nonÄcÄm pie izpratnes, ka uzÅÄmumiem arvien vairÄk ir vajadzÄ«gi gan produktu, gan tehniskÄs analÄ«zes augļi (nemaz nerunÄjot par glazÅ«ru uz kÅ«kas maŔīnmÄcÄ«bas veidÄ) un, lai izprastu tendences un riskus - mums ir jÄapkopo un jÄanalizÄ. arvien vairÄk metrikas.
Pamata tehniskÄ analÄ«tika pakalpojumÄ Bitrix24
Pirms vairÄkiem gadiem, vienlaikus ar Bitrix24 pakalpojuma palaiÅ”anu, mÄs aktÄ«vi ieguldÄ«jÄm laiku un resursus, lai izveidotu vienkÄrÅ”u un uzticamu analÄ«tisko platformu, kas palÄ«dzÄtu Ätri saskatÄ«t infrastruktÅ«ras problÄmas un plÄnot nÄkamo soli. Protams, bija ieteicams Åemt gatavus rÄ«kus, kas bÅ«tu pÄc iespÄjas vienkÄrÅ”Äki un saprotami. RezultÄtÄ nagios tika izvÄlÄts uzraudzÄ«bai un munin analÄ«tikai un vizualizÄcijai. Tagad mums ir tÅ«kstoÅ”iem Äeku nagios, simtiem diagrammu munin, un mÅ«su kolÄÄ£i tos veiksmÄ«gi izmanto katru dienu. Metrika ir skaidra, grafiki ir skaidri, sistÄma jau vairÄkus gadus darbojas uzticami, un tai regulÄri tiek pievienoti jauni testi un grafiki: nododot ekspluatÄcijÄ jaunu pakalpojumu, mÄs pievienojam vairÄkus testus un grafikus. Veiksmi.
Pirksts uz pulsa ā uzlabota tehniskÄ analÄ«ze
VÄlme saÅemt informÄciju par problÄmÄm āpÄc iespÄjas ÄtrÄkā noveda mÅ«s pie aktÄ«viem eksperimentiem ar vienkÄrÅ”iem un saprotamiem rÄ«kiem - pinba un xhprof.
Pinba nosÅ«tÄ«ja mums statistiku UDP paketÄs par tÄ«mekļa lapu daļu darbÄ«bas Ätrumu PHP, un mÄs tieÅ”saistÄ varÄjÄm redzÄt MySQL krÄtuvÄ (Pinba ir aprÄ«kots ar savu MySQL dzinÄju Ätrai notikumu analÄ«zei) Ä«su problÄmu sarakstu un reaÄ£Ät uz viÅiem. Un xhprof automÄtiski ļÄva mums savÄkt grafikus par lÄnÄko PHP lapu izpildi no klientiem un analizÄt, kas varÄtu novest pie tÄ - mierÄ«gi, lejot tÄju vai ko stiprÄku.
Pirms kÄda laika rÄ«kkopa tika papildinÄta ar citu diezgan vienkÄrÅ”u un saprotamu dzinÄju, kura pamatÄ ir reversÄs indeksÄcijas algoritms, lieliski ieviests leÄ£endÄrajÄ Lucene bibliotÄkÄ - Elastic/Kibana. VienkÄrÅ”Ä ideja par dokumentu vairÄku pavedienu ierakstÄ«Å”anu apgrieztÄ Lucene indeksÄ, pamatojoties uz notikumiem žurnÄlos, un Ätru meklÄÅ”anu tajos, izmantojot aspektu dalÄ«Å”anu, izrÄdÄ«jÄs patieÅ”Äm noderÄ«ga.
Neskatoties uz diezgan tehnisku vizualizÄciju izskatu KibanÄ ar zema lÄ«meÅa jÄdzieniem, piemÄram, āspainisā āplÅ«st uz augÅ”uā, un vÄl pilnÄ«bÄ aizmirstÄs relÄciju algebras no jauna izgudroto valodu, rÄ«ks sÄka mums labi palÄ«dzÄt Å”Ädos uzdevumos:
- Cik PHP kļūdu Bitrix24 klientam bija p1 portÄlÄ pÄdÄjÄ stundÄ un kÄdas? Saprast, piedot un Ätri izlabot.
- Cik videozvani portÄlos VÄcijÄ veikti iepriekÅ”ÄjÄ diennaktÄ«, kÄdÄ kvalitÄtÄ un vai bija kÄdas grÅ«tÄ«bas ar kanÄlu/tÄ«klu?
- Cik labi darbojas sistÄmas funkcionalitÄte (mÅ«su C paplaÅ”inÄjums PHP), kas apkopots no avota jaunÄkajÄ pakalpojuma atjauninÄjumÄ un ieviests klientiem? Vai ir segfaults?
- Vai klientu dati iekļaujas PHP atmiÅÄ? Vai ir kļūdas par procesiem atvÄlÄtÄs atmiÅas pÄrsniegÅ”anu: ābeigusies atmiÅaā? Atrodi un neitralizÄ.
Å eit ir konkrÄts piemÄrs. Neskatoties uz rÅ«pÄ«gu un daudzlÄ«meÅu testÄÅ”anu, klients ar ļoti nestandarta korpusu un bojÄtiem ievades datiem saÅÄma kaitinoÅ”u un negaidÄ«tu kļūdu, atskanÄja sirÄna un sÄkÄs tÄs Ätras novÄrÅ”anas process:
TurklÄt kibana ļauj organizÄt paziÅojumus par noteiktiem notikumiem, un Ä«sÄ laikÄ uzÅÄmuma rÄ«ku sÄka izmantot desmitiem darbinieku no dažÄdÄm nodaļÄm - no tehniskÄ atbalsta un attÄ«stÄ«bas lÄ«dz kvalitÄtes nodroÅ”inÄÅ”anai.
Jebkura uzÅÄmuma nodaļas darbÄ«ba ir kļuvusi Ärti izsekojama un izmÄrÄma - tÄ vietÄ, lai manuÄli analizÄtu žurnÄlus serveros, jums vienkÄrÅ”i ir vienreiz jÄiestata parsÄÅ”anas žurnÄli un jÄnosÅ«ta tie elastÄ«gajam klasterim, lai izbaudÄ«tu, piemÄram, kontemplÄciju kibanÄ. informÄcijas panelis pÄrdoto divgalvu kaÄ·Änu skaits, kas izdrukÄts ar 3-D printeri pÄdÄjÄ MÄness mÄnesÄ«.
Pamata biznesa analīze
Ikviens zina, ka biznesa analÄ«tika uzÅÄmumos bieži sÄkas ar ÄrkÄrtÄ«gi aktÄ«vu, jÄ, Excel izmantoÅ”anu. Bet galvenais ir tas, ka ar to viss nebeidzas. Uz mÄkoÅiem balstÄ«ts Google Analytics arÄ« pievieno eļļu ugunij ā jÅ«s Ätri sÄkat pierast pie labÄm lietÄm.
MÅ«su harmoniski augoÅ”ajÄ uzÅÄmumÄ Å”ur tur sÄka parÄdÄ«ties intensÄ«vÄka darba āpravieÅ”iā ar lielÄkiem datiem. RegulÄri sÄka parÄdÄ«ties nepiecieÅ”amÄ«ba pÄc padziļinÄtÄkiem un daudzpusÄ«gÄkiem ziÅojumiem, un ar dažÄdu nodaļu puiÅ”u pÅ«lÄm pirms kÄda laika tika organizÄts vienkÄrÅ”s un praktisks risinÄjums - ClickHouse un PowerBI kombinÄcija.
Diezgan ilgu laiku Å”is elastÄ«gais risinÄjums ļoti palÄ«dzÄja, bet pamazÄm sÄka nÄkt sapratne, ka ClickHouse nav gumija un ar to nevar tÄ ÅirgÄties.
Å eit ir svarÄ«gi labi saprast, ka ClickHouse, tÄpat kÄ Druid, tÄpat kÄ Vertica, tÄpat kÄ Amazon RedShift (kas ir balstÄ«ts uz postgres), ir analÄ«tiskie dzinÄji, kas optimizÄti diezgan Ärtai analÄ«tikai (summas, apkopojumi, minimums-maksimums pa kolonnÄm un daži iespÄjamie savienojumi ), jo organizÄta efektÄ«vai relÄciju tabulu kolonnu glabÄÅ”anai, atŔķirÄ«bÄ no MySQL un citÄm mums zinÄmÄm (rindu orientÄtÄm) datu bÄzÄm.
BÅ«tÄ«bÄ ClickHouse ir tikai ietilpÄ«gÄka "datu bÄze", ar ne pÄrÄk Ärtu ievietoÅ”anu pa punktiem (tÄ tas ir paredzÄts, viss ir kÄrtÄ«bÄ), bet patÄ«kamu analÄ«zi un interesantu jaudÄ«gu funkciju kopumu darbam ar datiem. JÄ, jÅ«s pat varat izveidot klasteri, taÄu jÅ«s saprotat, ka naglu kalÅ”ana ar mikroskopu nav pilnÄ«gi pareiza, un mÄs sÄkÄm meklÄt citus risinÄjumus.
PieprasÄ«jums pÄc pitona un analÄ«tiÄ·iem
MÅ«su uzÅÄmumÄ ir daudz izstrÄdÄtÄju, kas gandrÄ«z katru dienu 10-20 gadus raksta kodu PHP, JavaScript, C#, C/C++, Java, Go, Rust, Python, Bash. Ir arÄ« daudzi pieredzÄjuÅ”i sistÄmu administratori, kuri ir piedzÄ«vojuÅ”i vairÄk nekÄ vienu absolÅ«ti neticamu katastrofu, kas neatbilst statistikas likumiem (piemÄram, kad lielÄkÄ daļa disku RAID-10 tiek iznÄ«cinÄti spÄcÄ«ga zibens spÄriena rezultÄtÄ). Å Ädos apstÄkļos ilgu laiku nebija skaidrs, kas ir āpitona analÄ«tiÄ·isā. Python ir kÄ PHP, tikai nosaukums ir nedaudz garÄks un tulka avota kodÄ ir nedaudz mazÄk prÄtu mainoÅ”u vielu pÄdu. TomÄr, veidojot arvien vairÄk analÄ«tisko pÄrskatu, pieredzÄjuÅ”i izstrÄdÄtÄji sÄka arvien vairÄk saprast, cik svarÄ«ga ir Å”aura specializÄcija tÄdos rÄ«kos kÄ numpy, pandas, matplotlib, seaborn.
IzŔķiroÅ”o lomu, visticamÄk, nospÄlÄja darbinieku pÄkÅ”Åa ģībÅ”ana no vÄrdu kombinÄcijas āloÄ£istiskÄ regresijaā un efektÄ«vas ziÅoÅ”anas demonstrÄÅ”ana par lieliem datiem, izmantojot, jÄ, jÄ, pyspark.
Apache Spark, tÄs funkcionÄlÄ paradigma, kurai relÄciju algebra lieliski iederas, un tÄs iespÄjas atstÄja tÄdu iespaidu uz izstrÄdÄtÄjiem, kuri bija pieraduÅ”i pie MySQL, ka nepiecieÅ”amÄ«ba nostiprinÄt rindas ar pieredzÄjuÅ”iem analÄ«tiÄ·iem kļuva skaidra kÄ diena.
Apache Spark/Hadoop turpmÄkie mÄÄ£inÄjumi pacelties gaisÄ un kas neizdevÄs gluži saskaÅÄ ar skriptu
TaÄu drÄ«z vien kļuva skaidrs, ka ar Spark kaut kas sistÄmiski nav Ä«sti kÄrtÄ«bÄ, vai arÄ« vienkÄrÅ”i labÄk jÄnomazgÄ rokas. Ja Hadoop/MapReduce/Lucene steku veidojuÅ”i diezgan pieredzÄjuÅ”i programmÄtÄji, kas ir acÄ«mredzami, ja rÅ«pÄ«gi aplÅ«ko Java pirmkodu vai Daga Katinga idejas Lucene valodÄ, tad Spark pÄkÅ”Åi ir uzrakstÄ«ts eksotiskÄ valodÄ Scala, kas ir ļoti strÄ«dÄ«gs no praktiskuma viedokļa un paÅ”laik neveidojas. Un regulÄrais aprÄÄ·inu kritums Spark klasterÄ« neloÄ£iskÄ un ne pÄrÄk caurspÄ«dÄ«gÄ darba ar atmiÅas pieŔķirÅ”anu samazinÄÅ”anas operÄcijÄm (daudzas atslÄgas pienÄk vienlaikus) dÄļ ir radÄ«jis oreolu ap to kaut kam, kam ir kur augt. TurklÄt situÄciju pasliktinÄja liels skaits dÄ«vainu atvÄrtu pieslÄgvietu, pagaidu faili, kas aug nesaprotamÄkajÄs vietÄs un elles burciÅu atkarÄ«bas, kas sistÄmu administratoros radÄ«ja vienu no bÄrnÄ«bas labi zinÄmu sajÅ«tu: nikns naids (vai varbÅ«t viÅiem vajadzÄja mazgÄt rokas ar ziepÄm).
RezultÄtÄ esam āizdzÄ«vojuÅ”iā vairÄkus iekÅ”Äjos analÄ«tiskos projektus, kas aktÄ«vi izmanto Apache Spark (tostarp Spark Streaming, Spark SQL) un Hadoop ekosistÄmu (un tÄ tÄlÄk, un tÄ tÄlÄk). Neskatoties uz to, ka laika gaitÄ mÄs iemÄcÄ«jÄmies "to" sagatavot un uzraudzÄ«t diezgan labi, un "tas" praktiski pÄrstÄja pÄkÅ”Åi avarÄt datu rakstura izmaiÅu un vienotas RDD jaukÅ”anas nelÄ«dzsvarotÄ«bas dÄļ, vÄlme paÅemt kaut ko jau gatavu. , atjauninÄts un administrÄts kaut kur mÄkonÄ«, kļuva arvien spÄcÄ«gÄks. TieÅ”i Å”ajÄ laikÄ mÄs mÄÄ£inÄjÄm izmantot gatavo Amazon Web Services mÄkoÅa komplektu -
Steidzami nepiecieÅ”ama gumijas failu krÄtuve analÄ«zei
Hadoop/Spark āgatavoÅ”anasā pieredze ar dažÄdu Ä·ermeÅa daļu apdegumiem nebija veltÄ«ga. Arvien aktuÄlÄka kļuva nepiecieÅ”amÄ«ba izveidot vienotu, lÄtu un uzticamu failu krÄtuvi, kas bÅ«tu izturÄ«ga pret aparatÅ«ras kļūmÄm un kurÄ bÅ«tu iespÄjams glabÄt dažÄdu formÄtu failus no dažÄdÄm sistÄmÄm un no Å”iem datiem izveidot efektÄ«vus un laika ziÅÄ efektÄ«vus atskaites paraugus. skaidrs.
VÄlÄjos arÄ«, lai Ŕīs platformas programmatÅ«ras atjauninÄÅ”ana nepÄrvÄrstos par Jaungada murgu, nolasot 20 lappuÅ”u Java pÄdas un analizÄjot kilometrus garus detalizÄtus klastera žurnÄlus, izmantojot Spark History Server un aizmugurgaismoto palielinÄmo stiklu. Es gribÄju iegÅ«t vienkÄrÅ”u un pÄrskatÄmu rÄ«ku, kas neprasa regulÄru nirÅ”anu zem pÄrsega, ja izstrÄdÄtÄja standarta MapReduce pieprasÄ«jums tika pÄrtraukts, kad datu samazinÄÅ”anas darbinieks izkrita no atmiÅas ne pÄrÄk labi izvÄlÄta avota datu sadalÄ«Å”anas algoritma dÄļ.
Vai Amazon S3 ir DataLake kandidÄts?
Pieredze ar Hadoop/MapReduce mums mÄcÄ«ja, ka mums ir vajadzÄ«ga mÄrogojama, uzticama failu sistÄma un tai papildus mÄrogojami darbinieki, kas "tuvojas" datiem, lai tie netiktu pÄrvietoti tÄ«klÄ. Darbiniekiem jÄspÄj nolasÄ«t datus dažÄdos formÄtos, bet vÄlams nelasÄ«t nevajadzÄ«gu informÄciju un jÄspÄj datus iepriekÅ” uzglabÄt darbiniekiem Ärtos formÄtos.
Atkal pamatideja. Nav vÄlmes āielietā lielos datus vienÄ klastera analÄ«tiskajÄ dzinÄjÄ, kas agri vai vÄlu noslÄps un nÄksies tos neglÄ«ti sadalÄ«t. Es vÄlos saglabÄt failus, tikai failus, saprotamÄ formÄtÄ un veikt tiem efektÄ«vus analÄ«tiskos vaicÄjumus, izmantojot dažÄdus, bet saprotamus rÄ«kus. Un bÅ«s arvien vairÄk failu dažÄdos formÄtos. Un labÄk ir izdalÄ«t nevis dzinÄju, bet gan avota datus. Mums ir nepiecieÅ”ams paplaÅ”inÄms un universÄls DataLake, mÄs nolÄmÄm...
Ko darÄ«t, ja glabÄjat failus pazÄ«stamajÄ un labi zinÄmajÄ mÄrogojamajÄ mÄkoÅkrÄtuvÄ Amazon S3, nesagatavojot savas karbonÄdes no Hadoop?
Ir skaidrs, ka personas datu apjoms ir āzemsā, bet kÄ ir ar citiem datiem, ja mÄs tos izÅemam un ādarbojamies efektÄ«viā?
Amazon Web Services klasteru-bigdata-analytics ekosistÄma ā ļoti vienkÄrÅ”iem vÄrdiem
Spriežot pÄc mÅ«su pieredzes ar AWS, Apache Hadoop/MapReduce tur jau sen aktÄ«vi tiek lietots zem dažÄdÄm mÄrcÄm, piemÄram, DataPipeline servisÄ (apskaužu kolÄÄ£us, viÅi iemÄcÄ«jÄs pareizi pagatavot). Å eit mÄs iestatÄm dublÄjumus no dažÄdiem pakalpojumiem no DynamoDB tabulÄm:
Un tie jau vairÄkus gadus regulÄri darbojas iegultos Hadoop/MapReduce klasteros, piemÄram, pulksteÅa mehÄnisms. āIestatiet un aizmirstietā:
Varat arÄ« efektÄ«vi iesaistÄ«ties datu sÄtanismÄ, mÄkonÄ« iestatot Jupiter klÄpjdatorus analÄ«tiÄ·iem un izmantojot AWS SageMaker pakalpojumu, lai apmÄcÄ«tu un izvietotu AI modeļus cÄ«ÅÄ. LÅ«k, kÄ tas mums izskatÄs:
Un jÄ, varat paÅemt klÄpjdatoru sev vai analÄ«tiÄ·im mÄkonÄ« un pievienot to Hadoop/Spark klasterim, veikt aprÄÄ·inus un pÄc tam visu noteikt:
PatieÅ”Äm Ärts individuÄliem analÄ«tiskajiem projektiem, un dažiem esam veiksmÄ«gi izmantojuÅ”i EMR pakalpojumu liela mÄroga aprÄÄ·iniem un analÄ«tikai. KÄ ar DataLake sistÄmas risinÄjumu, vai tas darbosies? Å ajÄ brÄ«dÄ« mÄs bijÄm uz cerÄ«bu un izmisuma robežas un turpinÄjÄm meklÄjumus.
AWS Glue - glīti iepakota Apache Spark uz steroīdiem
IzrÄdÄ«jÄs, ka AWS ir sava kaudzes āHive/Pig/Sparkā versija. Stropa loma, t.i. DatÅu un to tipu katalogu DataLake veic pakalpojums āDatu katalogsā, kas neslÄpj savu saderÄ«bu ar Apache Hive formÄtu. Å im pakalpojumam ir jÄpievieno informÄcija par to, kur atrodas jÅ«su faili un kÄdÄ formÄtÄ tie ir. Dati var bÅ«t ne tikai s3, bet arÄ« datu bÄzÄ, taÄu tas nav Ŕī ieraksta priekÅ”mets. LÅ«k, kÄ ir sakÄrtots mÅ«su DataLake datu direktorijs:
Faili ir reÄ£istrÄti, lieliski. Ja faili ir atjauninÄti, mÄs manuÄli vai pÄc grafika palaižam rÄpuļprogrammas, kas atjaunos informÄciju par tiem no ezera un saglabÄs. Tad datus no ezera var apstrÄdÄt un rezultÄtus kaut kur augÅ”upielÄdÄt. VienkÄrÅ”ÄkajÄ gadÄ«jumÄ mÄs arÄ« augÅ”upielÄdÄjam s3. Datu apstrÄdi var veikt jebkur, taÄu ir ieteicams konfigurÄt apstrÄdi Apache Spark klasterÄ«, izmantojot papildu iespÄjas, izmantojot AWS Glue API. PatiesÄ«bÄ, izmantojot pyspark bibliotÄku, varat izmantot veco labo un pazÄ«stamo Python kodu un konfigurÄt tÄ izpildi N mezglos noteiktas ietilpÄ«bas klasterÄ« ar pÄrraudzÄ«bu, neiedziļinoties Hadoop iekÅ”ienÄ un nevelkot docker-moker konteinerus un novÄrÅ”ot atkarÄ«bas konfliktus. .
Atkal vienkÄrÅ”a ideja. Nav nepiecieÅ”ams konfigurÄt Apache Spark, jums vienkÄrÅ”i ir jÄraksta pyspark python kods, jÄpÄrbauda tas lokÄli uz darbvirsmas un pÄc tam jÄpalaiž lielÄ klasterÄ« mÄkonÄ«, norÄdot, kur atrodas avota dati un kur ievietot rezultÄtu. Dažreiz tas ir nepiecieÅ”ams un noderÄ«gs, un mÄs to iestatÄm Å”Ädi:
TÄdÄjÄdi, ja jums kaut kas jÄaprÄÄ·ina Spark klasterÄ«, izmantojot s3 datus, mÄs ierakstÄm kodu python/pyspark, pÄrbaudÄm to un vÄlam veiksmi mÄkonÄ«.
KÄ ar orÄ·estrÄÅ”anu? Ko darÄ«t, ja uzdevums nokristu un pazustu? JÄ, tiek piedÄvÄts izveidot skaistu cauruļvadu Apache Pig stilÄ, un mÄs tos pat izmÄÄ£inÄjÄm, taÄu Å”obrÄ«d mÄs nolÄmÄm izmantot mÅ«su dziļi pielÄgoto orÄ·estri PHP un JavaScript (es saprotu, ir kognitÄ«vÄ disonanse, bet tas darbojas, jo gados un bez kļūdÄm).
EzerÄ glabÄto failu formÄts ir veiktspÄjas atslÄga
Ir ļoti, ļoti svarÄ«gi saprast vÄl divus galvenos punktus. Lai vaicÄjumi par faila datiem ezerÄ tiktu izpildÄ«ti pÄc iespÄjas ÄtrÄk un veiktspÄja nepasliktinÄtos, pievienojot jaunu informÄciju, jums ir nepiecieÅ”ams:
- SaglabÄjiet failu kolonnas atseviŔķi (lai jums nebÅ«tu jÄlasa visas rindiÅas, lai saprastu, kas atrodas kolonnÄs). Å im nolÅ«kam mÄs paÅÄmÄm parketa formÄtu ar kompresiju
- Ir ļoti svarÄ«gi sadalÄ«t failus tÄdÄs mapÄs kÄ valoda, gads, mÄnesis, diena, nedÄļa. DzinÄji, kas saprot Å”Äda veida sadalÄ«Å”anu, apskatÄ«s tikai nepiecieÅ”amÄs mapes, neizsijÄjot visus datus pÄc kÄrtas.
BÅ«tÄ«bÄ Å”ÄdÄ veidÄ jÅ«s izkÄrtojat avota datus visefektÄ«vÄkajÄ formÄ analÄ«tiskajiem dzinÄjiem, kas ir piekÄrti augÅ”pusÄ, kas pat sadalÄ«tÄs mapÄs var selektÄ«vi ievadÄ«t un nolasÄ«t tikai nepiecieÅ”amÄs kolonnas no failiem. Jums nekur nav ājÄaizpildaā dati (krÄtuve vienkÄrÅ”i pÄrsprÄgs) - vienkÄrÅ”i nekavÄjoties saprÄtÄ«gi ievietojiet tos failu sistÄmÄ pareizajÄ formÄtÄ. Protams, Å”eit ir jÄbÅ«t skaidram, ka nav Ä«paÅ”i ieteicams glabÄt milzÄ«gu csv failu DataLake, kas vispirms ir jÄlasa klasterim rindu pa rindiÅai, lai izvilktu kolonnas. PadomÄjiet par iepriekÅ”minÄtajiem diviem punktiem vÄlreiz, ja vÄl nav skaidrs, kÄpÄc tas viss notiek.
AWS Athena ā ligzda kastÄ
Un tad, veidojot ezeru, mÄs kaut kÄ nejauÅ”i uzgÄjÄm Amazon AtÄnu. PÄkÅ”Åi izrÄdÄ«jÄs, ka, rÅ«pÄ«gi sakÄrtojot mÅ«su milzÄ«gos žurnÄlfailus mapju skaidiÅÄs pareizÄ (parketa) kolonnu formÄtÄ, no tiem var ļoti Ätri veikt ÄrkÄrtÄ«gi informatÄ«vas atlases un veidot atskaites BEZ, bez Apache Spark/Glue klastera.
Athena dzinÄjs, ko darbina dati s3, ir balstÄ«ts uz leÄ£endÄro
Interesanta ir arÄ« Athena pieprasÄ«jumu cenu noteikÅ”ana. MÄs maksÄjam par
Un, pieprasot tikai nepiecieÅ”amÄs kolonnas no pareizi sadrumstalotÄm mapÄm, izrÄdÄ«jÄs, ka Athena pakalpojums mums izmaksÄ desmitiem dolÄru mÄnesÄ«. Lieliski, gandrÄ«z bez maksas, salÄ«dzinot ar klasteru analÄ«zi!
Starp citu, Å”eit ir norÄdÄ«ts, kÄ mÄs sadalÄm savus datus s3:
TÄ rezultÄtÄ Ä«sÄ laikÄ pilnÄ«gi dažÄdas uzÅÄmuma nodaļas, sÄkot no informÄcijas droŔības lÄ«dz analÄ«tikai, sÄka aktÄ«vi veikt pieprasÄ«jumus Athena un Ätri, dažu sekunžu laikÄ saÅemt noderÄ«gas atbildes no ālieliemā datiem diezgan ilgu laiku: mÄneÅ”us, pusgads utt. P.
Bet mÄs devÄmies tÄlÄk un sÄkÄm iet uz mÄkoni pÄc atbildÄm
RezultÄtÄ, izlÄmuÅ”i glabÄt datus s3, efektÄ«vÄ kolonnu formÄtÄ un ar saprÄtÄ«gu datu sadalÄ«Å”anu mapÄs... saÅÄmÄm DataLake un Ätru un lÄtu analÄ«tisko dzinÄju - bez maksas. Un kompÄnijÄ viÅÅ” kļuva ļoti populÄrs, jo... saprot SQL un darbojas daudz ÄtrÄk nekÄ klasteru palaiÅ”ana/apturÄÅ”ana/iestatÄ«Å”ana. "Un, ja rezultÄts ir tÄds pats, kÄpÄc maksÄt vairÄk?"
LÅ«gums AtÄnai izskatÄs apmÄram Å”Ädi. Ja vÄlas, protams, var veidot pietiekami daudz
Atzinumi
Izejot, lai neteiktu garu, bet sÄpÄ«gu ceļu, pastÄvÄ«gi adekvÄti novÄrtÄjot riskus un atbalsta sarežģītÄ«bas lÄ«meni un izmaksas, mÄs atradÄm risinÄjumu DataLake un analytics, kas mÅ«s nebeidz priecÄt gan ar Ätrumu, gan ar Ä«paÅ”uma izmaksÄm.
IzrÄdÄ«jÄs, ka efektÄ«va, Ätra un lÄta DataLake izveide pilnÄ«gi atŔķirÄ«gu uzÅÄmuma nodaļu vajadzÄ«bÄm ir pilnÄ«bÄ pa spÄkam pat pieredzÄjuÅ”iem izstrÄdÄtÄjiem, kuri nekad nav strÄdÄjuÅ”i par arhitektiem un neprot zÄ«mÄt kvadrÄtus uz kvadrÄtiem ar bultiÅas un zinÄt 50 terminus no Hadoop ekosistÄmas.
Ceļojuma sÄkumÄ man Ŕķita galva no daudzajiem mežonÄ«gajiem atvÄrtÄs un slÄgtÄs programmatÅ«ras zoodÄrziem un izpratnes par atbildÄ«bas nastu uz pÄcnÄcÄjiem. VienkÄrÅ”i sÄciet veidot savu DataLake, izmantojot vienkÄrÅ”us rÄ«kus: nagios/munin -> elastic/kibana -> Hadoop/Spark/s3..., apkopojot atsauksmes un dziļi izprotot notiekoÅ”o procesu fiziku. Viss sarežģīts un neskaidrs - dodiet to ienaidniekiem un konkurentiem.
Ja nevÄlaties izmantot mÄkoni un vÄlaties atbalstÄ«t, atjauninÄt un labot atvÄrtÄ pirmkoda projektus, varat izveidot shÄmu, kas lÄ«dzÄ«ga mÅ«sÄjai, lokÄli, lÄtÄs biroja iekÄrtÄs ar Hadoop un Presto augÅ”pusÄ. Galvenais neapstÄties un virzÄ«ties uz priekÅ”u, rÄÄ·inÄties, meklÄt vienkÄrÅ”us un skaidrus risinÄjumus, un viss noteikti izdosies! Veiksmi visiem un tiekamies atkal!
Avots: www.habr.com