{"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\/sv\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak","title":{"rendered":"Hur vi organiserade en h\u00f6gpresterande och kostnadseffektiv DataLake och varf\u00f6r just s\u00e5","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Vi lever i en fantastisk tid, hvor man hurtigt og nemt kan kombinere flere f\u00e6rdige open source-v\u00e6rkt\u00f8jer, konfigurere dem med \u00bbafslappet sind\u00ab efter r\u00e5d fra stackoverflow, uden at dykke ned i \u00bbmange bogstaver\u00ab, og lancere dem kommercielt. Men n\u00e5r der er behov for opdateringer\/udvidelser, eller nogen utilsigtet genstarter et par maskiner \u2013 indser man, at man er i gang med en p\u00e5tr\u00e6ngende d\u00e5rlig dr\u00f8m, hvor alt pludselig er blevet uigenkendeligt kompliceret, der er ingen vej tilbage, fremtiden er t\u00e5get, og det er sikrere at dyrke bier og lave ost end at programmere.<\/p>\n<p>Det er ikke underligt, at mere erfarne kolleger, med et h\u00e5r der allerede er gr\u00e5spr\u00e6ngt af fejl, betragter det utroligt hurtige udrulning af bunker til \u00bbcontainere\u00ab i \u00bbkubikere\u00ab p\u00e5 dusinvis af servere med \u00bbmoderne sprog\u00ab og indbygget st\u00f8tte til asynkron ikke-blokerende input\/output \u2013 de smiler beskedent. Og de forts\u00e6tter stille med at l\u00e6se \u00bbman ps\u00ab, fordeler blodet fra \u00f8jnene over kildekoden til \u00bbnginx\u00ab og skriver-skriver-skriver unit tests. Kollegerne ved, at det mest interessante vil komme senere, n\u00e5r \u00bbalt dette\u00ab engang bliver en natlig udfordring ved nyt\u00e5r. Og kun en dyb forst\u00e5else af unix-natur, indl\u00e6rt TCP\/IP-tilstande og grundl\u00e6ggende sorterings-s\u00f8gealgoritmer vil hj\u00e6lpe dem med at genoplive systemet til klangene af klokkerne.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n\u00c5h ja, jeg kom lidt v\u00e6k fra emnet, men jeg h\u00e5ber, jeg form\u00e5ede at formidle en f\u00f8lelse af forventning.<br \/>\nI dag vil jeg dele vores erfaring med at implementere en nem og omkostningseffektiv stak til DataLake, som l\u00f8ser de fleste analytiske opgaver i virksomheden for helt forskellige afdelinger.<\/p>\n<p>For noget tid siden kom vi til at forst\u00e5, at virksomheder i stigende grad har brug for resultater fra b\u00e5de produkt- og teknisk analyse (for ikke at n\u00e6vne b\u00e6rrene p\u00e5 kagen i form af maskinl\u00e6ring), og for at forst\u00e5 tendenser og risici \u2013 er det n\u00f8dvendigt at indsamle og analysere flere og flere metrikker.<\/p>\n<h3>Basis teknisk analyse i \u00bbBitrix24\u00ab<\/h3>\n<p>\nF\u00f6r flera \u00e5r sedan, i samband med lanseringen av tj\u00e4nsten \u00abBitrix24\u00bb, investerade vi aktivt tid och resurser i att skapa en enkel och p\u00e5litlig analysplattform som skulle hj\u00e4lpa till att snabbt uppt\u00e4cka problem i infrastrukturen och planera n\u00e4sta steg. Sj\u00e4lvklart \u00f6nskade vi att anv\u00e4nda f\u00e4rdiga verktyg som var s\u00e5 enkla och f\u00f6rst\u00e5eliga som m\u00f6jligt. Resultatet blev att nagios valdes f\u00f6r \u00f6vervakning och munin f\u00f6r analys och visualisering. Nu har vi tusentals kontroller i nagios, hundratals diagram i munin och kollegor anv\u00e4nder dem framg\u00e5ngsrikt varje dag. Metrikerna \u00e4r tydliga, diagrammen \u00e4r klara, systemet har fungerat p\u00e5litligt i flera \u00e5r och ny tester och diagram l\u00e4ggs regelbundet till: n\u00e4r vi s\u00e4tter en ny tj\u00e4nst i drift \u2014 l\u00e4gger vi till n\u00e5gra tester och diagram. Lycka till.<\/p>\n<h3>H\u00e5lla hand p\u00e5 pulsen \u2014 ut\u00f6kad teknisk analys<\/h3>\n<p>\n\u00d6nskan om att f\u00e5 information om problem \"s\u00e5 snart som m\u00f6jligt\" har lett till aktiva experiment med enkla och f\u00f6rst\u00e5eliga verktyg \u2014 pinba och xhprof.<\/p>\n<p>Pinba skickade oss statistik i UDP-paket om hastigheten p\u00e5 olika delar av webbplatserna i PHP, och vi kunde i realtid se en kort lista \u00f6ver problem i MySQL-lagret (pinba kommer med sin egen MySQL-motor f\u00f6r snabb h\u00e4ndelseanalys) och reagera p\u00e5 dem. Och xhprof m\u00f6jliggjorde automatiskt insamling av exekveringsgrafer f\u00f6r de mest l\u00e5ngsamma PHP-sidorna hos kunderna och analysera vad som kunde ha orsakat detta \u2014 lugnt, medan vi h\u00e4llde upp te eller n\u00e5got starkare.<\/p>\n<p>F\u00f6r ett tag sedan ut\u00f6kades verktygsupps\u00e4ttningen med \u00e4nnu en ganska enkel och f\u00f6rst\u00e5elig motor baserad p\u00e5 algoritmen f\u00f6r omv\u00e4nd indexering, utm\u00e4rkt implementerad i det legendariska biblioteket Lucene \u2014 Elastic\/Kibana. Den enkla id\u00e9n med flerdimensionell dokumentinspelning i Lucenes omv\u00e4nda index baserat p\u00e5 h\u00e4ndelser i loggar och snabb s\u00f6kning i dem med hj\u00e4lp av facettering \u2014 visade sig verkligen vara anv\u00e4ndbar.<\/p>\n<p>Trots det ganska tekniska utseendet p\u00e5 visualiseringarna i Kibana med \"som fl\u00f6dar upp\u00e5t\" l\u00e5g-niv\u00e5 koncepter som \"bucket\" och det p\u00e5nyttf\u00f6dda spr\u00e5ket av den fortfarande inte gl\u00f6mda relationella algebran \u2014 har verktyget verkligen hj\u00e4lpt oss i f\u00f6ljande uppgifter:<\/p>\n<ul>\n<li>Hur m\u00e5nga PHP-fel har kunden Bitrix24 haft p\u00e5 portalen p1 den senaste timmen och vilka? F\u00f6rst\u00e5, f\u00f6rl\u00e5ta och snabbt \u00e5tg\u00e4rda.<\/li>\n<li>Hur m\u00e5nga videosamtal har genomf\u00f6rts p\u00e5 portalerna i Tyskland under de senaste 24 timmarna, med vilken kvalitet och har det funnits n\u00e5gra problem med kanalen\/n\u00e4tverket?<\/li>\n<li>Hur v\u00e4l fungerar systemets funktionalitet (v\u00e5r utvidgning i C f\u00f6r PHP), kompilerad fr\u00e5n k\u00e4llkod i den senaste uppdateringen av tj\u00e4nsten och distribuerad till kunderna? Finns det n\u00e5gra segfaults?<\/li>\n<li>Lagrar PHP kunddata i minnet? Finns det n\u00e5gra fel p\u00e5 att \u00f6verskrida den tilldelade minnesm\u00e4ngden: \"utav minne\"? Hitta och \u00e5tg\u00e4rda.<\/li>\n<\/ul>\n<p>\nH\u00e4r \u00e4r ett konkret exempel. Trots noggrann och flerdimensionell testning uppstod en frustrerande och ov\u00e4ntad fel hos en kund i ett mycket ovanligt fall med skadad indata, vilket ledde till att sirenen lj\u00f6d och processen f\u00f6r dess snabba fixning inleddes.<\/p>\n<p><img decoding=\"async\" alt=\"Hur vi organiserade en h\u00f6gpresterande och kostnadseffektiv DataLake och varf\u00f6r just s\u00e5\" src=\"\/wp-content\/uploads\/2020\/08\/8a802dba41b5d1a85c0dc41dfbf8b84e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDessutom g\u00f6r Kibana det m\u00f6jligt att organisera aviseringar baserade p\u00e5 angivna h\u00e4ndelser och p\u00e5 kort tid b\u00f6rjade verktyget anv\u00e4ndas av dussintals anst\u00e4llda fr\u00e5n olika avdelningar \u2013 fr\u00e5n support och utveckling till QA.<\/p>\n<p>Aktiviteten hos varje avdelning inom f\u00f6retaget har blivit l\u00e4tt att sp\u00e5ra och m\u00e4ta \u2013 ist\u00e4llet f\u00f6r manuell analys av loggar p\u00e5 servrarna r\u00e4cker det att en g\u00e5ng st\u00e4lla in loggparsing och skicka dem till elastic-klustret f\u00f6r att njuta av att till exempel betrakta antalet s\u00e5lda tv\u00e5huvudiga kattungar, tryckta p\u00e5 3D-skrivare under den senaste m\u00e5naden.<\/p>\n<h3>Grundl\u00e4ggande aff\u00e4rsanalys<\/h3>\n<p>\nAlla vet att aff\u00e4rsanalys i f\u00f6retag ofta b\u00f6rjar med ett extremt aktivt anv\u00e4ndande av, ja, ja, Excel. Men det viktigaste \u00e4r att den inte slutar d\u00e4r. Molnversionen av Google Analytics g\u00f6r ocks\u00e5 sitt f\u00f6r att t\u00e4nda elden \u2013 man v\u00e4njer sig snabbt vid det goda.<\/p>\n<p>I v\u00e5rt harmoniskt v\u00e4xande f\u00f6retag har det b\u00f6rjat dyka upp \"profeter\" som arbetar med st\u00f6rre data p\u00e5 ett mer intensivt s\u00e4tt. Det har regelbundet uppst\u00e5tt behov av djupare och mer komplexa rapporter, och tack vare insatser fr\u00e5n olika avdelningar organiserades f\u00f6r ett tag sedan en enkel och praktisk l\u00f6sning \u2013 en koppling mellan ClickHouse och PowerBI.<\/p>\n<p>Under l\u00e5ng tid har denna flexibla l\u00f6sning varit till stor hj\u00e4lp, men alltmer har det blivit tydligt att ClickHouse inte \u00e4r o\u00e4ndlig och b\u00f6r inte missbrukas.<\/p>\n<p>Det \u00e4r viktigt att f\u00f6rst\u00e5 att ClickHouse, precis som Druid, Vertica och Amazon RedShift (som \u00e4r baserat p\u00e5 Postgres), \u00e4r analytiska motorer optimerade f\u00f6r ganska bekv\u00e4m analys (summeringar, aggregeringar, minimum-maxiumum per kolumn och lite m\u00f6jlighet till join), eftersom de \u00e4r organiserade f\u00f6r effektiv lagring av kolumner i relationsdatabaser, till skillnad fr\u00e5n det vi k\u00e4nner som MySQL och andra (rad-orienterade) databaser.<\/p>\n<p>I grunden \u00e4r ClickHouse bara en mer rymlig \"databas\", med inte s\u00e4rskilt bekv\u00e4m punktins\u00e4ttning (det \u00e4r avsiktligt, allt \u00e4r okej), men med trevlig analys och en upps\u00e4ttning intressanta kraftfulla funktioner f\u00f6r att arbeta med data. Ja, man kan till och med skapa en kluster - men du f\u00f6rst\u00e5r att det inte \u00e4r helt r\u00e4tt att spika med ett mikroskop, och vi b\u00f6rjade leta efter andra l\u00f6sningar.<\/p>\n<h3>Efterfr\u00e5gan p\u00e5 Python och analytiker<\/h3>\n<p>\nI v\u00e5rt f\u00f6retag finns det m\u00e5nga utvecklare som skriver kod n\u00e4stan varje dag i 10-20 \u00e5r p\u00e5 PHP, JavaScript, C#, C\/C++, Java, Go, Rust, Python, Bash. Det finns ocks\u00e5 m\u00e5nga erfarna systemadministrat\u00f6rer som har \u00f6verlevt mer \u00e4n en helt otrolig katastrof som inte passar in i statistikkens lagar (till exempel n\u00e4r de flesta diskarna i RAID-10 f\u00f6rst\u00f6rs vid en kraftig blixtnedslag). Under en l\u00e5ng tid var det oklart vad en \"analytiker p\u00e5 Python\" egentligen inneb\u00e4r. Python \u00e4r ju som PHP, bara med ett lite l\u00e4ngre namn och n\u00e5got f\u00e4rre sp\u00e5r av substanser som f\u00f6r\u00e4ndrar medvetandet i k\u00e4llkoden till tolken. Men allteftersom m\u00e5nga nya analytiska rapporter skapades blev de erfarna utvecklarna fortfarande mer medvetna om vikten av smal specialisering inom verktyg som numpy, pandas, matplotlib, seaborn.<br \/>\nEn avg\u00f6rande roll spelades troligen av den pl\u00f6tsliga medvetsl\u00f6sheten hos anst\u00e4llda vid kombinationen av orden \"logistisk regression\" och demonstrationen av effektiv rapportering p\u00e5 stora datam\u00e4ngder med hj\u00e4lp av, ja, pyspark.<\/p>\n<p>Apache Spark, dess funktionella paradigmer, som passar perfekt med relationsalgebra och m\u00f6jligheter, gjorde ett s\u00e5dant intryck p\u00e5 utvecklare som var vana vid MySQL, att behovet av att st\u00e4rka bataljonsraderna med erfarna analytiker blev lika tydligt som dagen.<\/p>\n<h3>Fortsatta f\u00f6rs\u00f6k att Apache Spark\/Hadoop skulle lyfta och vad som inte riktigt gick enligt planen<\/h3>\n<p>\nDet blev dock snart tydligt att det tydligen var n\u00e5got systematiskt fel med Spark, eller s\u00e5 beh\u00f6vde man bara tv\u00e4tta h\u00e4nderna b\u00e4ttre. Om Hadoop\/MapReduce\/Lucene-stacken skapades av tillr\u00e4ckligt erfarna programmerare, vilket \u00e4r tydligt om man ser p\u00e5 k\u00e4llkoden i Java eller Douglas Cutting id\u00e9er i Lucene, s\u00e5 \u00e4r Spark pl\u00f6tsligt skrivet i ett mycket omdiskuterat spr\u00e5k sett ur praktisk synvinkel och som nu inte utvecklas, n\u00e4mligen det exotiska spr\u00e5ket Scala. Den regelbundna nedcrashningen av ber\u00e4kningarna p\u00e5 Spark-klustret p\u00e5 grund av ologisk och inte s\u00e4rskilt genomskinlig hantering av minnesallokering f\u00f6r reduce-operationer (m\u00e5nga nycklar kommer p\u00e5 en g\u00e5ng) har skapat en aura av n\u00e5got som har stort potential att v\u00e4xa. Dessutom f\u00f6rv\u00e4rrades situationen av ett stort antal konstiga \u00f6ppna portar, tempor\u00e4ra filer som v\u00e4xte p\u00e5 de mest oklara st\u00e4llena och en massa jar-beroenden \u2013 vilket v\u00e4ckte en bekant k\u00e4nsla hos systemadministrat\u00f6rer: en intensiv avsky (kanske var det dags att tv\u00e4tta sina h\u00e4nder med tv\u00e5l).<\/p>\n<p>Vi \"\u00f6verlevde\" som resultat flera interna analysprojekt som aktivt anv\u00e4nde Apache Spark (inklusive Spark Streaming, Spark SQL) och Hadoop-ekosystemet (och s\u00e5 vidare). Trots att vi med tiden l\u00e4rde oss att \"lagra\" detta ganska v\u00e4l och \u00f6vervaka det, och \"det\" slutade praktiskt taget att pl\u00f6tsligt krascha p\u00e5 grund av f\u00f6r\u00e4ndringar i datakarakt\u00e4ren och obalanserat j\u00e4mnt hashning av RDD, blev lusten att f\u00e5 n\u00e5got f\u00e4rdigt, uppdaterat och administrerat n\u00e5gonstans i molnet allt starkare. Det var vid den tiden vi f\u00f6rs\u00f6kte anv\u00e4nda en f\u00e4rdig molnbaserad sammans\u00e4ttning fr\u00e5n Amazon Web Services \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/emr\/\">EMR<\/a><\/noindex> och f\u00f6rs\u00f6kte d\u00e4refter l\u00f6sa uppgifter p\u00e5 den. EMR \u00e4r Amazons beredda Apache Spark med extra mjukvara fr\u00e5n ekosystemet, ungef\u00e4r som Cloudera\/Hortonworks-sammans\u00e4ttningar.<\/p>\n<h3>Ett \"gummiband\" filsystem f\u00f6r analys \u2013 ett akut behov<\/h3>\n<p>\nErfarenheten av att \"lagra\" Hadoop\/Spark med br\u00e4nnskador p\u00e5 olika kroppsdelar har inte varit f\u00f6rg\u00e4ves. Behovet av att skapa ett enhetligt, kostnadseffektivt och p\u00e5litligt filsystem, som \u00e4r motst\u00e5ndskraftigt mot h\u00e5rdvarufel och d\u00e4r man kan lagra filer i olika format fr\u00e5n olika system och g\u00f6ra effektiva och rimligt snabba urval av data f\u00f6r rapporter, har blivit allt tydligare.<\/p>\n<p>Jag skulle ocks\u00e5 vilja att programuppdateringen f\u00f6r denna plattform inte ska bli en mardr\u00f6m likt en ny\u00e5rsnatt, d\u00e4r man st\u00e5r och l\u00e4ser 20-sidiga Java-traces och analyserar kilometers l\u00e5nga loggar fr\u00e5n klustret med hj\u00e4lp av Spark History Server och ett f\u00f6rstoringsglas med belysning. Jag \u00f6nskar mig ett enkelt och transparent verktyg som inte kr\u00e4ver att man regelbundet dyker ner under huven, om en utvecklare inte l\u00e4ngre kan k\u00f6ra en standard MapReduce-fr\u00e5ga p\u00e5 grund av att arbetsminnet f\u00f6r reduce-data f\u00f6rsvinner vid ett d\u00e5ligt valt partitionsalgoritm f\u00f6r de ursprungliga datan.<\/p>\n<h3>\u00c4r Amazon S3 en kandidat f\u00f6r DataLake?<\/h3>\n<p>\nErfarenheten av att arbeta med Hadoop\/MapReduce har l\u00e4rt mig att det beh\u00f6vs ett skalbart och p\u00e5litligt filsystem, samt skalbara arbetare som \"kommer\" n\u00e4rmare datan f\u00f6r att undvika att flytta data \u00f6ver n\u00e4tverket. Arbetskraften m\u00e5ste kunna l\u00e4sa data i olika format, men helst inte l\u00e4sa on\u00f6dig information och att man i f\u00f6rv\u00e4g kan lagra data i format som \u00e4r bekv\u00e4ma f\u00f6r arbetarna.<\/p>\n<p><b>\u00c5terigen \u2014 huvudid\u00e9n.<\/b> Det finns ingen vilja att \"lasta upp\" stora data till en enda klusteranalysmotor som f\u00f6rr eller senare \u00e4nd\u00e5 kommer att sjunka och som m\u00e5ste shardas p\u00e5 ett fult s\u00e4tt. Jag vill lagra filer, bara filer, i ett begripligt format och utf\u00f6ra effektiva analytiska fr\u00e5gor p\u00e5 dem med olika, men begripliga verktyg. Och antalet filer i olika format kommer bara att \u00f6ka. Det \u00e4r b\u00e4ttre att shard data snarare \u00e4n motorn. Vi beh\u00f6ver en skalbar och universell DataLake, beslutade vi...<\/p>\n<p>Vad h\u00e4nder om vi lagrar filer i det v\u00e4lk\u00e4nda och m\u00e5nga k\u00e4nner till det skalbara molnlagringssystemet Amazon S3, ist\u00e4llet f\u00f6r att bryta ner det med Hadoop?<\/p>\n<p>Sj\u00e4lvklart kan vi inte anv\u00e4nda personuppgifter, men vad om vi flyttar andra data dit och \"effektivt hanterar\" dem?<\/p>\n<h3>Klyster-biggdata-analytisk ekosystem av Amazon Web Services \u2014 med mycket enkla ord<\/h3>\n<p>\nEnligt v\u00e5r erfarenhet av att arbeta med AWS anv\u00e4nds Apache Hadoop\/MapReduce aktivt d\u00e4r under olika former, till exempel i tj\u00e4nsten DataPipeline (jag avundas mina kollegor som verkligen har l\u00e4rt sig att f\u00f6rbereda den korrekt). H\u00e4r har vi st\u00e4llt in backup fr\u00e5n olika tj\u00e4nster fr\u00e5n tabeller i DynamoDB:<br \/>\n<img decoding=\"async\" alt=\"Hur vi organiserade en h\u00f6gpresterande och kostnadseffektiv DataLake och varf\u00f6r just s\u00e5\" src=\"\/wp-content\/uploads\/2020\/08\/058dc54ed032a7bf3e9e129646202440.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOch de k\u00f6rs regelbundet p\u00e5 inbyggda kluster av Hadoop\/MapReduce som urverk redan i flera \u00e5r. \"St\u00e4ll in och gl\u00f6m\":<\/p>\n<p><img decoding=\"async\" alt=\"Hur vi organiserade en h\u00f6gpresterande och kostnadseffektiv DataLake och varf\u00f6r just s\u00e5\" src=\"\/wp-content\/uploads\/2020\/08\/a6569da8cafdb96c63250bb32bf51704.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDessutom kan man effektivt syssla med datastanism genom att lansera Jupiter-notebooks i molnet f\u00f6r analytiker och anv\u00e4nda dem f\u00f6r tr\u00e4ning och drifts\u00e4ttning av AI-modeller i AWS SageMaker. S\u00e5 h\u00e4r ser det ut hos oss:<\/p>\n<p><img decoding=\"async\" alt=\"Hur vi organiserade en h\u00f6gpresterande och kostnadseffektiv DataLake och varf\u00f6r just s\u00e5\" src=\"\/wp-content\/uploads\/2020\/08\/c825d979c9278a8edf8e1e747ef6def8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOch ja, man kan lansera en notebook i molnet f\u00f6r sig sj\u00e4lv eller f\u00f6r analytikerna och koppla den till ett Hadoop\/Spark-kluster, r\u00e4kna och sedan 'spika' allt:<\/p>\n<p><img decoding=\"async\" alt=\"Hur vi organiserade en h\u00f6gpresterande och kostnadseffektiv DataLake och varf\u00f6r just s\u00e5\" src=\"\/wp-content\/uploads\/2020\/08\/73cea18c54d2a9ce8d0441463991808b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet \u00e4r verkligen bekv\u00e4mt f\u00f6r enskilda analytiska projekt, och f\u00f6r vissa har vi framg\u00e5ngsrikt anv\u00e4nt EMR-tj\u00e4nsten f\u00f6r storskaliga ber\u00e4kningar och analyser. Men hur st\u00e5r det till med ett systeml\u00f6sning f\u00f6r DataLake, kommer det att fungera? Vid den tiden var vi p\u00e5 gr\u00e4nsen mellan hopp och f\u00f6rtvivlan och fortsatte att s\u00f6ka.<\/p>\n<h3>AWS Glue \u2014 snyggt paketerad Apache Spark 'p\u00e5 steroider'<\/h3>\n<p>\nDet visade sig att AWS har sin \"egna\" version av stacken \"Hive\/Pig\/Spark\". Hive:s roll, dvs. filkatalogen och dess typer i DataLake, utf\u00f6rs av tj\u00e4nsten \"Data catalog\", som inte d\u00f6ljer sin kompatibilitet med formatet Apache Hive. I denna tj\u00e4nst beh\u00f6ver man l\u00e4gga till information om var dina filer ligger och vilket format de \u00e4r i. Data kan ligga inte bara i s3, utan ocks\u00e5 i en databas, men det \u00e4r inte temat f\u00f6r detta inl\u00e4gg. S\u00e5 h\u00e4r \u00e4r v\u00e5r data katalog f\u00f6r DataLake organiserad:<\/p>\n<p><img decoding=\"async\" alt=\"Hur vi organiserade en h\u00f6gpresterande och kostnadseffektiv DataLake och varf\u00f6r just s\u00e5\" src=\"\/wp-content\/uploads\/2020\/08\/adb45d09698fdacbf41c86bbadde8bb2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFilerna \u00e4r registrerade, utm\u00e4rkt. Om filerna har uppdaterats \u2014 startar vi antingen manuellt eller schemalagt crawlers som uppdaterar informationen om dem fr\u00e5n sj\u00f6n och sparar. D\u00e4refter kan data fr\u00e5n sj\u00f6n bearbetas och resultaten exporteras n\u00e5gonstans. I det enklaste fallet \u2014 exporteras ocks\u00e5 till s3. Data kan bearbetas var som helst, men man f\u00f6resl\u00e5r att st\u00e4lla in bearbetningsprocessen p\u00e5 ett Apache Spark-kluster med ut\u00f6kade m\u00f6jligheter genom AWS Glue API. I grund och botten kan man ta den gamla, k\u00e4ra och vanliga koden i python med hj\u00e4lp av biblioteket pyspark och st\u00e4lla in dess k\u00f6rning p\u00e5 N noder i ett kluster av viss kapacitet med \u00f6vervakning, utan att gr\u00e4va i Hadoop:s inre och dra runt med docker-mock-kontainrar och l\u00f6sa beroendeproblem.<\/p>\n<p><b>\u00c5terigen \u2014 en enkel id\u00e9.<\/b> Det beh\u00f6vs ingen konfiguration av Apache Spark, man beh\u00f6ver bara skriva kod i python f\u00f6r pyspark, testa den lokalt p\u00e5 skrivbordet och sedan k\u00f6ra den p\u00e5 ett stort kluster i molnet, ange var de ursprungliga data ligger och var resultatet ska l\u00e4ggas. Ibland \u00e4r det beh\u00f6vligt och anv\u00e4ndbart, och s\u00e5 h\u00e4r \u00e4r det konfigurerat hos oss:<\/p>\n<p><img decoding=\"async\" alt=\"Hur vi organiserade en h\u00f6gpresterande och kostnadseffektiv DataLake och varf\u00f6r just s\u00e5\" src=\"\/wp-content\/uploads\/2020\/08\/dc03181573bb3f5cfcc3a8760bc7e07b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nS\u00e5, om man beh\u00f6ver g\u00f6ra ber\u00e4kningar p\u00e5 Spark-klustret med data i s3 \u2014 skriver man kod i python\/pyspark, testar och sen \u00e4r det fritt fram till molnet.<\/p>\n<p>Och hur st\u00e5r det till med orkestreringen? Och om en uppgift faller bort? Ja, det f\u00f6resl\u00e5s att man g\u00f6r en vacker pipeline i stil med Apache Pig och vi har till och med testat dem, men vi har valt att anv\u00e4nda v\u00e5r djupt anpassade orkestrering i PHP och JavaScript f\u00f6r tillf\u00e4llet (jag f\u00f6rst\u00e5r att detta kan skapa kognitiv dissonans, men det fungerar, \u00e5r efter \u00e5r utan fel).<\/p>\n<p><img decoding=\"async\" alt=\"Hur vi organiserade en h\u00f6gpresterande och kostnadseffektiv DataLake och varf\u00f6r just s\u00e5\" src=\"\/wp-content\/uploads\/2020\/08\/e00ed2047c5c6492e36fccc82e7278a3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Formatet p\u00e5 de filer som lagras i sj\u00f6n \u00e4r nyckeln till prestanda<\/h3>\n<p>\nDet \u00e4r mycket, mycket viktigt att f\u00f6rst\u00e5 ytterligare tv\u00e5 nyckelpunkter. F\u00f6r att dataf\u00f6rfr\u00e5gningarna f\u00f6r filerna i sj\u00f6n ska utf\u00f6ras s\u00e5 snabbt som m\u00f6jligt och f\u00f6r att prestandan inte ska f\u00f6rs\u00e4mras vid till\u00e4gg av ny information, m\u00e5ste man:<\/p>\n<ul>\n<li>Lagra kolumnerna i filerna separat (s\u00e5 att man inte beh\u00f6ver l\u00e4sa alla rader f\u00f6r att f\u00f6rst\u00e5 vad som finns i kolumnerna). F\u00f6r detta har vi valt parquet-formatet med komprimering.<\/li>\n<li>Det \u00e4r ocks\u00e5 viktigt att shardera filerna i mappar i stil med: spr\u00e5k, \u00e5r, m\u00e5nad, dag, vecka. Motorer som f\u00f6rst\u00e5r denna typ av sharding kommer endast att titta i de relevanta mapparna, utan att beh\u00f6va gr\u00e4va igenom all data.<\/li>\n<\/ul>\n<p>\nI grunden l\u00e4gger ni p\u00e5 det mest effektiva s\u00e4ttet av de ursprungliga data f\u00f6r de analytiska motorer som kan g\u00e5 selektivt in i de sharderade mapparna och l\u00e4sa endast de n\u00f6dv\u00e4ndiga kolumnerna fr\u00e5n filerna. Ni beh\u00f6ver inte \"ladda\" data n\u00e5gonstans (lagringen kommer att spricka) \u2013 bara l\u00e4gg dem direkt smart i filsystemet i r\u00e4tt format. Sj\u00e4lvklart ska det st\u00e5 klart att det inte \u00e4r s\u00e4rskilt f\u00f6rnuftigt att lagra en stor csv-fil i DataLake, som f\u00f6rst m\u00e5ste l\u00e4sas rad f\u00f6r rad av kluster f\u00f6r att extrahera kolumnerna \u2013 t\u00e4nk p\u00e5 de tv\u00e5 ovan n\u00e4mnda punkterna en g\u00e5ng till om det \u00e4r oklart varf\u00f6r allt detta.<\/p>\n<h3>AWS Athena \u2013 en \"dj\u00e4vul\" ur l\u00e5dan<\/h3>\n<p>\nOch h\u00e4r, n\u00e4r vi skapar en sj\u00f6, snubblar vi f\u00f6rbi Amazon Athena. Pl\u00f6tsligt visar det sig att om man ordentligt l\u00e4gger v\u00e5ra stora loggfiler i sharderade mappar i r\u00e4tt (parquet) kolumnformat, kan man mycket snabbt g\u00f6ra extremt informativa urval och skapa rapporter UTAN, utan Apache Spark\/Glue-kluster.<\/p>\n<p>Athena-motorn, som arbetar med data i s3, \u00e4r baserad p\u00e5 den legendariska <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/big-data\/what-is-presto\/\">Presto<\/a><\/noindex> \u2014 en representant av MPP (massive parallel processing) familjen av databehandlingsmetoder som h\u00e4mtar data d\u00e4r den finns, fr\u00e5n S3 och Hadoop till Cassandra och vanliga textfiler. Man beh\u00f6ver bara be Athena att k\u00f6ra en SQL-fr\u00e5ga, och sedan \"fungerar allt snabbt och av sig sj\u00e4lv\". Det \u00e4r v\u00e4rt att notera att Athena \u00e4r \"intelligent\", g\u00e5r bara till de n\u00f6dv\u00e4ndiga sharderade mapparna och l\u00e4ser bara de kolumner som efterfr\u00e5gas.<\/p>\n<p>Priser f\u00f6r f\u00f6rfr\u00e5gningar till Athena \u00e4r ocks\u00e5 intressanta. Vi betalar f\u00f6r <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/athena\/pricing\/\">volymen av skannade data<\/a><\/noindex>. Det vill s\u00e4ga, inte f\u00f6r antalet maskiner i klustret per minut, utan... f\u00f6r de data som faktiskt har skannats p\u00e5 100-500 maskiner som beh\u00f6vs f\u00f6r att utf\u00f6ra f\u00f6rfr\u00e5gan.<\/p>\n<p>Genom att endast beg\u00e4ra de n\u00f6dv\u00e4ndiga kolumnerna fr\u00e5n r\u00e4tt shardade mappar visade det sig att tj\u00e4nsten Athena kostar oss n\u00e5gra tiotals dollar per m\u00e5nad. V\u00e4ldigt bra, n\u00e4stan gratis, j\u00e4mf\u00f6rt med analys p\u00e5 kluster!<\/p>\n<p>S\u00e5 h\u00e4r shardas v\u00e5ra data i S3:<\/p>\n<p><img decoding=\"async\" alt=\"Hur vi organiserade en h\u00f6gpresterande och kostnadseffektiv DataLake och varf\u00f6r just s\u00e5\" src=\"\/wp-content\/uploads\/2020\/08\/00bd9ae48c1cd13f3c4f7d32692c9209.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSom ett resultat, p\u00e5 kort tid, b\u00f6rjade helt olika avdelningar inom f\u00f6retaget, fr\u00e5n informationss\u00e4kerhet till analys, aktivt g\u00f6ra f\u00f6rfr\u00e5gningar till Athena och snabbt, p\u00e5 sekunder, f\u00e5 anv\u00e4ndbara svar fr\u00e5n \"big data\" f\u00f6r ganska l\u00e5nga perioder: m\u00e5nader, halv\u00e5r och s\u00e5 vidare.<\/p>\n<p>Men vi gick vidare och b\u00f6rjade h\u00e4mta svar i molnet <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/athena\/latest\/ug\/connect-with-odbc.html\">via ODBC-drivrutinen<\/a><\/noindex>: en analytiker skriver en SQL-fr\u00e5ga i sin vanliga konsol, som \"f\u00f6r en spottstyver\" skannar data i S3 med 100-500 maskiner och ger tillbaka svaret vanligtvis p\u00e5 n\u00e5gra sekunder. Bekv\u00e4mt. Och snabbt. Det \u00e4r fortfarande sv\u00e5rt att tro.<\/p>\n<p>I slut\u00e4ndan, efter att ha beslutat att lagra data i S3, i ett effektivt kolumnformat och med rimlig shardning av data i mappar... fick vi en DataLake och en snabb och billig analytisk motor \u2014 gratis. Den blev mycket popul\u00e4r inom f\u00f6retaget, eftersom den f\u00f6rst\u00e5r SQL och arbetar m\u00e5nga g\u00e5nger snabbare \u00e4n genom start\/stopp\/inst\u00e4llningar av kluster. \"Och om resultatet \u00e4r detsamma, varf\u00f6r betala mer?\"<\/p>\n<p>En f\u00f6rfr\u00e5gan till Athena ser ut ungef\u00e4r s\u00e5 h\u00e4r. Om s\u00e5 \u00f6nskas kan man givetvis formulera en ganska <noindex><a rel=\"nofollow\" href=\"https:\/\/prestodb.io\/docs\/0.172\/index.html\">komplex och fler-sidig SQL-fr\u00e5ga<\/a><\/noindex>, men vi n\u00f6jer oss med en enkel gruppering. L\u00e5t oss se vilka svarskoder kunden hade f\u00f6r n\u00e5gra veckor sedan i loggarna fr\u00e5n webbserverns arbete och bekr\u00e4fta att det inte finns n\u00e5gra fel:<\/p>\n<p><img decoding=\"async\" alt=\"Hur vi organiserade en h\u00f6gpresterande och kostnadseffektiv DataLake och varf\u00f6r just s\u00e5\" src=\"\/wp-content\/uploads\/2020\/08\/30028991467b9e52f597faa617d374b5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Slutsatser<\/h3>\n<p>\nEfter att ha g\u00e5tt en v\u00e4g som visserligen inte varit l\u00e5ng men sm\u00e4rtsam, d\u00e4r vi st\u00e4ndigt har bed\u00f6mt risker, sv\u00e5righetsgrad och kostnad f\u00f6r st\u00f6d, har vi hittat en l\u00f6sning f\u00f6r DataLake och analys som forts\u00e4tter att gl\u00e4dja oss b\u00e5de med sin hastighet och \u00e4gandekostnad.<\/p>\n<p>Det visade sig att det \u00e4r helt m\u00f6jligt att bygga en effektiv, snabb och kostnadseffektiv DataLake f\u00f6r behoven hos helt olika avdelningar inom f\u00f6retaget, \u00e4ven f\u00f6r erfarna utvecklare som aldrig har arbetat som arkitekter och som inte kan rita fyrkanter och pilar, trots att de k\u00e4nner till 50 termer inom Hadoop-ekosystemet.<\/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>Om du inte vill anv\u00e4nda molnet och \u00e4lskar att st\u00f6dja, uppdatera och patcha \u00f6ppna projekt kan du bygga ett liknande system lokalt p\u00e5 billiga kontorsmaskiner med Hadoop och Presto ovanp\u00e5. Huvudsaken \u00e4r att inte stanna upp utan forts\u00e4tta fram\u00e5t, r\u00e4kna, leta efter enkla och klara l\u00f6sningar, s\u00e5 kommer allt att ordna sig! Lycka till alla och vi ses snart igen!<br \/>\n<br \/>K\u00e4lla: <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.4 - 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\/sv\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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\udd47Hur vi organiserade en h\u00f6gpresterande och kostnadseffektiv DataLake och varf\u00f6r just s\u00e5 | ProHoster","description":"Vi lever i en fantastisk tid d\u00e5 vi snabbt och enkelt kan koppla ihop flera f\u00e4rdiga \u00f6ppna verktyg, konfigurera dem med 'avst\u00e4ngd medvetenhet' enligt r\u00e5d fr\u00e5n stackoverflow, utan att g\u00e5 in i 'm\u00e5nga bokst\u00e4ver', och k\u00f6ra ig\u00e5ng.","canonical_url":"https:\/\/prohoster.info\/sv\/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":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/92508","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=92508"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/92508\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/92509"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=92508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=92508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=92508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}