{"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\/hu\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak","title":{"rendered":"Hogyan szervezt\u00fcnk meg egy nagy hat\u00e9konys\u00e1g\u00fa \u00e9s olcs\u00f3 DataLake-et, \u00e9s mi\u00e9rt pont \u00edgy?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ma csod\u00e1latos id\u0151ben \u00e9l\u00fcnk, amikor gyorsan \u00e9s egyszer\u0171en \u00f6sszekapcsolhatunk t\u00f6bb k\u00e9sz ny\u00edlt eszk\u00f6zt, be\u00e1ll\u00edthatjuk \u0151ket \"tudat n\u00e9lk\u00fcli\" m\u00f3don a stackoverflow tan\u00e1csai szerint, an\u00e9lk\u00fcl hogy m\u00e9lyebben belemer\u00fcln\u00e9nk a \"sok bet\u0171be\", \u00e9s kereskedelmi haszn\u00e1latba bocs\u00e1thatjuk \u0151ket. Amikor pedig friss\u00edteni vagy b\u0151v\u00edteni kell, vagy valaki v\u00e9letlen\u00fcl \u00fajraind\u00edt p\u00e1r g\u00e9pet \u2014 r\u00e1 kell j\u00f6nni, hogy kezd\u0151d\u00f6tt egy zavar\u00f3, rossz \u00e1lom, minden hirtelen t\u00fals\u00e1gosan bonyolult lett, nincs vissza\u00fat, a j\u00f6v\u0151 k\u00f6d\u00f6s, \u00e9s biztons\u00e1gosabb, ha a programoz\u00e1s helyett ink\u00e1bb m\u00e9heket tartunk \u00e9s sajtot k\u00e9sz\u00edt\u00fcnk.<\/p>\n<p>Nem v\u00e9letlen, hogy a tapasztaltabb koll\u00e9g\u00e1k, akik m\u00e1r sok hib\u00e1val a fej\u00fckben, ez\u00e1ltal \u0151sz\u00fcltek meg, n\u00e9zik az irre\u00e1lisan gyors kont\u00e9nertelep\u00edt\u00e9st \"kock\u00e1kban\" tucatnyi szerveren divatos nyelveken, amelyek be\u00e9p\u00edtett t\u00e1mogat\u00e1s\u00e1t ny\u00fajtj\u00e1k az aszinkron, nem blokkol\u00f3 I\/O-hoz \u2014 szer\u00e9nyen mosolyogva. Csendben tov\u00e1bbra is \u00fajraolvass\u00e1k a \"man ps\"-t, v\u00e9rz\u0151 szemmel m\u00e9lyednek az \"nginx\" forr\u00e1sk\u00f3dj\u00e1ba, \u00e9s \u00edrj\u00e1k-\u00edrj\u00e1k-\u00edrj\u00e1k az egys\u00e9gteszteket. A koll\u00e9g\u00e1k tudj\u00e1k, hogy a leg\u00e9rdekesebb dolgok m\u00e9g h\u00e1tra vannak, amikor \"mindez\" egyszer csak \u00e9jjel, szilveszterkor az \u00e9ghegyre ker\u00fcl. Csak a UNIX term\u00e9szet\u00e9nek m\u00e9ly meg\u00e9rt\u00e9se, a TCP\/IP \u00e1llapotok memoriz\u00e1lt t\u00e1bl\u00e1zata \u00e9s az alapvet\u0151 rendez\u00e9si-keres\u00e9si algoritmusok seg\u00edtenek nekik abban, hogy a harangok szav\u00e1ra visszahozz\u00e1k a rendszert az \u00e9letbe.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n\u00d3, igen, kicsit elt\u00e9rtem a t\u00e9m\u00e1t\u00f3l, de rem\u00e9lem meg tudtam osztani a v\u00e1rakoz\u00e1s \u00e1llapot\u00e1t.<br \/>\nMa szeretn\u00e9m megosztani tapasztalatainkat egy k\u00e9nyelmes \u00e9s olcs\u00f3 DataLake stack telep\u00edt\u00e9s\u00e9vel, amely a v\u00e1llalat k\u00fcl\u00f6nb\u00f6z\u0151 szervezeti egys\u00e9gei sz\u00e1m\u00e1ra megoldja a legt\u00f6bb elemz\u00e9si feladatot.<\/p>\n<p>N\u00e9h\u00e1ny id\u0151vel ezel\u0151tt arra a k\u00f6vetkeztet\u00e9sre jutottunk, hogy a v\u00e1llalatok egyre ink\u00e1bb sz\u00fcks\u00e9g\u00e9t \u00e9rzik a term\u00e9ki- \u00e9s m\u0171szaki analitika gy\u00fcm\u00f6lcseinek (nem is besz\u00e9lve a torta csereszny\u00e9ir\u0151l, mint a g\u00e9pi tanul\u00e1s) a trendek \u00e9s kock\u00e1zatok meg\u00e9rt\u00e9s\u00e9hez \u2014 egyre t\u00f6bb \u00e9s t\u00f6bb metrik\u00e1t kell gy\u0171jteni \u00e9s elemezni.<\/p>\n<h3>Alapvet\u0151 m\u0171szaki analitika a \"Bitrix24\"-ben<\/h3>\n<p>\nT\u00f6bb \u00e9vvel ezel\u0151tt, a \u201eBitrix24\u201d szolg\u00e1ltat\u00e1s bevezet\u00e9s\u00e9vel egy id\u0151ben akt\u00edvan fektett\u00fcnk id\u0151t \u00e9s er\u0151forr\u00e1sokat egy egyszer\u0171 \u00e9s megb\u00edzhat\u00f3 analitikai platform l\u00e9trehoz\u00e1s\u00e1ba, amely gyorsan seg\u00edtett l\u00e1tni az infrastrukt\u00far\u00e1ban l\u00e9v\u0151 probl\u00e9m\u00e1kat \u00e9s megtervezni a k\u00f6vetkez\u0151 l\u00e9p\u00e9st. Term\u00e9szetesen, az eszk\u00f6z\u00f6ket \u00e9rdemes volt k\u00e9szen kapni, egyszer\u0171 \u00e9s \u00e9rthet\u0151 form\u00e1ban. Ennek eredm\u00e9nyek\u00e9nt a nagios lett a v\u00e1lasztott eszk\u00f6z a monitoroz\u00e1sra, m\u00edg a munin az analitik\u00e1ra \u00e9s vizualiz\u00e1ci\u00f3ra. Most m\u00e1r t\u00f6bb ezer ellen\u0151rz\u00e9s\u00fcnk van a nagiosban, t\u00f6bb sz\u00e1z grafikon a muninban, \u00e9s koll\u00e9g\u00e1ink naponta \u00e9s sikeresen haszn\u00e1lj\u00e1k \u0151ket. A metrik\u00e1k \u00e9rthet\u0151ek, a grafikonok vil\u00e1gosak, a rendszer megb\u00edzhat\u00f3an m\u0171k\u00f6dik m\u00e1r \u00e9vek \u00f3ta, \u00e9s folyamatosan \u00faj tesztek \u00e9s grafikonok ker\u00fclnek be: \u00faj szolg\u00e1ltat\u00e1st ind\u00edtunk \u2014 hozz\u00e1adunk n\u00e9h\u00e1ny tesztet \u00e9s grafikont. J\u00f3 utat!<\/p>\n<h3>K\u00e9zben tartva \u2014 kiterjedt technikai analitika<\/h3>\n<p>\nA \u201emin\u00e9l gyorsabb\u201d inform\u00e1ci\u00f3szerz\u00e9s ir\u00e1nti ig\u00e9ny akt\u00edv k\u00eds\u00e9rletekhez vezetett egyszer\u0171 \u00e9s \u00e9rthet\u0151 eszk\u00f6z\u00f6kkel \u2014 pinba \u00e9s xhprof.<\/p>\n<p>A Pinba UDP csomagokban k\u00fcld\u00f6tt sz\u00e1munkra statisztik\u00e1kat a PHP weboldal r\u00e9szeinek m\u0171k\u00f6d\u00e9s\u00e9r\u0151l, \u00e9s val\u00f3s id\u0151ben l\u00e1thattuk a MySQL t\u00e1rol\u00f3ban (a pinba saj\u00e1t MySQL motorral rendelkezik az esem\u00e9nyek gyors analitik\u00e1ja \u00e9rdek\u00e9ben) a probl\u00e9m\u00e1k r\u00f6vid list\u00e1j\u00e1t, amelyeket azonnal tudtunk kezelni. Az xhprof automatikusan lehet\u0151v\u00e9 tette a leglassabb PHP-oldalak v\u00e9grehajt\u00e1si gr\u00e1fjainek \u00f6sszegy\u0171jt\u00e9s\u00e9t a kliensekt\u0151l, \u00e9s elemezhett\u00fck, hogy mi vezetett ehhez \u2014 nyugodtan, mik\u00f6zben te\u00e1t vagy valami er\u0151sebbet \u00f6nt\u00f6tt\u00fcnk.<\/p>\n<p>N\u00e9h\u00e1ny id\u0151vel ezel\u0151tt az eszk\u00f6zk\u00e9szlet\u00fcnket gazdag\u00edtotta egy viszonylag egyszer\u0171 \u00e9s \u00e9rthet\u0151 motor, amely az inverz indexel\u00e9si algoritmuson alapul, remek\u00fcl megval\u00f3s\u00edtva a legend\u00e1s Lucene k\u00f6nyvt\u00e1rban \u2014 Elastic\/Kibana. Az a egyszer\u0171 \u00f6tlet, hogy t\u00f6bb sz\u00e1lon dokumentumokat \u00edrunk az inverz Lucene indexbe az esem\u00e9nyek alapj\u00e1n a napl\u00f3kban, \u00e9s gyors keres\u00e9st v\u00e9gezhet\u00fcnk rajtuk a f\u00e1zisos oszt\u00e1lyoz\u00e1s r\u00e9v\u00e9n \u2014 val\u00f3ban hasznosnak bizonyult.<\/p>\n<p>B\u00e1r a Kibana vizualiz\u00e1ci\u00f3i meglehet\u0151sen technikai megjelen\u00e9s\u0171ek voltak a \u201efelfel\u00e9 sziv\u00e1rg\u00f3\u201d alacsony szint\u0171 fogalmakkal, mint p\u00e9ld\u00e1ul a \u201ebucket\u201d, \u00e9s a teljesen \u00fajra feltal\u00e1lt nyelv sem feled\u00e9sbe mer\u00fclt rel\u00e1ci\u00f3s algebr\u00e1nak \u2014 az eszk\u00f6z j\u00f3l seg\u00edtett minket a k\u00f6vetkez\u0151 feladatokban:<\/p>\n<ul>\n<li>H\u00e1ny PHP hiba t\u00f6rt\u00e9nt a Bitrix24 kliens\u00e9n a p1 port\u00e1lon az elm\u00falt \u00f3r\u00e1ban, \u00e9s milyen hib\u00e1k voltak ezek? \u00c9rts\u00fck meg, bocs\u00e1ssuk meg \u00e9s gyorsan jav\u00edtsuk ki.<\/li>\n<li>H\u00e1ny videoh\u00edv\u00e1st v\u00e9geztek el a n\u00e9met port\u00e1lokon az elm\u00falt 24 \u00f3r\u00e1ban, milyen min\u0151s\u00e9gben, \u00e9s voltak-e neh\u00e9zs\u00e9gek a csatorn\u00e1val\/h\u00e1l\u00f3zattal?<\/li>\n<li>Mennyire j\u00f3l m\u0171k\u00f6dik a rendszer funkci\u00f3ja (a PHP-hez k\u00e9sz\u00fclt kiterjeszt\u00e9s\u00fcnk), amelyet a legut\u00f3bbi szolg\u00e1ltat\u00e1si friss\u00edt\u00e9s sor\u00e1n ford\u00edtottunk a forr\u00e1st k\u00f3dokb\u00f3l \u00e9s kiadtunk az \u00fcgyfeleknek? Nincsenek szegfaultok?<\/li>\n<li>Felker\u00fclnek-e az \u00fcgyfelek adatai a PHP mem\u00f3ri\u00e1j\u00e1ba? Nincsenek-e a folyamatok \u00e1ltal ig\u00e9nyelt mem\u00f3ria t\u00fall\u00e9p\u00e9si hib\u00e1k: \u00abnincs elegend\u0151 mem\u00f3ria\u00bb? Meg kell tal\u00e1lni \u00e9s semleges\u00edteni.<\/li>\n<\/ul>\n<p>\nItt egy konkr\u00e9t p\u00e9lda. A gondos \u00e9s t\u00f6bbszint\u0171 tesztel\u00e9s ellen\u00e9re, egy \u00fcgyf\u00e9ln\u00e9l, egy nagyon szokatlan esetben \u00e9s s\u00e9r\u00fclt bemeneti adatok mellett v\u00e1ratlan hiba l\u00e9pett fel, megsz\u00f3lalt a szir\u00e9na \u00e9s megkezd\u0151d\u00f6tt a gyors jav\u00edt\u00e1si folyamat:<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan szervezt\u00fcnk meg egy nagy hat\u00e9konys\u00e1g\u00fa \u00e9s olcs\u00f3 DataLake-et, \u00e9s mi\u00e9rt pont \u00edgy?\" src=\"\/wp-content\/uploads\/2020\/08\/8a802dba41b5d1a85c0dc41dfbf8b84e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nR\u00e1ad\u00e1sul a Kibana lehet\u0151v\u00e9 teszi, hogy \u00e9rtes\u00edt\u00e9seket \u00e1ll\u00edtsunk be a megadott esem\u00e9nyekr\u0151l, \u00e9s r\u00f6vid id\u0151 alatt a c\u00e9gn\u00e9l t\u00f6bb tucat alkalmazott kezdte haszn\u00e1lni az eszk\u00f6zt a k\u00fcl\u00f6nb\u00f6z\u0151 oszt\u00e1lyokb\u00f3l \u2014 a m\u0171szaki t\u00e1mogat\u00e1st\u00f3l \u00e9s a fejleszt\u00e9st\u0151l a QA-ig.<\/p>\n<p>B\u00e1rmely oszt\u00e1ly aktivit\u00e1s\u00e1t a c\u00e9gen bel\u00fcl k\u00e9nyelmesen nyomon k\u00f6vethet\u0151 \u00e9s m\u00e9rhet\u0151 lett \u2014 a szerverek napl\u00f3inak k\u00e9zi elemz\u00e9se helyett elegend\u0151 egyszer be\u00e1ll\u00edtani a napl\u00f3k feldolgoz\u00e1s\u00e1t \u00e9s azok elk\u00fcld\u00e9s\u00e9t az elastic klaszterbe, hogy \u00e9lvezhess\u00fcnk p\u00e9ld\u00e1ul a Kibana ir\u00e1ny\u00edt\u00f3pultj\u00e1n l\u00e1tott k\u00e9tnyak\u00fa cic\u00e1k sz\u00e1m\u00e1nak megfigyel\u00e9s\u00e9t, amelyeket a m\u00falt holdh\u00f3napban nyomtattak 3D nyomtat\u00f3val.<\/p>\n<h3>Alapvet\u0151 \u00fczleti elemz\u00e9s<\/h3>\n<p>\nMindenki tudja, hogy gyakran az \u00fczleti elemz\u00e9s a c\u00e9gekn\u00e9l extr\u00e9m akt\u00edv Excel haszn\u00e1lattal kezd\u0151dik. De a legfontosabb, hogy ne \u00e9rjen v\u00e9get ott. Az \u00e9g\u0151 olajhoz m\u00e9g a felh\u0151 alap\u00fa Google Analytics is j\u00f3l hozz\u00e1j\u00e1rul \u2014 gyorsan hozz\u00e1szokik az ember a j\u00f3hoz.<\/p>\n<p>A mi harmonikusan fejl\u0151d\u0151 c\u00e9g\u00fcnkn\u00e9l egyre t\u00f6bbsz\u00f6r jelentek meg itt-ott az \u00abpr\u00f3f\u00e9t\u00e1k\u00bb a nagyobb adatokkal val\u00f3 intenz\u00edvebb munk\u00e1r\u00f3l. Rendszeresen felmer\u00fcltek ig\u00e9nyek a m\u00e9lyebb \u00e9s sokoldal\u00fabb jelent\u00e9sek ir\u00e1nt, \u00e9s a k\u00fcl\u00f6nb\u00f6z\u0151 oszt\u00e1lyok munkat\u00e1rsai n\u00e9h\u00e1ny h\u00f3nappal ezel\u0151tt egy egyszer\u0171 \u00e9s praktikus megold\u00e1st alak\u00edtottak ki \u2013 a ClickHouse \u00e9s a PowerBI \u00f6sszekapcsol\u00e1s\u00e1t.<\/p>\n<p>El\u00e9g hossz\u00fa ideje ez a rugalmas megold\u00e1s remek\u00fcl seg\u00edtett, de fokozatosan meg\u00e9rtett\u00fck, hogy a ClickHouse nem gumib\u00f3l k\u00e9sz\u00fclt, \u00e9s nem lehet vele \u00fagy b\u00e1nni.<\/p>\n<p>Fontos j\u00f3l meg\u00e9rteni, hogy a ClickHouse, ak\u00e1rcsak a Druid, a Vertica \u00e9s az Amazon RedShift (amely PostgreSQL alap\u00fa), elemz\u0151 motorok, amelyek a viszonylag k\u00e9nyelmes elemz\u00e9sekre (\u00f6sszegek, aggreg\u00e1l\u00e1sok, minimum-maxim\u00e1lis \u00e9rt\u00e9kek oszlopon \u00e9s kis mennyis\u00e9g\u0171 join) optimaliz\u00e1ltak, mivel hat\u00e9kony oszlopos t\u00e1rol\u00e1sra szervez\u0151dtek, elt\u00e9r\u0151en a j\u00f3l ismert MySQL-t\u0151l \u00e9s m\u00e1s (soros alap\u00fa) adatb\u00e1zisokt\u00f3l.<\/p>\n<p>L\u00e9nyeg\u00e9ben a ClickHouse csak egy nagyobb kapacit\u00e1s\u00fa \"adatb\u00e1zis\", nem t\u00fal k\u00e9nyelmes k\u00f6zvetlen adatbevitellel (ez \u00edgy van kital\u00e1lva, minden rendben), de kellemes elemz\u00e9ssel \u00e9s \u00e9rdekes, er\u0151teljes funkci\u00f3k k\u00e9szlet\u00e9vel az adatok kezel\u00e9s\u00e9re. Igen, lehet m\u00e9g klasztert is l\u00e9trehozni \u2014 de \u00e9rted, hogy nem eg\u00e9szen hely\u00e9nval\u00f3 sz\u00f6gbeverni mikroszk\u00f3ppal, \u00e9s kezdt\u00fcnk m\u00e1s megold\u00e1sok ut\u00e1n n\u00e9zni.<\/p>\n<h3>Kereslet a Python \u00e9s az elemz\u0151k ir\u00e1nt<\/h3>\n<p>\nC\u00e9g\u00fcnkn\u00e9l sok fejleszt\u0151 van, akik szinte minden nap \u00edrnak k\u00f3dot, m\u00e1r 10-20 \u00e9ve PHP, JavaScript, C#, C\/C++, Java, Go, Rust, Python, Bash nyelveken. Sz\u00e1mos tapasztalt rendszergazda is dolgozik n\u00e1lunk, akik \u00e1t\u00e9lt\u00e9k m\u00e1r a legt\u00f6k\u00e9letesebb statisztikai t\u00f6rv\u00e9nyeket meghalad\u00f3 elk\u00e9peszt\u0151 katasztr\u00f3f\u00e1kat (p\u00e9ld\u00e1ul amikor a legt\u00f6bb lemez t\u00f6nkremegy RAID-10-ben egy er\u0151s vill\u00e1ml\u00e1s k\u00f6vetkezt\u00e9ben). Ilyen k\u00f6r\u00fclm\u00e9nyek k\u00f6z\u00f6tt sok\u00e1ig nem volt vil\u00e1gos, hogy mi is az a \"Python alap\u00fa elemz\u0151\". A Python gyakorlatilag a PHP, csak a neve kicsit hosszabb, \u00e9s a tudatm\u00f3dos\u00edt\u00f3 anyagok n\u00e9mileg kevesebb nyoma tal\u00e1lhat\u00f3 a ford\u00edt\u00f3 forr\u00e1sk\u00f3dj\u00e1ban. Azonban ahogy egyre t\u00f6bb elemz\u0151 jelent\u00e9s k\u00e9sz\u00fclt, a tapasztalt fejleszt\u0151k egyre ink\u00e1bb felismert\u00e9k a sz\u0171k specializ\u00e1ci\u00f3 fontoss\u00e1g\u00e1t olyan eszk\u00f6z\u00f6kben, mint a numpy, pandas, matplotlib, seaborn.<br \/>\nVal\u00f3sz\u00edn\u0171leg m\u00e9rf\u00f6ldk\u0151nek bizonyultak a koll\u00e9g\u00e1k hirtelen \u00e1jul\u00e1sai a \"logisztikai regresszi\u00f3\" szavak hallat\u00e1n, valamint egy eredm\u00e9nyes jelent\u00e9sk\u00e9sz\u00edt\u00e9s demonstr\u00e1l\u00e1sa nagy adathalmazokkal a pyspark seg\u00edts\u00e9g\u00e9vel.<\/p>\n<p>Az Apache Spark \u00e9s a funkcion\u00e1lis paradigma, amely remek\u00fcl illeszkedik a rel\u00e1ci\u00f3s algebr\u00e1hoz, olyan benyom\u00e1st tett a MySQL-hez szokott fejleszt\u0151kre, hogy vil\u00e1goss\u00e1 v\u00e1lt, mennyire sz\u00fcks\u00e9ges tapasztalt elemz\u0151k bevon\u00e1sa.<\/p>\n<h3>Az Apache Spark\/Hadoop tov\u00e1bbi pr\u00f3b\u00e1lkoz\u00e1sai, hogy felemelkedjenek, nem eg\u00e9szen a tervek szerint alakultak.<\/h3>\n<p>\nHamarosan nyilv\u00e1nval\u00f3v\u00e1 v\u00e1lt, hogy a Spark k\u00f6r\u00fcl valami rendszerszinten nem stimmel, vagy csak jobban kellene kezet mosni. M\u00edg a Hadoop\/MapReduce\/Lucene stacket el\u00e9g tapasztalt programoz\u00f3k \u00edrt\u00e1k \u2014 ami nyilv\u00e1nval\u00f3, ha az ember alaposan megn\u00e9zi a Java forr\u00e1sk\u00f3dokat vagy Doug Cutting \u00f6tleteit a Lucene-ben \u2014 addig a Spark, v\u00e1ratlanul, egy nagyon vitatott \u00e9s jelenleg nem fejl\u0151d\u0151 egzotikus Scala nyelven k\u00e9sz\u00fclt. A sz\u00e1m\u00edt\u00e1sok rendszeres le\u00e1ll\u00e1sa a Spark klaszteren a reduce m\u0171veletekhez t\u00f6rt\u00e9n\u0151 mem\u00f3riaallok\u00e1ci\u00f3 logik\u00e1tlan \u00e9s nem \u00e1tl\u00e1that\u00f3 m\u0171k\u00f6d\u00e9se miatt (sok kulcs \u00e9rkezik egyszerre) \u2014 valami olyasmit teremtett k\u00f6r\u00fcl\u00f6tte, ami sz\u00e1m\u00e1ra van hova fejl\u0151dni. Tov\u00e1bb\u00e1, a helyzetet s\u00falyosb\u00edtotta a sok furcsa nyitott port, ideiglenes f\u00e1jl, amelyek a leg\u00e9rthetetlenebb helyeken n\u00f6vekedtek, \u00e9s a jar-f\u00fcgg\u0151s\u00e9gek \u2014 ami a rendszergazd\u00e1kban egy j\u00f3l ismert, gyermekkori \u00e9rz\u00e9st v\u00e1ltott ki: vad haragot (lehet, hogy jobban kellett volna kezet mosni szappannal).<\/p>\n<p>Mi, ennek eredm\u00e9nyek\u00e9nt, \u201e\u00e1t\u00e9lt\u00fck\u201d t\u00f6bb bels\u0151 elemz\u0151 projektet, amelyek akt\u00edvan haszn\u00e1lt\u00e1k az Apache Sparkot (t\u00f6bbek k\u00f6z\u00f6tt a Spark Streaming, Spark SQL) \u00e9s a Hadoop \u00f6kosziszt\u00e9m\u00e1t (stb.). Annak ellen\u00e9re, hogy id\u0151vel megtanultunk \u201eezt\u201d j\u00f3l elk\u00e9sz\u00edteni \u00e9s monitorozni, \u00e9s \u201eez\u201d szinte teljesen meg\u00e1llt hirtelen \u00f6sszeomlani az adatok jellege \u00e9s az RDD egyenletes hash-el\u00e9s\u00e9nek eloszl\u00e1si zavarai miatt, a v\u00e1gy, hogy valami m\u00e1r k\u00e9sz, friss\u00edtett \u00e9s valahol a felh\u0151ben adminisztr\u00e1lt megold\u00e1st keress\u00fcnk, egyre er\u0151sebb\u00e9 v\u00e1lt. Ekkor pr\u00f3b\u00e1ltuk ki az Amazon Web Services k\u00e9sz felh\u0151s csomagj\u00e1t \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/emr\/\">EMR<\/a><\/noindex> \u00e9s k\u00e9s\u0151bb ezen kezdt\u00fcnk el m\u00e1r a feladatokat megoldani. Az EMR az Amazon \u00e1ltal elk\u00e9sz\u00edtett Apache Spark plusz szoftverekkel az \u00f6kosziszt\u00e9m\u00e1b\u00f3l, k\u00f6r\u00fclbel\u00fcl \u00fagy, mint a Cloudera\/Hortonworks csomagok.<\/p>\n<h3>\u201eGum\u00edrozott\u201d f\u00e1jlt\u00e1rol\u00f3 az elemz\u00e9shez \u2014 \u00e9get\u0151 sz\u00fcks\u00e9glet<\/h3>\n<p>\nA Hadoop\/Spark \u201eelk\u00e9sz\u00edt\u00e9s\u00e9nek\u201d tapasztalata, k\u00fcl\u00f6nf\u00e9le testr\u00e9szeinken szerzett \u00e9g\u00e9si s\u00e9r\u00fcl\u00e9sekkel, nem m\u00falt el nyomtalanul. Egyre vil\u00e1gosabb\u00e1 v\u00e1lt az ig\u00e9ny egy egys\u00e9ges, olcs\u00f3 \u00e9s megb\u00edzhat\u00f3 f\u00e1jlt\u00e1rol\u00f3 l\u00e9trehoz\u00e1s\u00e1ra, amely ellen\u00e1ll\u00f3 az\u786c\u4ef6\u6545\u969c miatt, \u00e9s amelyben k\u00fcl\u00f6nb\u00f6z\u0151 form\u00e1tum\u00fa f\u00e1jlokat lehet t\u00e1rolni k\u00fcl\u00f6nb\u00f6z\u0151 rendszerekb\u0151l, \u00e9s hat\u00e9kony \u00e9s \u00e9sszer\u0171 id\u0151n bel\u00fcl v\u00e9grehajthat\u00f3 lek\u00e9rdez\u00e9sek k\u00e9sz\u00edthet\u0151k ezek alapj\u00e1n a jelent\u00e9sekhez.<\/p>\n<p>Azt is szeretn\u00e9m, ha a szoftverfriss\u00edt\u00e9s ezen a platform\u00e1n nem v\u00e1lna \u00faj\u00e9vi \u00e9jszakai r\u00e9m\u00e1lomm\u00e1, amikor 20 oldalas Java stack trace-eket kell olvasni, \u00e9s t\u00f6bb kilom\u00e9ternyi r\u00e9szletes klaszteres napl\u00f3elemz\u00e9st kell v\u00e9gezni a Spark History Server seg\u00edts\u00e9g\u00e9vel \u00e9s egy nagy\u00edt\u00f3val. J\u00f3 lenne egy egyszer\u0171 \u00e9s \u00e1tl\u00e1that\u00f3 eszk\u00f6z, amely nem ig\u00e9nyel rendszeres ben\u00e9z\u00e9st a motor al\u00e1, ha a fejleszt\u0151nek le\u00e1ll a megszokott MapReduce k\u00e9rd\u00e9se, amikor a reduce adatok mem\u00f3ri\u00e1b\u00f3l val\u00f3 kies\u00e9se miatt nem siker\u00fclt a megfelel\u0151 partici\u00f3s algoritmus v\u00e1laszt\u00e1sa.<\/p>\n<h3>Az Amazon S3 a DataLake jel\u00f6ltje?<\/h3>\n<p>\nA Hadoop\/MapReduce tapasztalat megtan\u00edtotta, hogy sz\u00fcks\u00e9g van egy sk\u00e1l\u00e1zhat\u00f3, megb\u00edzhat\u00f3 f\u00e1jlrendszerre \u00e9s f\u00f6l\u00f6tte sk\u00e1l\u00e1zhat\u00f3 munk\u00e1sokra, akik k\u00f6zelebb \u201ej\u00f6nnek\u201d az adatokhoz, hogy ne kelljen az adatokat a h\u00e1l\u00f3zaton kereszt\u00fcl szaladg\u00e1lni. A munk\u00e1soknak k\u00e9pesnek kell lenni\u00fck k\u00fcl\u00f6nb\u00f6z\u0151 form\u00e1tum\u00fa adatok olvas\u00e1s\u00e1ra, de lehet\u0151leg ne olvassanak el felesleges inform\u00e1ci\u00f3kat, \u00e9s lehet\u0151s\u00e9g legyen az adatok t\u00e1rol\u00e1s\u00e1ra a munk\u00e1sok sz\u00e1m\u00e1ra k\u00e9nyelmes form\u00e1tumokban.<\/p>\n<p><b>M\u00e9g egyszer \u2014 az alap\u00f6tlet.<\/b> Nincs kedvem nagy adatokat betenni egy egys\u00e9ges, klaszter alap\u00fa analitikai motorba, amely \u00fagyis el\u0151bb-ut\u00f3bb el fog fulladni \u00e9s cs\u00fany\u00e1n shardolni kell. Az adatok t\u00e1rol\u00e1s\u00e1ra szeretn\u00e9k f\u00e1jlokat, egyszer\u0171 f\u00e1jlokat, \u00e9rthet\u0151 form\u00e1tumban, \u00e9s hat\u00e9kony analitikai lek\u00e9rdez\u00e9seket v\u00e9gezni rajtuk k\u00fcl\u00f6nb\u00f6z\u0151, de \u00e9rthet\u0151 eszk\u00f6z\u00f6kkel. \u00c9s a f\u00e1jlok k\u00fcl\u00f6nb\u00f6z\u0151 form\u00e1tumokban egyre csak gyarapodnak. Jobb lenne a forr\u00e1st shardolni, mint a motort. Egy sk\u00e1l\u00e1zhat\u00f3 \u00e9s univerz\u00e1lis DataLake-re van sz\u00fcks\u00e9g\u00fcnk, ezt d\u00f6nt\u00f6tt\u00fck el...<\/p>\n<p>Mi lenne, ha az f\u00e1jlokat egy ismer\u0151s \u00e9s sokak \u00e1ltal ismert sk\u00e1l\u00e1zhat\u00f3 felh\u0151t\u00e1rol\u00f3ban, az Amazon S3-ban t\u00e1roln\u00e1nk, an\u00e9lk\u00fcl hogy saj\u00e1t magunknak kellene a h\u00fast s\u00fct\u00f6getni a Hadoop-b\u00f3l?<\/p>\n<p>Nyilv\u00e1nval\u00f3, hogy a szem\u00e9lyes adatok \u201etiltottak\u201d, de m\u00e1s adatokat, ha oda kihelyez\u00fcnk, \u00e9s \u201ehat\u00e9konyan mozgatunk\u201d?<\/p>\n<h3>A klaszter-alap\u00fa nagy adatelemz\u0151 \u00f6kosziszt\u00e9ma az Amazon Web Services-en \u2014 nagyon egyszer\u0171 szavakkal.<\/h3>\n<p>\nTapasztalatunk szerint az AWS-n\u00e9l m\u00e1r r\u00e9g\u00f3ta \u00e9s akt\u00edvan haszn\u00e1lj\u00e1k k\u00fcl\u00f6nb\u00f6z\u0151 form\u00e1kban az Apache Hadoop\/MapReduce-t, p\u00e9ld\u00e1ul a DataPipeline szolg\u00e1ltat\u00e1sban (irigylem a koll\u00e9g\u00e1kat, tudj\u00e1k, hogyan kell ezt j\u00f3l elk\u00e9sz\u00edteni). Itt a k\u00fcl\u00f6nb\u00f6z\u0151 szolg\u00e1ltat\u00e1sokb\u00f3l DynamoDB t\u00e1bl\u00e1kb\u00f3l be\u00e1ll\u00edtottuk a biztons\u00e1gi ment\u00e9seket:<br \/>\n<img decoding=\"async\" alt=\"Hogyan szervezt\u00fcnk meg egy nagy hat\u00e9konys\u00e1g\u00fa \u00e9s olcs\u00f3 DataLake-et, \u00e9s mi\u00e9rt pont \u00edgy?\" src=\"\/wp-content\/uploads\/2020\/08\/058dc54ed032a7bf3e9e129646202440.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c9s ezek \u00e9veken \u00e1t, rendszeresen, mint az \u00f3ram\u0171 m\u0171k\u00f6dnek a be\u00e9p\u00edtett Hadoop\/MapReduce klasztereken. \u201eBe\u00e1ll\u00edtottam \u00e9s elfelejtettem\u201d:<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan szervezt\u00fcnk meg egy nagy hat\u00e9konys\u00e1g\u00fa \u00e9s olcs\u00f3 DataLake-et, \u00e9s mi\u00e9rt pont \u00edgy?\" src=\"\/wp-content\/uploads\/2020\/08\/a6569da8cafdb96c63250bb32bf51704.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEzen k\u00edv\u00fcl hat\u00e9konyan foglalkozhatunk adatkezel\u00e9ssel, ha fel\u00e1ll\u00edtunk Jupiter-notebookokat az analitik\u00e1k sz\u00e1m\u00e1ra a felh\u0151ben, \u00e9s az AWS SageMaker szolg\u00e1ltat\u00e1st haszn\u00e1ljuk az AI-modellek betan\u00edt\u00e1s\u00e1ra \u00e9s telep\u00edt\u00e9s\u00e9re. \u00cdgy n\u00e9z ki n\u00e1lunk:<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan szervezt\u00fcnk meg egy nagy hat\u00e9konys\u00e1g\u00fa \u00e9s olcs\u00f3 DataLake-et, \u00e9s mi\u00e9rt pont \u00edgy?\" src=\"\/wp-content\/uploads\/2020\/08\/c825d979c9278a8edf8e1e747ef6def8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIgen, fel\u00e1ll\u00edthatunk egy notebookot a felh\u0151ben, \u00e9s csatlakoztathatjuk egy Hadoop\/Spark klaszterhez, elv\u00e9gezhetj\u00fck a sz\u00e1m\u00edt\u00e1sokat, majd mindent \"megjel\u00f6lhet\u00fcnk\":<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan szervezt\u00fcnk meg egy nagy hat\u00e9konys\u00e1g\u00fa \u00e9s olcs\u00f3 DataLake-et, \u00e9s mi\u00e9rt pont \u00edgy?\" src=\"\/wp-content\/uploads\/2020\/08\/73cea18c54d2a9ce8d0441463991808b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVal\u00f3ban k\u00e9nyelmes egyes analitikai projektek sz\u00e1m\u00e1ra, \u00e9s n\u00e9h\u00e1ny esetben sikeresen haszn\u00e1ltuk az EMR szolg\u00e1ltat\u00e1st nagyszab\u00e1s\u00fa sz\u00e1m\u00edt\u00e1sokhoz \u00e9s elemz\u00e9sekhez. De mi a helyzet a DataLake rendszermegold\u00e1ssal, siker\u00fclni fog? Ekkor m\u00e1r a rem\u00e9ny \u00e9s a k\u00e9ts\u00e9gbees\u00e9s hat\u00e1r\u00e1n voltunk, \u00e9s tov\u00e1bb kerest\u00fck a megold\u00e1st.<\/p>\n<h3>Az AWS Glue \u2013 gondosan csomagolt Apache Spark \"szteroidokon\".<\/h3>\n<p>\nKider\u00fclt, hogy az AWS-nek van egy \"saj\u00e1t\" verzi\u00f3ja a Hive\/Pig\/Spark stacknek. A Hive szerep\u00e9t, azaz a f\u00e1jlok \u00e9s t\u00edpusok katal\u00f3gus\u00e1t a DataLake-ben a \"Data catalog\" szolg\u00e1ltat\u00e1s t\u00f6lti be, amely nem titkolja, hogy kompatibilis az Apache Hive form\u00e1tummal. A szolg\u00e1ltat\u00e1sba inform\u00e1ci\u00f3t kell adni arr\u00f3l, hogy hol tal\u00e1lhat\u00f3k a f\u00e1jlok, \u00e9s milyen form\u00e1tumban vannak. Az adatok nemcsak az S3-ban lehetnek, hanem egy adatb\u00e1zisban is, de err\u0151l nem ezen a poszton. \u00cdgy van szervezve a DataLake adat \u043a\u0430\u0442\u0430\u043b\u00f3gus n\u00e1lunk:<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan szervezt\u00fcnk meg egy nagy hat\u00e9konys\u00e1g\u00fa \u00e9s olcs\u00f3 DataLake-et, \u00e9s mi\u00e9rt pont \u00edgy?\" src=\"\/wp-content\/uploads\/2020\/08\/adb45d09698fdacbf41c86bbadde8bb2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA f\u00e1jlok regisztr\u00e1lva vannak, remek. Ha a f\u00e1jlok friss\u00fcltek \u2013 elind\u00edtjuk k\u00e9zzel vagy \u00fctemezve a crawler-eket, amelyek friss\u00edtik az inform\u00e1ci\u00f3t a t\u00f3r\u00f3l \u00e9s t\u00e1rolj\u00e1k. A tov\u00e1bbiakban az adatok kezelhet\u0151k, \u00e9s az eredm\u00e9nyeket valahova ki lehet export\u00e1lni. A legegyszer\u0171bb esetben \u2013 szint\u00e9n az S3-ba export\u00e1lunk. Az adatkezel\u00e9st b\u00e1rhol el lehet v\u00e9gezni, de javasolt be\u00e1ll\u00edtani a feldolgoz\u00e1si folyamatot egy Apache Spark klaszteren, kihaszn\u00e1lva az AWS Glue API kib\u0151v\u00edtett lehet\u0151s\u00e9geit. Alapvet\u0151en haszn\u00e1lhatjuk a j\u00f3l bev\u00e1lt Python k\u00f3dot a pyspark k\u00f6nyvt\u00e1rral, \u00e9s be\u00e1ll\u00edthatjuk annak v\u00e9grehajt\u00e1s\u00e1t egy bizonyos teljes\u00edtm\u00e9ny\u0171 klaszter N csom\u00f3pontj\u00e1n, fel\u00fcgyelettel, an\u00e9lk\u00fcl, hogy a Hadoop m\u00e9ly\u00e9re \u00e1sn\u00e1nk, \u00e9s a kont\u00e9nerek, valamint a f\u00fcgg\u0151s\u00e9gek konfliktusainak kezel\u00e9s\u00e9vel foglalkozn\u00e1nk.<\/p>\n<p><b>M\u00e9g egyszer \u2013 egy egyszer\u0171 \u00f6tlet.<\/b> Nem kell be\u00e1ll\u00edtani az Apache Spark-ot, csak Python k\u00f3dot kell \u00edrni a pysparkhoz, helyben a munkaasztalon tesztelni, majd elind\u00edtani egy nagy klaszteren a felh\u0151ben, megadva, hol tal\u00e1lhat\u00f3k a forr\u00e1sadatok, \u00e9s hov\u00e1 ker\u00fclj\u00f6n az eredm\u00e9ny. N\u00e9ha sz\u00fcks\u00e9g van erre, \u00e9s hasznos is, \u00e9s \u00edgy van be\u00e1ll\u00edtva n\u00e1lunk:<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan szervezt\u00fcnk meg egy nagy hat\u00e9konys\u00e1g\u00fa \u00e9s olcs\u00f3 DataLake-et, \u00e9s mi\u00e9rt pont \u00edgy?\" src=\"\/wp-content\/uploads\/2020\/08\/dc03181573bb3f5cfcc3a8760bc7e07b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00cdgy, ha sz\u00e1m\u00edt\u00e1sokat szeretn\u00e9nk v\u00e9gezni egy Spark klaszteren az S3 adataival \u2013 csak \u00edrjuk a Python\/pyspark k\u00f3dot, tesztelj\u00fck \u00e9s menj\u00fcnk a felh\u0151be.<\/p>\n<p>\u00c9s mi a helyzet az orkestr\u00e1ci\u00f3val? Mi van, ha a feladat le\u00e1llt \u00e9s elt\u0171nt? Igen, felmer\u00fclt, hogy egy sz\u00e9pen megtervezett pipelint hozzunk l\u00e9tre az Apache Pig st\u00edlus\u00e1ban, \u00e9s ki is pr\u00f3b\u00e1ltuk \u0151ket, de v\u00e9g\u00fcl \u00fagy d\u00f6nt\u00f6tt\u00fcnk, hogy maradunk a m\u00e9lyen testreszabott orkestr\u00e1ci\u00f3nkn\u00e1l PHP \u00e9s JavaScript seg\u00edts\u00e9g\u00e9vel (tudom, hogy kognit\u00edv disszonanci\u00e1t okoz, de m\u0171k\u00f6dik, \u00e9vek \u00f3ta \u00e9s hib\u00e1k n\u00e9lk\u00fcl).<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan szervezt\u00fcnk meg egy nagy hat\u00e9konys\u00e1g\u00fa \u00e9s olcs\u00f3 DataLake-et, \u00e9s mi\u00e9rt pont \u00edgy?\" src=\"\/wp-content\/uploads\/2020\/08\/e00ed2047c5c6492e36fccc82e7278a3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>A t\u00e1roz\u00f3ban t\u00e1rolt f\u00e1jlok form\u00e1tuma - a teljes\u00edtm\u00e9ny kulcsa<\/h3>\n<p>\nNagyon, nagyon fontos m\u00e9g k\u00e9t kulcsfontoss\u00e1g\u00fa szempontot meg\u00e9rteni. Ahhoz, hogy a f\u00e1jlok adataira ir\u00e1nyul\u00f3 lek\u00e9rdez\u00e9sek a lehet\u0151 leggyorsabban teljes\u00fcljenek, \u00e9s a teljes\u00edtm\u00e9ny ne romoljon \u00faj inform\u00e1ci\u00f3k hozz\u00e1ad\u00e1sakor, sz\u00fcks\u00e9ges:<\/p>\n<ul>\n<li>A f\u00e1jlok oszlopait k\u00fcl\u00f6n t\u00e1rolni (hogy ne kelljen az \u00f6sszes sort elolvasni ahhoz, hogy meg\u00e9rts\u00fck, mi van az oszlopokban). Ehhez a parquets form\u00e1tumot v\u00e1lasztottuk, t\u00f6m\u00f6r\u00edt\u00e9ssel.<\/li>\n<li>Nagyon fontos a f\u00e1jlokat mapp\u00e1k szerint shardolni, mint p\u00e9ld\u00e1ul: nyelv, \u00e9v, h\u00f3nap, nap, h\u00e9t. Azok a motorok, amelyek \u00e9rtik ezt a shardol\u00e1si t\u00edpust, csak a sz\u00fcks\u00e9ges mapp\u00e1kban fognak keresni, an\u00e9lk\u00fcl, hogy \u00e1tf\u00e9s\u00fcln\u00e9k az \u00f6sszes adatot.<\/li>\n<\/ul>\n<p>\nL\u00e9nyeg\u00e9ben \u00edgy a lehet\u0151 leghat\u00e9konyabb form\u00e1ban teszi k\u00f6zz\u00e9 az alapadatokat a fels\u0151bb analitikai motorok sz\u00e1m\u00e1ra, amelyek szint\u00e9n szelekt\u00edven tudnak bel\u00e9pni a shardolt mapp\u00e1kba, \u00e9s csak a sz\u00fcks\u00e9ges oszlopokat olvasni a f\u00e1jlokb\u00f3l. Nincs sz\u00fcks\u00e9g arra, hogy b\u00e1rhova is \"felt\u00f6lts\u00fck\" az adatokat (a t\u00e1rol\u00f3 \u00fagyis egyszer\u0171en megsz\u0171nne m\u0171k\u00f6dni) - egyszer\u0171en okosan helyezze \u0151ket el a f\u00e1jlrendszerben, a megfelel\u0151 form\u00e1tumban. Nyilv\u00e1nval\u00f3, hogy nem c\u00e9lravezet\u0151 egy hatalmas csv f\u00e1jlt t\u00e1rolni a DataLake-ben, amelyet el\u0151sz\u00f6r soronk\u00e9nt kellene elolvasni a klaszterrel, hogy kinyerj\u00fck az oszlopokat - fontolja meg m\u00e9g egyszer a fenti k\u00e9t pontot, ha eddig nem vil\u00e1gos, hogy mi\u00e9rt van erre sz\u00fcks\u00e9g.<\/p>\n<h3>AWS Athena - a \u201egenie\u201d a l\u00e1d\u00e1ban<\/h3>\n<p>\n\u00c9s itt, amikor l\u00e9trehoztuk a tavat, valahogy r\u00e1bukkantunk az Amazon Athena-ra. Hirtelen kider\u00fclt, hogy ha \u00fcgyesen elrendezz\u00fck a shard mapp\u00e1kban a f\u00e1jlokat, a megfelel\u0151 (parquet) oszlopos form\u00e1tumban, akkor rendk\u00edv\u00fcl gyorsan v\u00e9gezhet\u00fcnk nagyon informat\u00edv lek\u00e9rdez\u00e9seket \u00e9s jelent\u00e9seket k\u00e9sz\u00edthet\u00fcnk AN\u00c9LK\u00dcL, hogy Apache Spark\/Glue klaszterre lenne sz\u00fcks\u00e9g.<\/p>\n<p>Az Athena motor, amely az S3 adatai felett m\u0171k\u00f6dik, a legend\u00e1s <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/big-data\/what-is-presto\/\">Presto<\/a><\/noindex> \u2014 a massive parallel processing (MPP) approach to data processing that retrieves data from its source, from S3 and Hadoop to Cassandra and regular text files. You just need to ask Athena to execute an SQL query, and then everything \"works quickly and automatically\". It is important to note that Athena is \"smart\"; it only accesses the necessary sharded folders and reads only the columns required by the query.<\/p>\n<p>The requests to Athena are also billed in an interesting way. We pay for <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/athena\/pricing\/\">the amount of scanned data<\/a><\/noindex>. That is, not for the number of machines in the cluster per minute, but\u2026 for the actually scanned necessary data from 100-500 machines to fulfill the query.<\/p>\n<p>And by requesting only the needed columns from the correctly sharded folders, it turned out that the Athena service costs us tens of dollars a month. Well, that's great, almost free compared to analytics on clusters!<\/p>\n<p>By the way, here\u2019s how we shard our data in S3:<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan szervezt\u00fcnk meg egy nagy hat\u00e9konys\u00e1g\u00fa \u00e9s olcs\u00f3 DataLake-et, \u00e9s mi\u00e9rt pont \u00edgy?\" src=\"\/wp-content\/uploads\/2020\/08\/00bd9ae48c1cd13f3c4f7d32692c9209.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAs a result, in a short time, completely different departments in the company, from information security to analytics, began actively querying Athena and quickly, in seconds, getting useful answers from \"big\" data over quite large periods: months, half-years, etc.<\/p>\n<p>But we went further and started fetching answers from the cloud <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/athena\/latest\/ug\/connect-with-odbc.html\">via ODBC driver<\/a><\/noindex>: an analyst writes an SQL query in a familiar console, which \"for a pittance\" queries data in S3 across 100-500 machines and usually returns the answer in a matter of seconds. Convenient. And fast. It still feels unbelievable.<\/p>\n<p>As a result, having decided to store data in S3 in an efficient columnar format and with reasonable data sharding across folders\u2026 we got a DataLake and a fast and cheap analytical engine \u2014 for free. And it became very popular in the company, as it understands SQL and works orders of magnitude faster than launching\/stopping\/tuning clusters. \"If the result is the same, why pay more?\"<\/p>\n<p>A query to Athena looks something like this. If desired, of course, one can formulate a fairly <noindex><a rel=\"nofollow\" href=\"https:\/\/prestodb.io\/docs\/0.172\/index.html\">complex and multi-page SQL query<\/a><\/noindex>, but we will limit ourselves to a simple grouping. Let\u2019s see what response codes the client had in the logs of the web server a few weeks ago and verify that there are no errors:<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan szervezt\u00fcnk meg egy nagy hat\u00e9konys\u00e1g\u00fa \u00e9s olcs\u00f3 DataLake-et, \u00e9s mi\u00e9rt pont \u00edgy?\" src=\"\/wp-content\/uploads\/2020\/08\/30028991467b9e52f597faa617d374b5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>K\u00f6vetkeztet\u00e9sek<\/h3>\n<p>\nMiut\u00e1n egy nem t\u00fal hossz\u00fa, de f\u00e1jdalmas utat j\u00e1rtam be, folyamatosan megfelel\u0151en \u00e9rt\u00e9kelve a kock\u00e1zatokat, a bonyolults\u00e1g szintj\u00e9t \u00e9s a fenntart\u00e1s k\u00f6lts\u00e9geit, megtal\u00e1ltuk a megold\u00e1st a DataLake \u00e9s az analitika sz\u00e1m\u00e1ra, amely minket folyamatosan boldogg\u00e1 tesz a sebess\u00e9g\u00e9vel \u00e9s a tulajdonl\u00e1s k\u00f6lts\u00e9g\u00e9vel.<\/p>\n<p>Kider\u00fclt, hogy hat\u00e9kony, gyors \u00e9s olcs\u00f3n \u00fczemeltethet\u0151 DataLake-et \u00e9p\u00edteni a v\u00e1llalat k\u00fcl\u00f6nb\u00f6z\u0151 oszt\u00e1lyainak ig\u00e9nyeihez \u2014 ez m\u00e9g a tapasztalt fejleszt\u0151k sz\u00e1m\u00e1ra is teljesen megval\u00f3s\u00edthat\u00f3, akik sosem dolgoztak \u00e9p\u00edt\u00e9szk\u00e9nt \u00e9s nem tudj\u00e1k, hogyan kell n\u00e9gyzeteket rajzolni n\u00e9gyzetekre nyilakkal, valamint ismerik a Hadoop \u00f6kosziszt\u00e9ma 50 kifejez\u00e9s\u00e9t.<\/p>\n<p>Kezdetben a fejem a sok vad ny\u00edlt \u00e9s z\u00e1rt szoftver \u00e1llatkertt\u0151l, valamint az ut\u00f3dok felel\u0151ss\u00e9ge s\u00faly\u00e1t\u00f3l f\u00e1jt. Csak kezdje el \u00e9p\u00edteni a DataLake-j\u00e9t egyszer\u0171 eszk\u00f6z\u00f6kkel: nagios\/munin -&gt; elastic\/kibana -&gt; Hadoop\/Spark\/s3..., gy\u0171jtve a visszajelz\u00e9st \u00e9s m\u00e9lyen meg\u00e9rtve a folyamatok fizik\u00e1j\u00e1t. Minden bonyolult \u00e9s zavaros dolgot adjon \u00e1t az ellens\u00e9geinek \u00e9s versenyt\u00e1rsainak.<\/p>\n<p>Ha nem akar felh\u0151be menni \u00e9s szereti karbantartani, friss\u00edteni \u00e9s jav\u00edtani a ny\u00edlt projekteket, akkor hasonl\u00f3 rendszert \u00e9p\u00edthet helyben, olcs\u00f3 irodai g\u00e9pekkel Hadoop-dal \u00e9s Presto-val a tetej\u00e9n. A l\u00e9nyeg \u2014 ne \u00e1lljon meg, haladjon el\u0151re, sz\u00e1moljon, keressen egyszer\u0171 \u00e9s vil\u00e1gos megold\u00e1sokat, \u00e9s mindenki biztosan boldogulni fog! Sok szerencs\u00e9t mindenkinek \u00e9s viszontl\u00e1t\u00e1sra!<br \/>\n<br \/>Forr\u00e1s: <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.3 - 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\/hu\/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.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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\/hu\/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\udd47Hogyan szervezt\u00fck meg a rendk\u00edv\u00fcl hat\u00e9kony \u00e9s olcs\u00f3 DataLake-et, \u00e9s mi\u00e9rt pontosan \u00edgy | ProHoster","description":"Olyan csod\u00e1latos id\u0151szakban \u00e9l\u00fcnk, amikor gyorsan \u00e9s egyszer\u0171en \u00f6sszekapcsolhatunk t\u00f6bb k\u00e9sz ny\u00edlt eszk\u00f6zt, be\u00e1ll\u00edthatjuk \u0151ket \u201ekikapcsolt tudattal\u201d a stackoverflow tan\u00e1csai alapj\u00e1n, an\u00e9lk\u00fcl, hogy belemer\u00fcln\u00e9nk a \u201esok bet\u0171be\u201d, \u00e9s elind\u00edthatjuk \u0151ket.","canonical_url":"https:\/\/prohoster.info\/hu\/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":"hu_HU","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\/hu\/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\/hu\/wp-json\/wp\/v2\/posts\/92508","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=92508"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/92508\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/92509"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=92508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=92508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=92508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}