Potrubie na spracovanie veľkých dát a udalostí

Paul JULIEN, Mewen LE RESTE a Guillaume VERNERET sú traja vývojoví stážisti v Vente-privee Epitech Innovation Lab. Účelom tejto stáže je prispieť k ich vysokoškolskému cyklu v Epitech Paris. Spolupracovali na webovej platforme, ktorej cieľom je uľahčiť testovanie v tímoch vente-privee. “

Podniky používajú termín s veľkými údajmi čoraz častejšie. Mnohé z nich chcú implementovať infraštruktúry na vybudovanie efektívneho prostredia. Ak presne neviete, čo robíte, je veľmi ťažké nájsť technológie, ktoré skutočne zodpovedajú nášmu dopytu. Svet veľkých údajov sa môže často javiť ako veľmi nepriehľadný, pokúsime sa ho objasniť v tomto článku.

Čo sú to veľké dáta?

Termín veľkých dát sa používa od roku 1998, a to vďaka Johnu Masheyovi, hlavnému vedcovi spoločnosti Silicon Graphics, s dokumentom „Big Data… a ďalšia vlna infraštruktúry“. Veľké údaje sú spojené s tromi Vs: objem, rozmanitosť a rýchlosť. Objem je o množstve údajov meraných v gigabajtoch až yottabajtoch (1 ⁰²⁰ bajtov). Rýchlosť je čas, kedy sa údaje môžu spracovať, dnes hovoríme o reálnom čase. A nakoniec, odroda je štruktúra, môže byť nestrukturovaná, ale môže to byť aj fotografia, zvuk alebo video. Existuje veľa rôznych typov údajov.

Big Data 3Vs

Aby sme to zhrnuli niekoľkými číslami, používatelia Facebooku každú minútu odosielajú viac ako 31 miliónov správ, z ktorých viac ako 2 milióny videí. Každý deň vyhľadáva Google viac ako 3 miliardy vyhľadávaní. V roku 2020 sa nahromadený objem veľkých dát zvýši na 44 biliónov GB (podľa Newgenapps a Domo).

Mám veľa údajov, čo s nimi môžem robiť?

Podniky sa čoraz viac zaujímajú o problematiku veľkých dát, pretože majú skutočné ekonomické záujmy. Napríklad pre webové médiá môžete robiť určité analýzy v prúde kliknutí vašej aplikácie, pridať zacielenie reklám a urobiť určité predpovede o priemerných používateľoch za dané obdobie. Tematické okruhy, ako je stroj na učenie alebo vedy o údajoch, sú dnes nevyhnutné. Toto je schéma zjednodušeného systému spracovania udalostí:

Potrubie na spracovanie udalostí

Cieľom je optimalizovať spracovanie údajov (udalostí) v rôznych častiach:

· Maklér: Ukladanie prvotných údajov.

· Stream: Spracovanie údajov.

· Databáza: Uchovávané údaje.

· Vizualizér: Vizuálne údaje.

Vesmír veľkých dát odpovedá na otázky, ktoré si mnohí ľudia predtým položili. Napriek všetkému existujú veľké problémy týkajúce sa veľkých údajov. Najskôr je potrebné optimalizovať ukladanie vašich údajov, aby sa znížili náklady. Potom, ako vidíme, je nevyhnutné zachovať súkromie údajov, veľké spoločnosti ako Facebook alebo Google čelia problémom s ochranou súkromia (pozri záležitosť Cambridge Analytica). Problém, ktorý sa chystáme študovať, súvisí s výberom technológie.

Ako zvoliť správne technológie?

Technológie veľkých dát sú početné, niekedy je ťažké nájsť cestu okolo. Hlavným aktérom veľkých dát je Apache. Medzi ich najznámejšie technológie patria Kafka, Hadoop alebo Spark. Pre niektorých vynikajú vo svojom odbore, napríklad Hadoop, ktorý umožňuje optimalizované ukladanie pomocou pokročilého algoritmu implementovaného spoločnosťou Google: MapReduce alebo Kafka, ktorý sa používa ako sprostredkovateľ správ, je veľmi výkonný, keď chcete distribuovať veľké množstvo údajov v rôzne prúdy.

Na spracovanie toku údajov existuje veľa technológií. Ak študujete iný existujúci prípad použitia, je jednoduchšie nájsť cestu. Vezmime príklad spracovania dátového toku, dnes v tejto oblasti existuje veľa technológií a všetky majú svoje výhody aj nevýhody. Niekoľko spoločností, ako je Google (Cloud DataFlow, ktorý sa stal Apache Beam) alebo Spotify (SCIO), si vytvorilo svoju vlastnú technológiu na vyriešenie svojho problému. Ak vezmeme prípad použitia Vente-Privee, veľa údajov sa zhromažďuje pomocou API, ktoré ich tlačí do Kafky. Problémom bolo agregovať údaje v reálnom čase alebo s históriou, pričom rovnaká technológia sa mala ľahšie implementovať. Tu uvádzame zjednodušený prípad použitia.

Prípad na rýchle použitie

Prípad je veľmi jednoduchý: v Kafke máme veľa údajov (niektoré udalosti), musíme vygenerovať KPI (Key Performance Indicator) a vložiť agregované údaje do databázy. Teraz musíme nájsť správne technológie, najprv implementovať spracovanie toku. Preto máme k dispozícii niekoľko technológií:

Sú to rámce, ktoré uľahčia agregáciu údajov, väčšina z nich používa jazyk java.

Urobili sme rýchly test na zjednodušenie nášho výberu, požiadavky boli jednoduché:

· Dokumentácia: Kvalita podpory.

· Kompatibilita: Je kompatibilná s implementovanými technológiami.

· Začíname: Čas na preukázanie koncepcie.

· Nasadenie: spustiteľné a nasaditeľné v Dockeri.

· Optimalizácia: Kvalita technológie, keď idete hlbšie.

Metodika stanovenia kritérií bola jednoduchá, testovali sme bod, ak to nebolo negatívne a blokujúce, prešli sme na ďalšiu technológiu.

V tomto prípade je Beam najvhodnejší. Pre detail, obsahuje mnoho veľkých dátových technológií, ako je čítanie Kafka, vstup / výstup Cassandra a mnoho ďalších. Spôsob riadenia tokov údajov pomocou systému potrubí je veľmi optimalizovaný. Je to veľmi praktický spôsob behu, máte na výber, či chcete spustiť „z prvej ruky“ alebo s konkrétnymi bežcami, ako napríklad Spark alebo Flink. To prináša k pozitívnemu bodu Apache Beam, škálovateľnosti. Ak chcete spracovať veľké množstvo údajov, musíte súčasne spustiť viacero agregátorov, budete potrebovať škálovateľnú technológiu, ako je napríklad Beam, aby ste sa vyhli prekážkam. Existujú určité negatívne body, ale neblokujú sa, podobne ako výstup z databáz časových radov, v našom prípade ako databázu časových radov používame iba databázu Scylla (C ++ Cassandra) s oficiálnym vizualizátorom údajov Apache Zeppelin. Okrem toho je Apache Beam mladá technológia, takže tu existuje veľká komunita, a ak je to pre jazyk Java nepríjemné, je veľmi zložité pochopiť, ako to funguje.

Po výbere súboru technológií budete musieť implementovať, nasadiť a otestovať ich. Veľké dátové prostredie rastie veľmi rýchlo a je dôležité mať na ňom ruku. Uistite sa, že všetky technológie môžu byť testované a nasadené (Gitlab CI je pre to veľmi vhodný). Mnoho vývojárov pracuje na veľkých údajoch, ale komunita je stále veľmi slabá, je tiež veľmi dôležité k tomu prispieť.

Tu je niekoľko odkazov, ktoré môžu ísť ďalej:

https://www.mongodb.com/big-data-explained

https://data-artisans.com/what-is-stream-processing

https://kafka.apache.org/

https://beam.apache.org/

https://www.scylladb.com/

https://zeppelin.apache.org/

Autori: Paul Julien, Guillaume VERNERET, Mewen LE RESTE