{"id":92508,"date":"2020-08-28T07:42:10","date_gmt":"2020-08-28T05:42:10","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak"},"modified":"2020-08-28T07:42:10","modified_gmt":"2020-08-28T05:42:10","slug":"kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak","title":{"rendered":"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake'i ja miks just nii","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Elame imetabasel ajal, mil on v\u00f5imalik kiiresti ja lihtsalt \u00fchendada mitu valmis avatud t\u00f6\u00f6riista, seadistada neid \u201ev\u00e4lja l\u00fclitatud teadvusega\u201c stackoverflow'i n\u00f5uannete j\u00e4rgi, s\u00fcvenemata \u201epaljude t\u00e4htedesse\u201c, ja k\u00e4ivitada need kommertskasutusse. Ja kui tuleb vajadus v\u00e4rskendada\/katsetada v\u00f5i keegi kogemata m\u00f5ned masinad taask\u00e4ivitab \u2014 siis m\u00f5ista, et on alanud mingi pealet\u00fckkiv halb uni, k\u00f5ik on j\u00e4rsku muutunud raskeaks ja \u00e4ratuntamatuks, tagasiteed ei ole, tulevik on ebamugav ja turvalisem on hoopis mesilaste pidamine ning juustu valmistamine.<\/p>\n<p>Kogenem, et kogenumad kolleegid, kellel on palju veateateid ja halliks muudetud juuksed, vaatavad h\u00e4mmastavalt kiiret konteinerite kasutuselev\u00f5ttu k\u00fcmnetele serveritele moodsatesse keeltesse, millel on sisseehitatud as\u00fcnkroonne mittes\u00fcnroonimine \u2014 naeratavad tagasihoidlikult. Ja nad j\u00e4tkavad vaikselt 'man ps' lugemist, uurivad 'nginx' algkoode, ning kirjutavad-kirjutavad-kirjutavad \u00fcksusteste. Kolleegid teavad, et k\u00f5ige huvitavam on alles ees, kui 'k\u00f5ik see' \u00fchel \u00f6\u00f6l uue aasta eel t\u00fckkideks kukub. Ainult s\u00fcgav arusaam Unix'i iseloomust, TCP\/IP olekute tabelid ja p\u00f5hilised sortimise-otsingu algoritmid saavad neid aidata, et kellade k\u00f5lades s\u00fcsteemi ellu \u00e4ratada.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAh jah, natuke eksisin, aga loodetavasti suutsin edastada ootuse seisundi.<br \/>\nT\u00e4na tahan jagada oma kogemust mugava ja odava DataLake stacks'i juurutamisest, mis lahendab ettev\u00f5ttes enamikku anal\u00fc\u00fcsit\u00f6\u00f6dest t\u00e4iesti erinevates struktuuri\u00fcksustes.<\/p>\n<p>Mingil aega tagasi m\u00f5istsime, et ettev\u00f5tetele on \u00fcha enam vajalikud nii toote- kui ka tehnilise anal\u00fc\u00fcsi tulemused (r\u00e4\u00e4kimata tordi peale pandud kirsist masin\u00f5ppe n\u00e4ol) ja trendide ning riskide m\u00f5istmiseks tuleb koguda ja anal\u00fc\u00fcsida \u00fcha rohkem meetrikaid.<\/p>\n<h3>P\u00f5hi tehniline anal\u00fc\u00fcs \u00abBitrix24\u00bb-s<\/h3>\n<p>\nM\u00f5ned aastad tagasi, koos \u00abBitrix24\u00bb teenuse k\u00e4ivitamisega, investeerisime aktiivselt aega ja ressursse lihtsa ja usaldusv\u00e4\u00e4rse anal\u00fc\u00fcsiplatvormi loomisse, mis aitaks kiiresti tuvastada infrastruktuuri probleeme ja kavandada j\u00e4rgmisi samme. Loomulikult sooviti kasutada olemasolevaid, maksimaalselt lihtsaid ja arusaadavaid t\u00f6\u00f6riistu. Tulemuseks valiti nagios j\u00e4lgimiseks ja munin anal\u00fc\u00fcsi ja visualiseerimise jaoks. N\u00fc\u00fcd on meil nagioses tuhandeid kontrolle, sadu graafikuid muninis ja kolleegid kasutavad neid igap\u00e4evaselt ja edukalt. Meetrikad on arusaadavad, graafikud selged, s\u00fcsteem t\u00f6\u00f6tab usaldusv\u00e4\u00e4rselt juba mitu aastat ning seda t\u00e4iendatakse regulaarselt uute testide ja graafikutega: kui viime uue teenuse kasutusele \u2014 lisame m\u00f5ned testid ja graafikud. Head teed.<\/p>\n<h3>K\u00e4si pulsil \u2014 laiendatud tehniline anal\u00fc\u00fcs<\/h3>\n<p>\nSoov saada teavet probleemide kohta \"nii kiiresti kui v\u00f5imalik\" viis meid aktiivsetesse katsetesse lihtsate ja arusaadavate t\u00f6\u00f6riistadega \u2014 pinba ja xhprof.<\/p>\n<p>Pinba edastas meile UDP-paketites statistikat PHP veebilehe elementide t\u00f6\u00f6kiirusest ja oli v\u00f5imalik reaalajas n\u00e4ha MySQL andmebaasis (pinbabiga kaasas oma MySQL mootor kiireks s\u00fcndmuste anal\u00fc\u00fcsiks) l\u00fchikest probleemide nimekirja ning nendele reageerida. Xhprof v\u00f5imaldas automaatselt koguda k\u00f5ige aeglasemate PHP-lehtede k\u00e4itusgraafikuid ja anal\u00fc\u00fcsida, mis sellele v\u00f5is kaasa aidata \u2014 rahulikult, samal ajal teed v\u00f5i midagi kangemat nautides.<\/p>\n<p>M\u00f5ni aeg tagasi t\u00e4iendati t\u00f6\u00f6riistade komplekti veel \u00fche \u00fcsna lihtsa ja arusaadava mootori abil, mis p\u00f5hineb vastupidise indekseerimise algoritmil, mis on suurep\u00e4raselt ellu viidud legendaarse Lucene'i raamatukogus \u2014 Elastic\/Kibana. Lihtne m\u00f5te mitme l\u00f5imega dokumentide salvestamisest Lucene'i vastupidises indeksis logide s\u00fcndmustel ning kiire otsimine nende vahel kasutades fasetset jagunemist - osutus t\u00f5eliselt kasulikuks.<\/p>\n<p>Hoolimata Kibana visualiseerimise tehnilisest v\u00e4ljan\u00e4gemisest, kus kasutatakse madala taseme m\u00f5isteid nagu 'bucket' ja usaldusv\u00e4\u00e4rset relatsioonilist algebral keelt, on see t\u00f6\u00f6riist meid h\u00e4sti toetanud j\u00e4rgmistes \u00fclesannetes:<\/p>\n<ul>\n<li>Kui palju PHP vigu oli Bitrix24 kliendil portaalis p1 viimase tunni jooksul ja millised need olid? Saame aru, andestame ja parandame kiiresti.<\/li>\n<li>Kui palju video k\u00f5nesid tehti Saksamaa portaalides viimase 24 tunni jooksul, millise kvaliteediga need olid ning kas esines probleeme kanali\/v\u00f5rguga?<\/li>\n<li>Kui h\u00e4sti t\u00f6\u00f6tab meie s\u00fcsteemi funktsionaalsus (meie PHP jaoks C keeles kirjutatud laiendus), mis on kompileeritud allikatest viimases teenuseuuenduses ja klientidele v\u00e4lja antud? Kas segfault'e ei esine?<\/li>\n<li>Kas kliendiandmed mahtuvad PHP m\u00e4lu? Kas esinevad vea\u00fclesanded m\u00e4lupiiri \u00fcletamiseks: 'out of memory'? Leidke ja neutraliseerige.<\/li>\n<\/ul>\n<p>\nSiin on konkreetne n\u00e4ide. Hoolimata p\u00f5hjalikust ja mitmeastmelisest testimisest, tekkis kliendil ebatavalise juhtumi ja rikutud sisendandmetega t\u00fc\u00fctav ja ootamatu viga, k\u00f5las sireen ja algas selle kiire parandamise protsess:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ja miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/8a802dba41b5d1a85c0dc41dfbf8b84e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLisaks v\u00f5imaldab Kibana korraldada teatamisi m\u00e4\u00e4ratletud s\u00fcndmustest ning l\u00fchikese ajaga on t\u00f6\u00f6riista hakanud kasutama k\u00fcmned t\u00f6\u00f6tajad erinevatest osakondadest \u2014 alates tugiteenustest ja arendusest kuni QA-ni.<\/p>\n<p>Iga osakonna aktiivsust ettev\u00f5tte sees on mugav j\u00e4lgida ja m\u00f5\u00f5ta \u2014 selle asemel, et anal\u00fc\u00fcsida serverite logisid k\u00e4sitsi, piisab logide parsimise ja nende saatmise seadistamisest Elastic klastrisse, et nautida n\u00e4iteks Kibana juhtpaneelil kahepealiste kassipoegade m\u00fc\u00fcgi arvu vaatamist, mis on 3D-printeriga valmistatud eelmise kuu jooksul.<\/p>\n<h3>P\u00f5hi\u00e4rianal\u00fc\u00fcs<\/h3>\n<p>\nK\u00f5ik teavad, et tihti algab \u00e4rianal\u00fc\u00fcs ettev\u00f5tetes \u00e4\u00e4rmiselt aktiivse Exceli kasutamisega. Kuid mis k\u00f5ige t\u00e4htsam, see ei tohiks seal l\u00f5ppeda. \u00d5li tulle valab veel h\u00e4sti ka pilvep\u00f5hine Google Analytics \u2014 heaga harjub kiiresti.<\/p>\n<p>Meie h\u00e4sti arenevas ettev\u00f5ttes on hakanud aeg-ajalt ilmuma \"prohveteid\", kes tegelevad suuremate andmete intensiivse t\u00f6\u00f6tlemisega. \u00dcha enam on hakanud ilmnema vajadused s\u00fcgavamate ja mitmekesiste aruannete j\u00e4rele ning erinevate osakondade inimeste j\u00f5upingutustega leiti m\u00f5ni aeg tagasi lihtne ja praktiline lahendus \u2014 ClickHouse ja PowerBI \u00fchendamine.<\/p>\n<p>Pikka aega aitas see paindlik lahendus suurep\u00e4raselt, kuid j\u00e4rk-j\u00e4rgult hakkas selguma, et ClickHouse ei ole kummist ja sellega ei saa niisama teha, mida hing ihaldab.<\/p>\n<p>Siin on oluline h\u00e4sti m\u00f5ista, et ClickHouse, nagu Druid, Vertica ja Amazon RedShift (mis p\u00f5hineb PostgreSQL-il), on anal\u00fc\u00fcsimootorid, mis on optimeeritud \u00fcsna mugavaks anal\u00fc\u00fcsiks (kokkuv\u00f5tted, agregatsioonid, minimaalne-maksimaalne kolonni kaupa ja natuke liitumisi), kuna nad on korraldatud efektiivseks rikka andmete salvestamiseks, erinevalt tuntud MySQL-st ja teistest (rea-p\u00f5histest) andmebaasidest.<\/p>\n<p>Sisuliselt on ClickHouse lihtsalt ruumikam andmebaas, mille punktip\u00f5hine sisestamine ei ole k\u00f5ige mugavam (nii on see ette n\u00e4htud, k\u00f5ik on korras), kuid millel on meeldiv anal\u00fc\u00fctika ja hulk huvitavaid ja v\u00f5imekaid funktsioone andmetega t\u00f6\u00f6tamiseks. Jah, klastrigi on v\u00f5imalik luua \u2014 aga te m\u00f5istate, et naelte l\u00f6\u00f6mine mikroskoobiga ei ole just \u00f5ige ning oleme hakanud otsima muid lahendusi.<\/p>\n<h3>N\u00f5udlus python'i ja anal\u00fc\u00fctikute j\u00e4rele<\/h3>\n<p>\nMeie ettev\u00f5ttes on palju arendajaid, kes kirjutavad koodi peaaegu igap\u00e4evaselt juba 10\u201320 aastat PHP, JavaScripti, C#, C\/C++, Java, Go, Rust, Pythoni, Bashiga. Samuti on meil palju kogenud s\u00fcsteemihaldureid, kes on l\u00e4bi elanud mitmeid t\u00e4iesti uskumatuid katastroofe, mis ei sobi statistika seadustega (n\u00e4iteks kui tugevast v\u00e4lkude l\u00f6\u00f6gist h\u00e4vitatakse enamus kettasid RAID-10 konfiguratsioonis). Sellistes tingimustes j\u00e4i pikka aega arusaamatuks, mis on \u201ePython anal\u00fc\u00fctik\u201c. Python on nagu PHP, lihtsalt natuke pikem nimi ja selles interpretaatori l\u00e4htekoodis on veidi v\u00e4hem teadvust muutvaid aineid. Siiski, uusi anal\u00fc\u00fctilisi aruandeid luues on kogenud arendajad j\u00e4rjest enam aru saanud kitsaste spetsialiseerumiste t\u00e4htsusest t\u00f6\u00f6riistades nagu NumPy, pandas, matplotlib, seaborn.<br \/>\nOtsustavat rolli m\u00e4ngisid t\u00f5en\u00e4oliselt t\u00f6\u00f6tajate \u00e4kilised minestused s\u00f5nade \u00ablogistiline regressioon\u00bb kombinatsioonist ning efektiivsete aruannete koostamise demonstreerimine suurte andmete abil, jah, just pysparkiga.<\/p>\n<p>Apache Spark, selle funktsionaalne paradigma, mis sobib suurep\u00e4raselt relatsioonilise algebraga ja selle v\u00f5imalused on j\u00e4tnud arendajatele, kes on harjunud MySQL-iga, nii s\u00fcgava mulje, et vajadus tugevdada ridasid kogenud anal\u00fc\u00fctikute abil on muutunud p\u00e4evselgeks.<\/p>\n<h3>Edasi minekud Apache Spark\/Hadoop'i t\u00f5usmiseks ja mis ei l\u00e4inud p\u00e4ris plaani j\u00e4rgi.<\/h3>\n<p>\nKuid peagi sai selgeks, et Sparkiga on ilmselt midagi s\u00fcsteemselt valesti v\u00f5i tuleb lihtsalt paremini k\u00e4si pesta. Kui Hadoopi\/MapReduce'i\/Lucene'i stacki tegid piisavalt kogenud programmeerijad, mis on ilmselge, kui vaatad Java koodi v\u00f5i Doug Cutting'i ideid Lucenes, siis Spark on ootamatult kirjutatud v\u00e4ga k\u00fcsitaval praktilisuse tasemel ja praegu mittearenenud eksootilisel keelel Scala. Ja regulaarne arvutuste kokkuvarisemine Spark klastris, mis tuleneb ebatavalistest ja mitte eriti l\u00e4bipaistvatest m\u00e4lu eraldamisest reduce operatsioonide jaoks (palju v\u00f5tmeid tuleb korraga) \u2014 on loonud tema \u00fcmber aura milleski, millel on arenguruumi. Lisaks s\u00fcvendas olukorda suur hulk kummalisi avatud porte, ajutisi faile, mis kasvasid k\u00f5ige arusaamatutes kohtades ja jar-s\u00f5ltuvus \u2014 mis tekitas s\u00fcsteemiadministraatorites \u00fcht ja neile h\u00e4sti tuttavat tunnet: metsikut viha (v\u00f5ib-olla oleks pidanud lihtsalt k\u00e4si seebiga pesema).<\/p>\n<p>Oleme mitmeid siseseid anal\u00fc\u00fctilisi projekte, mis kasutavad aktiivselt Apache Sparki (sh Spark Streaming, Spark SQL) ja Hadoopi \u00f6kos\u00fcsteemi, 'elusalt' \u00fcle elanud. Aja jooksul oleme \u00f5ppinud seda p\u00e4ris h\u00e4sti seadistama ja j\u00e4lgima, ning 'see' on peaaegu lakkanud \u00e4kki kukkumast andmete iseloomu muutumise ja RDD \u00fchtlase hash'imise tasakaalu rikkumise t\u00f5ttu. Soov v\u00f5tta midagi juba valmis, pidevalt uuendatavat ja haldatavat kusagil pilves, oli j\u00e4rjest tugevam. Just sel ajal proovisin kasutada valmis pilves\u00fcsteemi Amazon Web Services \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/emr\/\">EMR<\/a><\/noindex> ja seej\u00e4rel p\u00fc\u00fcdsime juba seal probleeme lahendada. EMR on Amazoni poolt valmistatud Apache Spark koos t\u00e4iendava tarkvaraga \u00f6kos\u00fcsteemist, umbes nagu Cloudera\/Hortonworks kogumikud.<\/p>\n<h3>Anal\u00fc\u00fctika jaoks 'kummist' failide salvestamine \u2014 terav vajadus<\/h3>\n<p>\nHadoop\/Spark'i \"k\u00fcpsetamise\" kogemus erinevate kehaosade p\u00f5letustega ei l\u00e4inud raisku. Tekkis j\u00e4rjest selgem vajadus luua \u00fchtne, soodne ja usaldusv\u00e4\u00e4rne failide salvestusruum, mis oleks vastupidav riistvararikketele ning kus saaks hoida faile erinevates formaatides erinevatest s\u00fcsteemidest ning teha nende andmete p\u00f5hjal efektiivseid ja m\u00f5istliku ajaga teostatavaid valikuid aruannete jaoks.<\/p>\n<p>Samuti tahtsin, et selle platvormi tarkvarauuendus ei muutuks uue aasta \u00f6\u00f6de \u00f5udusunen\u00e4oks, kus tuleb lugeda 20-lehek\u00fcljelisi Java j\u00e4lgi ning anal\u00fc\u00fcsida kilomeetriste \u00fcksikasjalike klastrilogide sisu Spark History Serveri ja luubi abil. Soovisime lihtsat ja l\u00e4bipaistvat t\u00f6\u00f6riista, mis ei n\u00f5uaks regulaarselt kapoti alla sukeldumist, kui arendaja standardne MapReduce p\u00e4ring ei hakka t\u00f6\u00f6tama, kui reductor'i m\u00e4lu allalangevad andmed ei sobi valitud algandmete partitsioneerimise algoritmi korral.<\/p>\n<h3>Kas Amazon S3 on kandidaat DataLake'iks?<\/h3>\n<p>\nT\u00f6\u00f6kogemus Hadoopi\/MapReduce'iga on n\u00e4idanud, et vajalik on skaleeritav ja usaldusv\u00e4\u00e4rne failis\u00fcsteem ning selle peale skaleeritavad t\u00f6\u00f6tlusprotsessid, mis \u201etulevad\u201c andmetele l\u00e4hemale, et v\u00e4ltida andmete edastamist \u00fcle v\u00f5rgu. T\u00f6\u00f6tlusprotsessid peavad suutma lugeda andmeid erinevates formaatides, kuid oleks parem, kui nad ei loeks liigset teavet ja et andmeid saaks eelnevalt salvestada t\u00f6\u00f6tlejatele mugavates formates.<\/p>\n<p><b>Veel kord \u2014 peamine idee.<\/b> Ei ole soovi \u201elaadida\u201c suuri andmeid \u00fchte klastrisse anal\u00fc\u00fctilisse mootorrattasse, mis varem v\u00f5i hiljem ikkagi l\u00e4mbub ja mille tulemusena tuleb seda ebamugavalt jagada. Soov on hoida faile, lihtsalt faile, arusaadavas formaadis ja teha nende p\u00f5hjal efektiivseid anal\u00fc\u00fctilisi p\u00e4ringuid erinevate, kuid arusaadavate t\u00f6\u00f6riistadega. Ja erinevates formaatides faile tuleb aina rohkem ja rohkem. Ja parem on jagada mitte mootorit, vaid l\u00e4hteandmeid. Me vajame laienevat ja universaalset DataLake'i, otsustasime me...<\/p>\n<p>Aga mis siis, kui hoida faile tuntud ja paljudele tuttavas skaleeritavas pilvehoidlas Amazon S3, selle asemel et tegeleda oma \u201ehakkimise\u201c ettekandmisega Hadoopist?<\/p>\n<p>Selge, isikuandmeid \u201eei saa\u201c, aga kas muid andmeid saaks sinna viia ja \u201eefektiivselt k\u00e4itada\u201c?<\/p>\n<h3>Amazon Web Servicesi klastrite suurandmete anal\u00fc\u00fcsi \u00f6kos\u00fcsteem \u2014 lihtsate s\u00f5nadega.<\/h3>\n<p>\nMeie AWS-i kogemuse p\u00f5hjal on seal juba ammu ja aktiivselt kasutuses Apache Hadoop\/MapReduce erinevates vormides, n\u00e4iteks DataPipeline'i teenuses (kaardun oma kolleegidele, nad on osanud seda korralikult seadistada). Siin oleme seadnud erinevate teenuste varukoopiad DynamoDB tabelitest:<br \/>\n<img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ja miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/058dc54ed032a7bf3e9e129646202440.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJa need t\u00e4idetakse regulaarselt Hadoop\/MapReduce sisseehitatud klastrites nagu kellav\u00e4rk juba aastaid. \"Seadista ja unusta\":<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ja miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/a6569da8cafdb96c63250bb32bf51704.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSamuti on efektiivne tegeleda andmeanal\u00fc\u00fcsiga, k\u00e4ivitades anal\u00fc\u00fctikutele pilves Jupyteri m\u00e4rkmikud ning kasutades AWS SageMakeri teenust AI mudelite koolitamiseks ja juurutamiseks. Nii see meil v\u00e4lja n\u00e4eb:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ja miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/c825d979c9278a8edf8e1e747ef6def8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJa jah, anal\u00fc\u00fctikule v\u00f5i endale v\u00f5ib k\u00e4ivitada pilves m\u00e4rkmiku ja \u00fchendada selle Hadoop\/Spark klastriga, arvutada ja p\u00e4rast k\u00f5ik \"t\u00f6\u00f6tada\".<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ja miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/73cea18c54d2a9ce8d0441463991808b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee on t\u00f5eliselt mugav eraldi anal\u00fc\u00fctiliste projektide jaoks ja m\u00f5nede jaoks oleme edukalt kasutanud EMR teenust mahukate arvutuste ja anal\u00fc\u00fcside tegemiseks. Aga mida arvata s\u00fcsteemsetest lahendustest DataLake'i jaoks, kas saaksime seda? Sel hetkel olime lootuse ja meeleheite piiril ning j\u00e4tkasime otsingut.<\/p>\n<h3>AWS Glue \u2014 hoolikalt pakendatud Apache Spark \"steroidide all.\"<\/h3>\n<p>\nSelgus, et AWS-is on olemas oma versioon Hive\/Pig\/Spark virnast. Hive'i rolli, s.t. failide ja nende t\u00fc\u00fcpide katalooge DataLakese, t\u00e4idab teenus \"Data catalog\", mis ei peida oma \u00fchilduvust Apache Hive formaadiga. Sellesse teenusesse tuleb lisada teave selle kohta, kus teie failid asuvad ja millises vormingus need on. Andmed v\u00f5ivad olla mitte ainult s3-is, vaid ka andmebaasis, kuid sellest postitusest ei r\u00e4\u00e4gi. Nii on meie DataLake'i andmekataloog korraldatud:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ja miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/adb45d09698fdacbf41c86bbadde8bb2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFailid on registreeritud, suurep\u00e4rane. Kui failid on uuendatud, k\u00e4ivitame kas k\u00e4sitsi v\u00f5i ajakava j\u00e4rgi crawler'id, mis v\u00e4rskendavad neist teavet j\u00e4rvele ning salvestavad selle. Edasi saab j\u00e4rve andmeid t\u00f6\u00f6delda ja tulemusi kuhugi edastada. K\u00f5ige lihtsamal juhul laadime need samuti s3. Andmete t\u00f6\u00f6tlemist saab teha igal pool, kuid soovitatakse seadistada t\u00f6\u00f6tlemisprotsess Apache Spark klastris, kasutades laiendatud v\u00f5imalusi AWS Glue API kaudu. Sisuliselt saab kasutada vana head ja tuttavat koodi pythonis librariga pyspark ning seadistada selle t\u00e4itmine N nodas, millel on j\u00e4lgimise v\u00f5imalus, ilma et peaks s\u00fc\u00fcvima Hadoop'i sisusse v\u00f5i t\u00f5mbama docker-konteinereid ning lahendama s\u00f5ltuvuskonflikte.<\/p>\n<p><b>Veel kord \u2014 lihtne idee.<\/b> Apache Spark'i seadistamine ei ole vajalik, tuleb vaid kirjutada pythonis kood pyspark'ile, testida seda kohalikult t\u00f6\u00f6laual ja seej\u00e4rel k\u00e4ivitada suurtes klastrites pilves, m\u00e4rkides, kus algandmed asuvad ja kuhu tulemus salvestada. M\u00f5nikord on see vajalik ja kasulik ning nii on see meil seadistatud:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ja miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/dc03181573bb3f5cfcc3a8760bc7e07b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeega, kui on vaja midagi arvutada Spark-klusteris S3 andmete p\u00f5hjal, siis kirjutame Python\/PySpark koodi, testime ja l\u00e4hememe julgelt pilve.<\/p>\n<p>Aga mis orkestreerimisega? Ja kui \u00fclesanne kokku kukkus? Jah, on soovitatud luua kena voog Apache Pigi stiilis ja me isegi proovisime neid, aga otsustasime kasutada oma s\u00fcgavalt kohandatud orkestreerimist PHP ja JavaScriptis (ma m\u00f5istan, et tekkib kognitiivne dissonants, aga see t\u00f6\u00f6tab, juba aastaid ja ilma vigadeta).<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ja miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/e00ed2047c5c6492e36fccc82e7278a3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Hoidla j\u00e4rvefailide formaat on v\u00f5tmet\u00e4htsusega tulemuslikkusele.<\/h3>\n<p>\nOn v\u00e4ga, v\u00e4ga oluline m\u00f5ista veel kahte olulist punkti. Etandmep\u00e4ringud failide kohta j\u00e4rves toimuksid v\u00f5imalikult kiiresti ja et tulemuslikkus ei halveneks uue teabe lisamisel, tuleb:<\/p>\n<ul>\n<li>Failide veerud hoida eraldi (et ei peaks lugema k\u00f5iki ridu, et m\u00f5ista, mis veergudes on). Selleks valisime parqueti formati koos tihendamisega.<\/li>\n<li>On v\u00e4ga oluline jagada faile kaustades stiilis: keel, aasta, kuu, p\u00e4ev, n\u00e4dal. Mootorid, mis m\u00f5istavad seda t\u00fc\u00fcpi shardimist, vaatavad ainult vajalikesse kaustadesse, mitte ei l\u00e4bi k\u00f5iki andmeid j\u00e4rjestikku.<\/li>\n<\/ul>\n<p>\nP\u00f5him\u00f5tteliselt paigutate selle meetodi abil algandmed k\u00f5ige t\u00f5husamal viisil, et anal\u00fc\u00fcsida neid erinevate anal\u00fc\u00fcsi mootorite poolt, mis suudavad sharded kaustadesse selektiivselt siseneda ja lugeda ainult vajalikke veerge. Andmete '\u00fcleslaadimist' pole vajagi (sest salvestus lihtsalt plahvatab) \u2014 lihtsam on kohe m\u00f5istlikult paigutada need failis\u00fcsteemi \u00f5iges formaadis. Loomulikult on selge, et DataLake'is tohutu csv-faili hoidmine, mida tuleb terve rida haaval lugeda klastriga veergude ekstrahimiseks \u2014 ei ole v\u00e4ga m\u00f5istlik. M\u00f5elge veel kord kahe eespool mainitud punkti \u00fcle, kui te pole veel aru saanud, miks seda k\u00f5ike on vaja.<\/p>\n<h3>AWS Athena \u2014 nagu tulnukas karbist<\/h3>\n<p>\nJa siin, j\u00e4rve luues, sattusime kuidagi juhuslikult Amazon Athenale. \u00dcht\u00e4kki selgus, et paigutades \u00f5igesse (parquet) veergude formaati meie tohutud logifailid shardide kaustadesse \u2014 saame neid kiiresti anal\u00fc\u00fcsida ja luua aruandeid ILMA, ilma Apache Spark\/Glue klastrita.<\/p>\n<p>Athenat engine, mis t\u00f6\u00f6tab s3-s olevate andmete peal, p\u00f5hineb legendaarse <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/big-data\/what-is-presto\/\">Presto<\/a><\/noindex> \u2014 MPP (massive parallel processing) l\u00e4henemise esindaja andmete t\u00f6\u00f6tlemiseks, mis toob andmed sealt, kus nad asuvad, alates s3 ja Hadoopist kuni Cassandra ja tavaliste tekstifailideni. Peab lihtsalt paluma Athenal SQL-p\u00e4ringut t\u00e4ita, ja edasi \u201et\u00f6\u00f6tab k\u00f5ik kiiresti ja automaatselt\u201c. Oluline on m\u00e4rkida, et Athena on \u201enutikas\u201c, k\u00e4ib vaid vajalikelt shardeeritud kaustadelt ja loeb ainult vajadusp\u00e4rased veerud p\u00e4ringus.<\/p>\n<p>Athenale esitatud p\u00e4ringute tasustamine on samuti huvitav. Me maksame <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/athena\/pricing\/\">skaneeritud andmemahtu<\/a><\/noindex>. St. mitte masinate arvu eest klastris minutis, vaid \u2026 tegelikult skaneeritud 100-500 masina ulatuses ainult selleks vajalikud andmed p\u00e4ringu t\u00e4itmiseks.<\/p>\n<p>Ja k\u00fcsides ainult vajalikke veerge \u00f5igesti shardeeritud kaustadest, selgus, et Athena teenuse hind on meile paar k\u00fcmmet dollarit kuus. No suurep\u00e4rane, peaaegu tasuta v\u00f5rreldes klastrite anal\u00fc\u00fctikaga!<\/p>\n<p>Siin on, muide, kuidas me oma andmeid s3-s shardeerime:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ja miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/00bd9ae48c1cd13f3c4f7d32692c9209.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nL\u00fchikese ajaga on ettev\u00f5ttes t\u00e4iesti erinevad osakonnad, alates infotehnoloogiast kuni anal\u00fc\u00fctikani, hakanud aktiivselt p\u00e4ringute esitamiseks Athena poole ja kiiresti, sekunditega, saama kasulikke vastuseid \u201esuurtelt\u201d andmetelt \u00fcsna pika aja jooksul: kuud, pool aastat jne.<\/p>\n<p>Kuid me l\u00e4ksime kaugemale ja hakkasime vastuseid otsima pilvest <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/athena\/latest\/ug\/connect-with-odbc.html\">\u00fcsna ODBC-draiveri kaudu<\/a><\/noindex>: anal\u00fc\u00fctik tavap\u00e4rases konsoolis kirjutab SQL-p\u00e4ringu, mis 100\u2013500 masinal \u201ev\u00e4ikese hinnaga\u201d kaevab andmeid s3-st ja toob vastuse tavaliselt v\u00e4lja sekundite jooksul. Mugav. Ja kiire. Siiani ei suuda uskuda.<\/p>\n<p>Kokkuv\u00f5ttes, otsustades hoida andmeid s3-s, efektiivses veergude formaadis ja m\u00f5istlike andmete jagamistega kaustade l\u00f5ikes\u2026 saime DataLake'i ja kiire ja odava anal\u00fc\u00fctilise mootori \u2014 tasuta. Ja sellest sai ettev\u00f5ttes v\u00e4ga populaarne, kuna see m\u00f5istab SQL-i ja t\u00f6\u00f6tab kordades kiiremini kui klastrite k\u00e4ivitamine\/peatamine\/seadistamine. \"Ja kui tulemus on sama, miks maksta rohkem?\"<\/p>\n<p>P\u00e4ring Athena poole n\u00e4eb v\u00e4lja umbes nii. Soovi korral v\u00f5ib loomulikult vormida piisavalt <noindex><a rel=\"nofollow\" href=\"https:\/\/prestodb.io\/docs\/0.172\/index.html\">keerulise ja mitmelehek\u00fcljelise SQL-p\u00e4ringu<\/a><\/noindex>, kuid piirdume lihtsa r\u00fchmitamisega. Vaatame, millised vastuskoodid kliendil olid paar n\u00e4dalat tagasi veebiserveri t\u00f6\u00f6logides ja veendume, et vigu pole.<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ja miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/30028991467b9e52f597faa617d374b5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>J\u00e4reldused<\/h3>\n<p>\nP\u00e4rast, \u00fctleme, mitte just pikka, kuid valus teekonda, pidevalt riske ja keerukuse taset ning toetuse maksumust adekvaatselt hinnates, leidsime lahenduse DataLake'i ja anal\u00fc\u00fcsi jaoks, mis on meid \u00fcllatanud nii kiiruselt kui ka omamiskulu poolest.<\/p>\n<p>Selgus, et t\u00f5hus, kiire ja madala t\u00f6\u00f6j\u00f5ukuluga DataLake'i ehitamine erinevate ettev\u00f5tte osakondade vajaduste jaoks on t\u00e4iesti teostatav isegi kogenud arendajate jaoks, kes pole kunagi t\u00f6\u00f6tanud arhitektidena, ei oska joonistada ruute ruutude peale koos nooltega ning tunnevad ainult 50 termini ekos\u00fcsteemist Hadoop.<\/p>\n<p>\u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0443\u0442\u0438 \u0433\u043e\u043b\u043e\u0432\u0430 \u0440\u0430\u0441\u043a\u0430\u043b\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u043e\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0434\u0438\u0447\u0430\u0439\u0448\u0438\u0445 \u0437\u043e\u043e\u043f\u0430\u0440\u043a\u043e\u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0441\u043e\u0444\u0442\u0430 \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0433\u0440\u0443\u0437\u0430 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u0442\u043e\u043c\u043a\u0430\u043c\u0438. \u041f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0439\u0442\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0432\u043e\u0439 DataLake \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432: nagios\/munin -&gt; elastic\/kibana -&gt; Hadoop\/Spark\/s3 &#8230;, \u0441\u043e\u0431\u0438\u0440\u0430\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u044f \u0444\u0438\u0437\u0438\u043a\u0443 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432. \u0412\u0441\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u0438 \u043c\u0443\u0442\u043d\u043e\u0435 \u2014 \u043e\u0442\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0440\u0430\u0433\u0430\u043c \u0438 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u0430\u043c.<\/p>\n<p>Kui te ei soovi minna pilve ning armastate avatud projekte hallata, uuendada ja plaastritega katab, saab meie sarnase paigutuse kohapeal \u00fcles ehitada, odavatest kontorimasinatest Hadoopi ja Presto peal. Peamine on mitte peatuda ja edasi liikuda, arvestada, otsida lihtsaid ja selgeid lahendusi ning k\u00f5ik kindlasti \u00f5nnestub! Kui teil on k\u00f5igile edu ja kohtumiseni!<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/bitrix\/blog\/516374\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u044b \u0436\u0438\u0432\u0435\u043c \u0432 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0441\u0442\u044b\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0441 \u00ab\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435\u043c\u00bb \u043f\u043e \u0441\u043e\u0432\u0435\u0442\u0430\u043c stackoverflow, \u043d\u0435 \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u00ab\u043c\u043d\u043e\u0433\u043e\u0431\u0443\u043a\u0432\u00bb, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0443\u044e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e. \u0410 \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f\/\u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442 \u043f\u0430\u0440\u0443 \u043c\u0430\u0448\u0438\u043d \u2014 \u043e\u0441\u043e\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043d\u0430\u0432\u044f\u0437\u0447\u0438\u0432\u044b\u0439 \u0434\u0443\u0440\u043d\u043e\u0439 \u0441\u043e\u043d \u043d\u0430\u044f\u0432\u0443, \u0432\u0441\u0435 \u0440\u0435\u0437\u043a\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043b\u043e\u0441\u044c \u0434\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":92509,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-92508","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u044b \u0436\u0438\u0432\u0435\u043c \u0432 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0441\u0442\u044b\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0441 \u00ab\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435\u043c\u00bb \u043f\u043e \u0441\u043e\u0432\u0435\u0442\u0430\u043c stackoverflow, \u043d\u0435 \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u00ab\u043c\u043d\u043e\u0433\u043e\u0431\u0443\u043a\u0432\u00bb, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0443\u044e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e. \u0410 \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f\/\u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442 \u043f\u0430\u0440\u0443 \u043c\u0430\u0448\u0438\u043d \u2014 \u043e\u0441\u043e\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043d\u0430\u0432\u044f\u0437\u0447\u0438\u0432\u044b\u0439 \u0434\u0443\u0440\u043d\u043e\u0439 \u0441\u043e\u043d \u043d\u0430\u044f\u0432\u0443, \u0432\u0441\u0435 \u0440\u0435\u0437\u043a\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043b\u043e\u0441\u044c \u0434\u043e\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438 \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u043e\u0435 DataLake \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u044b \u0436\u0438\u0432\u0435\u043c \u0432 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0441\u0442\u044b\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0441 \u00ab\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435\u043c\u00bb \u043f\u043e \u0441\u043e\u0432\u0435\u0442\u0430\u043c stackoverflow, \u043d\u0435 \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u00ab\u043c\u043d\u043e\u0433\u043e\u0431\u0443\u043a\u0432\u00bb, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0443\u044e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e. \u0410 \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f\/\u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442 \u043f\u0430\u0440\u0443 \u043c\u0430\u0448\u0438\u043d \u2014 \u043e\u0441\u043e\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043d\u0430\u0432\u044f\u0437\u0447\u0438\u0432\u044b\u0439 \u0434\u0443\u0440\u043d\u043e\u0439 \u0441\u043e\u043d \u043d\u0430\u044f\u0432\u0443, \u0432\u0441\u0435 \u0440\u0435\u0437\u043a\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043b\u043e\u0441\u044c \u0434\u043e\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-08-28T05:42:10+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-28T05:42:10+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kuidas me korraldasime k\u00f5rgelt efektiivse ja odava DataLake'i ning miks just nii | ProHoster","description":"Me elame p\u00f5neval ajal, mil on v\u00f5imalik kiiresti ja lihtsalt kokku \u00fchendada mitu olemasolevat avatud t\u00f6\u00f6riista, seadistada need \"v\u00e4lja l\u00fclitatud teadvuse\" re\u017eiimis stackoverflow n\u00f5uannete j\u00e4rgi, s\u00fcvenemata \u201epaljudesse t\u00e4htedesse\" ja k\u00e4ivitada need kommertskasutusse. Ja kui tuleb vajadus uuendamiseks\/ulatuslikuks muutmiseks v\u00f5i keegi kogemata paar masinat taask\u00e4ivitab \u2014 m\u00f5ista, et on alanud mingi pealet\u00fckkiv halb uni ja k\u00f5ik on j\u00e4rsku keerulisemaks muutunud, kuni","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438 \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u043e\u0435 DataLake \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a | ProHoster","og:description":"\u041c\u044b \u0436\u0438\u0432\u0435\u043c \u0432 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0441\u0442\u044b\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0441 \u00ab\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435\u043c\u00bb \u043f\u043e \u0441\u043e\u0432\u0435\u0442\u0430\u043c stackoverflow, \u043d\u0435 \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u00ab\u043c\u043d\u043e\u0433\u043e\u0431\u0443\u043a\u0432\u00bb, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0443\u044e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e. \u0410 \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f\/\u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442 \u043f\u0430\u0440\u0443 \u043c\u0430\u0448\u0438\u043d \u2014 \u043e\u0441\u043e\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043d\u0430\u0432\u044f\u0437\u0447\u0438\u0432\u044b\u0439 \u0434\u0443\u0440\u043d\u043e\u0439 \u0441\u043e\u043d \u043d\u0430\u044f\u0432\u0443, \u0432\u0441\u0435 \u0440\u0435\u0437\u043a\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043b\u043e\u0441\u044c \u0434\u043e","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-08-28T05:42:10+00:00","article:modified_time":"2020-08-28T05:42:10+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"92508","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:07:39","updated":"2022-10-01 09:50:53"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/92508","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=92508"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/92508\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/92509"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=92508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=92508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=92508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}