{"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 ning miks just nii","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Me elame imeliselt ajal, mil on v\u00f5imalik kiiresti ja lihtsalt \u00fchendada mitu avatud t\u00f6\u00f6riista, seadistada neid \"teadvuseta\" Stack Overflow'i n\u00e4pun\u00e4idete j\u00e4rgi, s\u00fcvenemata \"pikadesse s\u00f5nadesse\", ning k\u00e4ivitada neid \u00e4riliseks kasutamiseks. Ja kui on aeg uuendada\/\u00fclendada v\u00f5i keegi kogemata paar masinat taask\u00e4ivitab \u2014 m\u00f5ista, et on alanud mingi kinnisidee halb uni, k\u00f5ik on j\u00e4rsku keeruliseks muutunud, tagasiteed pole, tulevik on h\u00e4gune ja turvalisem on programmimise asemel mesilasi kasvatada ja juustu teha.<\/p>\n<p>Ei ole asjata, et kogenumad kolleegid, kellel on juba hallid juuksed vigade t\u00f5ttu, vaatavad uskumatu kiiresti kokkupandud \"konteinereid\" soovitud \"kuubikutes\" k\u00fcmnetes serverites \"moekates keeltes\", kus on integreeritud as\u00fcnkroonne mitte-blokeeriv sisendi-v\u00e4ljundi toetus \u2014 alandlikult naeratavad. Ja vaikides j\u00e4tkavad nad \"man ps\" lugemist, sukelduvad silmad veretuks \"nginx\" l\u00e4htekoodidesse ja kirjutavad-kirjutavad-kirjutavad \u00fcksusteste. Kolleegid teavad, et k\u00f5ige huvitavam on ees, kui \"k\u00f5ik see\" \u00fchel \u00f6\u00f6sel muundub uue aasta eel. Ja ainus, mis neid aitab, on s\u00fcgav arusaam Unix'i olemusest, TCP\/IP seisundite \u00f5ppimisest ja p\u00f5hiotsingu-sortimise algoritmidest. Et kellade l\u00f6\u00f6misel s\u00fcsteem j\u00e4lle ellu \u00e4ratada.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAh jah, veidi k\u00f5rvale kaldusin, aga loodan, et olete suutnud edasi anda ootus\u00e4revuse seisundi.<br \/>\nT\u00e4na tahan jagada meie kogemust mugava ja odava DataLake tehnoloogia rakendamisest, mis lahendab enamikus ettev\u00f5ttes erinevaid anal\u00fc\u00fcsi\u00fclesandeid.<\/p>\n<p>M\u00f5ni aeg tagasi m\u00f5istsime, et ettev\u00f5tted vajavad \u00fcha enam toote- ja tehnilise anal\u00fc\u00fcsi vilju (r\u00e4\u00e4kimata koogile pandud kirssidest machine learning'i n\u00e4ol) ning trendide ja riskide m\u00f5istmiseks \u2014 tuleb koguda ja anal\u00fc\u00fcsida \u00fcha rohkem ja rohkem meetrikaid.<\/p>\n<h3>P\u00f5hiline tehniline anal\u00fc\u00fcs \"Bitrix24\"-s<\/h3>\n<p>\nM\u00f5ned aastat 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 planeerida j\u00e4rgmisi samme. Loomulikult soovisime kasutada olemasolevaid, v\u00f5imalikult lihtsate ja arusaadavate t\u00f6\u00f6riistadega. Tulemusena valiti nagios j\u00e4lgimiseks ja munin anal\u00fc\u00fcsiks ja visualiseerimiseks. N\u00fc\u00fcd on meil tuhandeid kontrolle nagioses, sadu graafikuid muninis ja kolleegid kasutavad neid igap\u00e4evaselt ja edukalt. N\u00e4idud on arusaadavad, graafikud selged, s\u00fcsteem on juba mitu aastat usaldusv\u00e4\u00e4rselt t\u00f6\u00f6tanud ning sellele lisatakse pidevalt uusi teste ja graafikuid: kui k\u00e4ivitame uue teenuse, lisame mitmeid teste ja graafikuid. Head teed.<\/p>\n<h3>K\u00e4si pulsil \u2013 ulatuslik tehniline anal\u00fc\u00fctika<\/h3>\n<p>\nSoov saada teavet probleemidest \u00abniipea kui v\u00f5imalik\u00bb viis meid aktiivsete katseteni lihtsate ja arusaadavate t\u00f6\u00f6riistadega \u2013 pinba ja xhprof.<\/p>\n<p>Pinba saatis meile UDP-pakkides statistikat PHP veebilehe osade t\u00f6\u00f6kiirusest ning oli v\u00f5imalik reaalajas n\u00e4ha MySQL hoidlas (pinba-ga kaasas on oma MySQL mootor kiirete s\u00fcndmuste anal\u00fc\u00fcsiks) l\u00fchikest probleemide nimekirja ning nendesse reageerida. Xhprof aga v\u00f5imaldas automaatselt koguda info k\u00f5ige aeglasemate PHP-lehtede t\u00e4itmisgraafikute kohta ning anal\u00fc\u00fcsida, mis sellele v\u00f5is viia \u2013 rahulikult, tees kuumutades v\u00f5i midagi tugevamat.<\/p>\n<p>M\u00f5ni aeg tagasi t\u00e4iendati t\u00f6\u00f6riistakasti veel \u00fche \u00fcsna lihtsa ja arusaadava mootoriga, mis p\u00f5hineb tagasiv\u00f5tualgoritmil, mis on suurep\u00e4raselt teostatud legendaarse Lucene\u2019i raamatukogus \u2013 Elastic\/Kibana. Lihtne m\u00f5te mitme l\u00f5imega dokumentide kirjutamisest Lucene\u2019i p\u00f6\u00f6rdindeksisse logis\u00fcndmuste alusel ja kiire otsing nende p\u00f5hjal kasutades fasetilisi jagamisi \u2013 osutus t\u00f5eliselt kasulikuks.<\/p>\n<p>Hoolimata suhteliselt tehnilisest v\u00e4ljan\u00e4gemisest visualiseerimistest Kibanas koos \u00ab\u00fclesse voolavatega\u00bb madala taseme m\u00f5istetega, nagu \u00abbucket\u00bb, ja uuesti leiutatud keele t\u00e4iesti unustatud relatsiooni algebrast \u2013 on t\u00f6\u00f6riist hakanud h\u00e4sti aitama meid j\u00e4rgmistes \u00fclesannetes:<\/p>\n<ul>\n<li>Kui palju oli klientide Bitrix24 PHP vigu p1 portaalis viimase tunni jooksul ja millised? Aru saada, andestada ja kiiresti parandada.<\/li>\n<li>Kui palju videok\u00f5nesid tehti Saksamaal portaalides viimase 24 tunni jooksul, millise kvaliteediga need olid ja kas esines probleeme kanali\/v\u00f5rguga?<\/li>\n<li>Kuidas toimib s\u00fcsteemi funktsionaalsus (meie PHP jaoks C-s kirjutatud laiendus), mis on koostatakse l\u00e4htekoodidest teenuse viimases v\u00e4rskenduses ja klientidele tarnitud? Kas esineb segfault'e?<\/li>\n<li>Kas kliendi andmed salvestatakse PHP m\u00e4llu? Kas esineb m\u00e4lupiirangutega seotud vigu: \u201em\u00e4lu otsas\u201d? Leida ja k\u00f5rvaldada.<\/li>\n<\/ul>\n<p>\nSiin on konkreetne n\u00e4ide. Mallet anal\u00fc\u00fcsitakse ja muudetakse tugevalt, et korrigeerida klientide tegevust \u00e4\u00e4rmiselt ebatavalistes olukordades, mis v\u00f5ivad olla kahjustatud sisendandmetega, ja see t\u00f5i kaasa ootamatu vea, mis n\u00f5udis kiiret parandamist:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ning 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 teavitusi m\u00e4\u00e4ratud s\u00fcndmustest ja l\u00fchikese ajaga on sellest t\u00f6\u00f6riistast saanud ettev\u00f5ttes k\u00fcmnete t\u00f6\u00f6tajate kasutatav, alates tugiteenustest ja arendamisest kuni QA-ni.<\/p>\n<p>Iga osakonna tegevust ettev\u00f5ttes on n\u00fc\u00fcd mugav j\u00e4lgida ja m\u00f5\u00f5ta \u2014 sadade serveri logide k\u00e4sitsi anal\u00fc\u00fcsimise asemel piisab logide parsimise ja saatmise seadistamisest elastic klastrisse, et nautida n\u00e4iteks Kibana armatuurlauda, kus kuvatakse viimase kuu jooksul m\u00fc\u00fcdud 3D-prinditud kahepea kasse.<\/p>\n<h3>Alustav \u00e4rianal\u00fc\u00fcs<\/h3>\n<p>\nK\u00f5ik teavad, et sageli algab ettev\u00f5tetes \u00e4rianal\u00fc\u00fcs \u00e4\u00e4rmiselt aktiivsest Exceli kasutamisest. Kuid peamine on see, et see ei j\u00e4\u00e4ks ainult sinna. Google Analytics toob kahtlemata juurde head; heale harjub kiiresti.<\/p>\n<p>Meie harmooniliselt arenevas ettev\u00f5ttes hakkasid aeg-ajalt ilmuma \u201eprohvetid\u201d, kes soovitasid intensiivsemat t\u00f6\u00f6tlemist suuremate andmete \u00fcle. J\u00e4rjest sagedamini ilmus vajadus s\u00fcvitsi minevate ja mitmekesiste aruannete j\u00e4rele ning erinevate osakondade noorte j\u00f5upingutuste abil organiseeriti lihtne ja praktiline lahendus \u2014 ClickHouse ja PowerBI sidumine.<\/p>\n<p>Pika aega aitas see paindlik lahendus suurep\u00e4raselt, kuid j\u00e4rk-j\u00e4rgult hakkas selguma, et ClickHouse ei ole elastne ja seda ei saa liiga palju koormata.<\/p>\n<p>Siin on oluline h\u00e4sti m\u00f5ista, et ClickHouse, nagu ka Druid, Vertica ja Amazon RedShift (mis p\u00f5hineb Postgresel), on anal\u00fc\u00fcsimootorid, mis on optimeeritud \u00fcsna mugavaks anal\u00fc\u00fcsiks (summad, agregatsioonid, v\u00e4hemalt-maksimaalne veerus ja veidi saab ka liituda), kuna need on organiseeritud efektiivseks kolonniandmete hoidmiseks, erinevalt tuntud MySQL ja muudest (rida-orienteeritud) andmebaasidest.<\/p>\n<p>Sisuliselt on ClickHouse lihtsalt suurem andmebaas, millel on mitte eriti mugav t\u00e4ppsisestamine (nii on plaanitud, k\u00f5ik on okei), kuid meeldiv anal\u00fc\u00fctika ja huvitavate v\u00f5imsate andmet\u00f6\u00f6tluse funktsioonide kogum. Jah, isegi klastrit saab luua \u2014 kuid te m\u00f5istate ju, et mitte ei pea naelutama k\u00fc\u00fcnega mikroskoobi abil ja me hakkasime otsima teisi lahendusi.<\/p>\n<h3>N\u00f5udlus Python ja anal\u00fc\u00fctikute j\u00e4rele<\/h3>\n<p>\nMeie ettev\u00f5ttes on palju arendajaid, kes kirjutavad koodi peaaegu iga p\u00e4ev 10-20 aastat ja t\u00f6\u00f6tavad PHP, JavaScript, C#, C\/C++, Java, Go, Rust, Python, Bash keeles. Samuti on palju kogenud s\u00fcsteemiadministraatoreid, kes on l\u00e4bi elanud mitmeid uskumatuid katastroofe, mis ei mahu statistika seadustesse (nt, kui enamik kettaid h\u00e4vitatakse RAID-10-s tugeva v\u00e4lguhammustuse t\u00f5ttu). Sellistes tingimustes oli pikka aega ebaselge, mis on \"Python anal\u00fc\u00fctik\". Python on ju nagu PHP, ainult nimi veidi pikem ja teadvust muutvaid aineid sisaldab interpreteerija l\u00e4htekoodis pisut v\u00e4hem. K\u00fcll aga hakkasid kogenud arendajad, luues \u00fcha uusi anal\u00fc\u00fctilisi aruandeid, \u00fcha s\u00fcgavamalt m\u00f5istma kitsas spetsialiseerituse t\u00e4htsust sellistes t\u00f6\u00f6riistades nagu numpy, pandas, matplotlib, seaborn.<br \/>\nOtsustavat rolli m\u00e4ngisid t\u00f5en\u00e4oliselt t\u00f6\u00f6tajate \u00e4kilised minestamised s\u00f5nade \"logistiline regressioon\" kombinatsiooni t\u00f5ttu ja efektiivsete aruannete koostamise demonstreerimine suurte andmemasside p\u00f5hjal, kasutades jah, jah, pyspark'i.<\/p>\n<p>Apache Spark, selle funktsionaalne paradigma, millele r\u00e4lja algebra sujuvalt sobib, ja v\u00f5imalused avaldasid arendajatele, kes olid harjunud MySQL-iga, nii suurt muljet, et kogenud anal\u00fc\u00fctikute rindade tugevdamise vajadus sai selgeks nagu p\u00e4ev.<\/p>\n<h3>Edasised katsed Apache Spark\/Hadoop t\u00f5usta ja see, mis ei l\u00e4inud sugugi plaanip\u00e4raselt<\/h3>\n<p>\nKuid peagi sai selgeks, et Sparkiga on ilmselt midagi s\u00fcsteemselt valesti v\u00f5i tuleks lihtsalt paremini k\u00e4si pesta. Kui Hadoop\/MapReduce\/Lucene'i raamistiku koostasid kogenud programmeerijad, mis on ilmselge, kui hoolikalt vaadata Java l\u00e4htekoodi v\u00f5i Doug Cutting'i ideid Lucenes, siis on Spark \u00fcllataval kombel kirjutatud v\u00e4ga vaieldavas ja praegu mitte arenevas eksootilises keeles Scala. Samuti p\u00f5hjustas regulaarne arvutuste kokkuvarisemine Spark klastris loogika ja mitte v\u00e4ga l\u00e4bipaistva m\u00e4luhaldamise t\u00f5ttu reduce operatsioonide jaoks (palju v\u00f5tmeid tuleb korraga) \u2014 tekitas selle \u00fcmber auriku, millel on veel kuhugi areneda. T\u00e4iendavalt s\u00fcvendas olukorda suur hulk seletamatuid avatud porte, ajutisi faile, mis kasvasid k\u00f5ige arusaamatutel kohtadel, ja jar-s\u00f5ltuvusi \u2014 mis tekitas s\u00fcsteemiadministraatorites tuttava ja halvasti alustatud tunde: raevukat viha (v\u00f5ib-olla oleks pidanud k\u00e4si seebi all pesema).<\/p>\n<p>Me, tulemuseks, \"elluj\u00e4\u00e4me\" mitu sisemist anal\u00fc\u00fcsiprojekti, mis kasutavad aktiivselt Apache Spark'i (sealhulgas Spark Streaming, Spark SQL) ja Hadoopi \u00f6kos\u00fcsteemi (ja muud). Kuigi aja jooksul \u00f5ppisime \"seda\" kenasti valmistama ja j\u00e4lgima ning \"see\" l\u00f5petas praktiliselt \u00e4kki kukkumise andmete olemuse muutumise ja RDD tasakaalustamatuse t\u00f5ttu, grew desire to take something already prepared, updated, and managed somewhere in the cloud increasingly stronger. Just sel ajal proovime kasutada Amazon Web Services'i valmisseadet \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/emr\/\">EMR<\/a><\/noindex> ja hiljem p\u00fc\u00fcdsime juba sellel probleemide lahendamiseks. EMR on Amazon'i valmistatud Apache Spark koos t\u00e4iendava tarkvaraga \u00f6kos\u00fcsteemist, umbes nagu Cloudera\/Hortonworks kogum.<\/p>\n<h3>\"Kummine\" andmehoidla anal\u00fc\u00fctikaks \u2014 terav vajadus<\/h3>\n<p>\nHadoop\/Spark-i \"valmistamise\" kogemused kehavigastuste n\u00e4ol ei l\u00e4inud raisku. \u00dcha selgemaks t\u00f5usis vajadus luua odav ja usaldusv\u00e4\u00e4rne andmehoidla, mis oleks vastupidav riistvaraliste riketega ja kus saaks hoida faile erinevates formaatides erinevatest s\u00fcsteemidest ning teha nende andmete kohta t\u00f5husalt ja m\u00f5istliku ajaga aruandeid.<\/p>\n<p>Samuti soovisime, et selle platvormi tarkvara v\u00e4rskendamine ei muutuks j\u00f5uluh\u00e4ireteks, kus tuleb lugeda 20-lehek\u00fcljelisi Java j\u00e4lgimise teateid ja anal\u00fc\u00fcsida kilomeetreid podisevaid klastrilogisid Spark History Serveri ja suurendusklaasi abil. Soovisime lihtsat ja l\u00e4bipaistvat t\u00f6\u00f6riista, mis ei n\u00f5ua pidevat kapoti alla minemist, kui arendaja ei saa enam toimima standardset MapReduce p\u00e4ringut, kui v\u00e4hendada andmete t\u00f6\u00f6deldud t\u00f6\u00f6tluse m\u00e4lust v\u00e4lja langemise t\u00f5ttu pole liiga h\u00e4sti valitud algandmete partitsioneerimise algoritmi.<\/p>\n<h3>Kas Amazon S3 on kandidaat DataLake'iks?<\/h3>\n<p>\nT\u00f6\u00f6kogemus Hadoop\/MapReduce'iga on \u00f5petanud, et vajalik on skaleeritav usaldusv\u00e4\u00e4rne failis\u00fcsteem ja selle kohal skaleeritavad t\u00f6\u00f6tajad, kes \u201etulevad\u201c l\u00e4hemale andmetele, et mitte suunata andmeid \u00fcle v\u00f5rgu. T\u00f6\u00f6tajad peavad oskama andmeid lugeda erinevates vormingutes, kuid eelistatult mitte lugema liigset teavet ning et oleks v\u00f5imalik eelnevalt salvestada andmeid t\u00f6\u00f6tajatele mugavates vormingutes.<\/p>\n<p><b>Veel kord \u2014 p\u00f5hjusidea.<\/b> Ei ole soovi \u201elaadida\u201c suurandmeid \u00fchte klastrianal\u00fc\u00fcsi mootori, mis varem v\u00f5i hiljem igal juhul sisse kukub ja tuleb see inetult jaotada. Soovime hoida faile, lihtsalt faile, arusaadavas vormingus ja teha nendega t\u00f5husate anal\u00fc\u00fctikak\u00fcsimustega, kasutades erinevaid, kuid arusaadavaid t\u00f6\u00f6riistu. Ja faile erinevates vormingutes tuleb \u00fcha enam ja enam. Ja parem on jaotada mitte mootorit, vaid algandmeid. Me vajame laiendatavat ja universaalset DataLake'i, otsustasime...<\/p>\n<p>Aga mis siis, kui salvestada faile tuttavas ja paljudele tuntud skaleeritavas pilvehoidlas Amazon S3, mitte vaevates oma enda Hadoop'i valmistamisega?<\/p>\n<p>Selge, isikuandmed ei ole lubatud, aga mis siis teiste andmetega, kui need sinna viia ja \u201eefektiivselt t\u00f6\u00f6delda\u201c?<\/p>\n<h3>Klastrite-suurandmete-anal\u00fc\u00fcsi ekos\u00fcsteem Amazon Web Services \u2014 v\u00e4ga lihtsate s\u00f5nadega<\/h3>\n<p>\nKuna meie kogemus AWS-iga n\u00e4itab, et seal on juba ammu ja aktiivselt erinevate kastete all kasutatud Apache Hadoop\/MapReduce'i, n\u00e4iteks teenuses DataPipeline (kadedustan kolleege, nad oskavad seda \u00f5igesti valmistada). Siin oleme seadistanud varukoopiad erinevatest teenustest tabelitest DynamoDB:<br \/>\n<img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ning miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/058dc54ed032a7bf3e9e129646202440.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJa need k\u00e4ivitatakse regulaarselt sisseehitatud Hadoop\/MapReduce klastrites nagu kellad juba mitu aastat. \u201eSeadista ja unusta\u201c:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ning miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/a6569da8cafdb96c63250bb32bf51704.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSamuti saab t\u00f5husalt tegeleda andmeanal\u00fc\u00fcsiga, k\u00e4ivitades anal\u00fc\u00fctikute jaoks Jupiteri s\u00fclearvutid pilves ning kasutades AI mudelite \u00f5petamiseks ja juurutamiseks AWS SageMaker teenust. Niiviisi see meie puhul v\u00e4lja n\u00e4eb:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ning miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/c825d979c9278a8edf8e1e747ef6def8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJa jah, saate endale v\u00f5i anal\u00fc\u00fctikule pilves s\u00fclearvuti seadistada ning siduda selle Hadoop\/Spark klastriga, teha arvutusi ja k\u00f5ik see siis \"likvideerida\":<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ning 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 \u00fcksikute anal\u00fc\u00fcsiprojektide jaoks ja m\u00f5nedel juhtudel oleme edukalt kasutanud EMR teenust ulatuslike arvutuste ja anal\u00fc\u00fcside tegemiseks. Aga kuidas on lood s\u00fcsteemse lahendusega DataLake'i jaoks, kas see \u00f5nnestub? Sel hetkel olime lootuse ja meeleheidete piiril ning j\u00e4tkasime otsingut.<\/p>\n<h3>AWS Glue on hoolikalt pakitud Apache Spark \"steroididega\".<\/h3>\n<p>\nSelgus, et AWS-il on \"oma\" versioon \u201eHive\/Pig\/Spark\u201c stacks. Hive'i rolli, s.t. failide ja nende t\u00fc\u00fcpide katalooge DataLake's, t\u00e4idab teenus \u201eData catalog\u201c, mis ei varja oma \u00fchilduvust Apache Hive vorminguga. Sellesse teenusesse tuleb lisada teave selle kohta, kus teie failid asuvad ja millises formaadis nad on. Andmed v\u00f5ivad olla mitte ainult s3-s, vaid ka andmebaasis, aga sellest ei r\u00e4\u00e4gi me selles postituses. Niiviisi on meie DataLake'i andmekataloog korraldatud:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ning 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 \u2014 k\u00e4ivitame kas k\u00e4sitsi v\u00f5i ajakava j\u00e4rgi crawlers, mis uuendavad teavet ja salvestavad selle j\u00e4rve kohta. Edasi saab j\u00e4rvest andmeid t\u00f6\u00f6delda ning tulemusi kuhugi v\u00e4lja laadida. K\u00f5ige lihtsamal juhul \u2014 laadime v\u00e4lja samuti s3-sse. Andmete t\u00f6\u00f6tlemist saab teha kuskil, kuid soovitatakse korraldada t\u00f6\u00f6tlemisprotsess Apache Spark klasstris, kasutades AWS Glue kaudu laialdasi v\u00f5imalusi. Sisuliselt saab kasutada vana head ja tuttavat python koodi koos pyspark raamatukoguga ning seadistada selle t\u00e4itmine N s\u00f5lmes teatud v\u00f5imsusega klastris, j\u00e4lgimisega, ilma et oleks vaja s\u00fc\u00fcvida Hadoopi toimimisprotsessidesse v\u00f5i vedada Docker konteinerite keerukusi ning lahendada s\u00f5ltuvusprobleeme.<\/p>\n<p><b>Kordus \u2014 lihtne idee.<\/b> Ei ole vaja seadistada Apache Spark'i, peate vaid kirjutama koodi pythonis pyspark jaoks, testima seda kohapeal t\u00f6\u00f6laual ja seej\u00e4rel k\u00e4ivitama suurel pilvekaldal, m\u00e4rkides \u00e4ra, kus asuvad algandmed ja kuhu paigutada tulemus. M\u00f5nikord on see vajalik ja kasulik ning niiviisi on see meie juures seadistatud:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ning 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 klastris andmete jaoks s3-s \u2014 kirjutame python\/pyspark koodi, testime ja suundume pilve.<\/p>\n<p>Aga orkestreerimisega? Ent kui \u00fclesanne langeb ja kaob? Jah, pakutakse ilusat torujuhet Apache Pigi stiilis ja me proovime neid, kuid otsustasime seni kasutada oma s\u00fcgavalt kohandatud orkestreerimist PHP ja JavaScriptiga (ma saan aru, et see tekitab kognitiivset dissonantsi, kuid see t\u00f6\u00f6tab, aastaid ja t\u00f5rgeteta).<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ning miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/e00ed2047c5c6492e36fccc82e7278a3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>J\u00e4rvede failide vorming on v\u00f5tmet\u00e4htsusega j\u00f5udluse osas<\/h3>\n<p>\nOn v\u00e4ga, v\u00e4ga oluline m\u00f5ista veel kahte v\u00f5tmeaspekti. Et andmefailide p\u00e4ringud j\u00e4rves toimuksid maksimaalselt kiiresti ja j\u00f5udlus ei halveneks uue teabe lisamisel, on vajalik:<\/p>\n<ul>\n<li>Hoidke failide veerud eraldi (et ei peaks lugema k\u00f5iki ridu, et m\u00f5ista, mis veergudes on). Selleks kasutasime kokku surutud parquet formaati.<\/li>\n<li>On v\u00e4ga oluline jagada failid kaustadesse j\u00e4rgmiselt: keel, aasta, kuu, p\u00e4ev, n\u00e4dal. Mootorid, mis m\u00f5istavad seda jagamisviisi, vaatavad ainult vajalikke kaustu, mitte ei l\u00e4bi k\u00f5iki andmeid j\u00e4rjest.<\/li>\n<\/ul>\n<p>\nSisuliselt panete te sellisel viisil algandmed v\u00e4lja k\u00f5ige t\u00f5husamal viisil anal\u00fc\u00fctilistele mootoritele, mis oskavad valikuliselt siseneda jagatud kaustadesse ja lugeda failidest ainult vajalikke veerge. Andmeid ei pea kuhugi \u00ablaadima\u00bb (sest salvestuskoht lihtsalt puruneb) \u2014 pange need kohe m\u00f5istlikult failis\u00fcsteemi \u00f5iges formaadis. Loomulikult peab olema selge, et tohutu csv-faili hoidmine DataLake'is, mille jaoks peab esmalt k\u00f5ik read klastri poolt l\u00e4bi lugema, et veerge v\u00e4lja t\u00f5mmata \u2014 ei ole kuigi otstarbekas. M\u00f5elge veel kord kahele \u00fclaltoodud punktile, kui see ei ole veel selge, miks see k\u00f5ik vajalik on.<\/p>\n<h3>AWS Athena \u2014 \u201edeemon\u201d karbist<\/h3>\n<p>\nJa siin, luues j\u00e4rve, sattusime, m\u00e4rkamatult, Amazon Athengale. \u00dcht\u00e4kki selgus, et hoolikalt jagades oma tohutud \u017eurnaalifailid \u00f5igesse (parquet) veerguvormingusse, saab nende \u00fcle v\u00e4ga kiiresti teha \u00e4\u00e4rmiselt informatiivseid valikuid ja koostada aruandeid ILMA, ilma Apache Spark\/Glue klastri kasutamiseta.<\/p>\n<p>Athena mootor, mis t\u00f6\u00f6tab andmetega s3-s, p\u00f5hineb legendaarse <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/big-data\/what-is-presto\/\">Presto<\/a><\/noindex> \u2014 esindaja MPP (massive parallel processing) andmet\u00f6\u00f6tluse l\u00e4henemistest, mis toob andmed sealt, kus need asuvad, alates s3 ja Hadoopist kuni Cassandra ja tavaliste tekstifailideni. Pead lihtsalt paluma Athenal SQL-p\u00e4ringut teha ja k\u00f5ik \u201et\u00f6\u00f6tab kiiresti ja iseseisvalt\u201c. Oluline on m\u00e4rkida, et Athena on \u201etark\u201c, ta k\u00e4ib ainult vajalikest sharditud kaustadest ja loeb ainult p\u00e4ringus vajalikud veerud.<\/p>\n<p>Athena p\u00e4ringute hindamine toimub samuti huvitaval viisil. Me maksame <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/athena\/pricing\/\">skannitud andmete mahu<\/a><\/noindex>. See t\u00e4hendab, et ei maksustata klastris olevate masinate arvu minutis, vaid\u2026 ainult tegelikult skaneeritud 100-500 masina andmete eest, mis on vajalikud p\u00e4ringu t\u00e4itmiseks.<\/p>\n<p>Kuna k\u00fcsime ainult vajalikke veerge \u00f5igete sharditud kaustade hulgast, siis osutus, et Athena teenus maksab meile k\u00fcmneid dollareid kuus. Imeline, peaaegu tasuta, v\u00f5rreldes klastrite anal\u00fc\u00fcsiga!<\/p>\n<p>N\u00e4iteks, kuidas me oma andmeid s3-s shardime:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ning miks just nii\" src=\"\/wp-content\/uploads\/2020\/08\/00bd9ae48c1cd13f3c4f7d32692c9209.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTulemuseks oli see, et l\u00fchikese aja jooksul hakkasid ettev\u00f5tte t\u00e4iesti erinevad osakonnad, alates infotehnoloogia turvast kuni anal\u00fc\u00fcsini, aktiivselt Athena poole p\u00f6\u00f6rduma ja kiiresti, sekunditega, saama kasulikke vastuseid \u201esuurtest\u201c andmetest \u00fcsna pikemate perioodide jaoks: kuud, poolaasta jne.<\/p>\n<p>Kuid me l\u00e4ksime kaugemale ja hakkasime vastuseid saama pilvest <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/athena\/latest\/ug\/connect-with-odbc.html\">ODBC-draiveri kaudu<\/a><\/noindex>: anal\u00fc\u00fctik kirjutab tuttavas konsoolis SQL-p\u00e4ringu, mis \u201emugavalt ja odavalt\u201c kaevab andmeid s3-st 100-500 masina ulatuses ja tagastab vastuse tavaliselt sekundite jooksul. Mugav. Ja kiire. Siiani ei suuda uskuda.<\/p>\n<p>L\u00f5puks, p\u00e4rast otsust andmed s3-s hoida, t\u00f5husas veergude formaadis ja m\u00f5istliku andmete shardimisega kaustades\u2026 saime DataLake\u2019i ja kiire ning odava anal\u00fc\u00fcsimootor \u2014 tasuta. See sai ettev\u00f5ttes v\u00e4ga populaarseks, kuna m\u00f5istab SQL-i ja t\u00f6\u00f6tab kordades kiiremini kui klastrite k\u00e4ivitamise\/peatamise\/seadmise korral. \u201eJa kui tulemus on sama, miks maksta rohkem?\u201c<\/p>\n<p>P\u00e4ring Athena jaoks n\u00e4eb v\u00e4lja umbes selline. Kui soovite, saate loomulikult koostada 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 vastuste koodid olid kliendil m\u00f5ned n\u00e4dalad tagasi veebiserveri logides ja veendume, et vigu pole:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas me korraldasime k\u00f5rgelt efektiivse ja soodsa DataLake&#039;i ning 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>\nL\u00e4binud pikka, kuid valulikku teed, pidevalt riske ja keerukuse taset ning toetuse maksumust \u00f5igesti hinnates, leidsime lahenduse DataLake'ile ja anal\u00fc\u00fctikale, mis ei lakka meid r\u00f5\u00f5mustamast oma kiiruselt ja omamise kuludelt.<\/p>\n<p>Selgus, et t\u00f5hus, kiire ja odavalt kasutatav DataLake erinevate ettev\u00f5tte osakondade vajaduste jaoks on t\u00e4iesti j\u00f5ukohane isegi kogenud arendajatele, kes ei ole kunagi t\u00f6\u00f6tanud arhitektidena ega oska joonistada ruute ruutude peale koos noolte ja viiek\u00fcmne terminiga Hadoopi \u00f6kos\u00fcsteemist.<\/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 pilve ja armastate avatud projekte hooldada, v\u00e4rskendada ja parandada, on sarnase meie skeemi ehitamine kohapeal, odavatel b\u00fcroomasinatel, Hadoopi ja Presto peal, v\u00f5imalik. Peamine on mitte peatuda ja edasi liikuda, arvestada, otsida lihtsaid ja selgeid lahendusi, ning k\u00f5ik tuleb kindlasti v\u00e4lja! Kogu edu ja senimaani!<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 5.0.1.1 - 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.\" \/>\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) 5.0.1.1\" \/>\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.\" \/>\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\u00f5rge t\u00f5hususega ja odava DataLake'i ning miks just nii | ProHoster","description":"Elame imeliselt aja, mil on v\u00f5imalik kiiresti ja lihtsalt \u00fchendada mitu valmis avatud t\u00f6\u00f6riista, seadistada need \u201ev\u00e4lja l\u00fclitatud teadlikkuses\u201d stackoverflow n\u00f5uannete j\u00e4rgi, s\u00fcvenemata \u201epaljudesse t\u00e4htedesse\u201d, ning k\u00e4ivitada.","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.","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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"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}]}}