Cevovod za obdelavo velikih podatkov in dogodkov

Paul JULIEN, Mewen LE RESTE in Guillaume VERNERET so trije pripravniki v podjetju vente-privee Epitech Innovation Lab. Ta pristop naj bi prispeval k njihovemu ciklu na univerzi Epitech v Parizu. Skupaj sta sodelovala na spletni platformi, katere cilj je olajšati testiranje v skupinah vente-privee. "

Izraz velikih podatkov vse pogosteje uporabljajo podjetja. Mnogi od njih želijo implementirati infrastrukturo, da bi ustvarili učinkovito okolje. Ko ne veste točno, kaj počnete, je zelo težko najti tehnologije, ki bi ustrezale našemu povpraševanju. Svet velikih podatkov se lahko pogosto zdi zelo nepregleden, poskusili bomo razjasniti v tem članku.

Kaj so veliki podatki?

Izraz big data se uporablja od leta 1998, zahvaljujoč Johnu Masheyu, glavnemu znanstveniku Silicon Graphics, s člankom "Big Data ... and Next Wave of InfraStress". Veliki podatki so povezani s tremi V: prostornino, raznolikostjo in hitrostjo. Prostornina je približno količina podatkov, izmerjena v gigabajtu do jottabajta (1⁰²⁴ bajtov). Hitrost je čas, ko je mogoče obdelati podatke, danes govorimo o realnem času. Nazadnje je sorta struktura, lahko je nestrukturirana, lahko pa so tudi foto, avdio ali video podatki. Obstaja veliko različnih vrst podatkov.

Veliki podatki 3V

Če povzamem v nekaj številkah, vsako minuto uporabniki Facebooka pošljejo več kot 31 milijonov sporočil in več kot 2 milijona videov. Dnevno poteka več kot 3 milijarde iskanj po Googlu. Leta 2020 se bo zbrani obseg velikih podatkov povečal na 44 bilijonov GB (po Newgenapps in Domo).

Imam ogromno podatkov, kaj lahko storim z njimi?

Podjetja so vedno bolj zainteresirana za problematiko velikih podatkov, ker imajo resnične ekonomske interese. Na primer, za spletni medij lahko naredite nekaj analitike v toku klikov vaše aplikacije, dodate nekaj oglaševalskih ciljev in določite napovedi o povprečnih uporabnikih v določenem obdobju. Tematske teme, kot sta učni stroj ali podatkovne vede, so danes bistvene. To je shema poenostavljenega cevovoda za obdelavo dogodkov:

Cevovod za obdelavo dogodkov

Cilj je optimizirati obdelavo podatkov (dogodkov) v različnih delih:

· Posrednik: Shranjevanje neobdelanih podatkov.

· Tok: Obdelava podatkov.

· Podatkovna baza: Obdelano shranjevanje podatkov.

· Vizualizator: Vizualni podatki.

Vesolje velikih podatkov odgovarja na vprašanja, ki so si jih mnogi že zastavili. Kljub vsemu ima nekaj težav, povezanih z velikimi podatki. Najprej je treba optimizirati shranjevanje podatkov, da zmanjšate stroške. Potem je zasebnost podatkov bistvenega pomena, kot vidimo, večja društva, kot sta Facebook ali Google, se soočajo s težavami z zasebnostjo (glej afero Cambridge Analytica). Problem, ki ga bomo preučevali, je povezan z izbiro tehnologije.

Kako izbrati prave tehnologije?

Tehnologije velikih podatkov so številne, včasih je težko najti svojo pot. Glavni akter velikih podatkov je Apache, med njihovimi najbolj znanimi tehnologijami so Kafka, Hadoop ali Spark. Nekateri so na svojem področju odlični, na primer Hadoop, ki omogoča optimizirano shranjevanje z naprednim algoritmom, ki ga izvaja Google: MapReduce, ali Kafka, ki se uporablja kot posrednik za sporočila, je zelo močan, če želite distribuirati veliko podatkov v različnih potokov.

Za obdelavo tokov obstaja veliko tehnologij, če proučujete različne obstoječe primere uporabe, je preprosteje najti svojo pot. Vzemimo primer obdelave podatkovnih tokov, danes na tem področju obstaja veliko tehnologij in vse imajo prednosti in slabosti. Nekaj ​​podjetij, kot sta Google (Cloud DataFlow, ki je postal Apache Beam) ali Spotify (SCIO), je za reševanje svoje težave izdelalo lastno tehnologijo. Če vzamemo primer uporabe Vente-Privee, je veliko podatkov zbranih z API-jem, ki jih potisne v Kafko. Problematično je bilo združevanje podatkov v realnem času ali z zgodovino, pri čemer bi bilo mogoče uporabiti enostavnejšo tehnologijo. Tu je primer poenostavljene uporabe.

Hitra uporaba

Primer je zelo preprost: v Kafki imamo veliko podatkov (nekateri dogodki), ustvariti moramo KPI (ključni kazalnik uspešnosti) in združene podatke potisniti v bazo podatkov. Zdaj moramo najti prave tehnologije, najprej implementirati obdelavo tokov. Za to so na voljo nekatere tehnologije:

To so okviri, ki bodo olajšali združevanje podatkov, večina jih uporablja java jezik.

Naredili smo hitro referenčno vrednost za poenostavitev naše izbire, zahteve so bile preproste:

· Dokumentacija: Kakovost podpore.

· Združljivost: Združljiva je z implementiranimi tehnologijami.

· Uvod: čas za dokaz koncepta.

· Razmestitev: Izvedljivo in uporabno z Dockerjem.

· Optimizacija: Kakovost tehnologije, ko se poglobite.

Metodologija določanja meril je bila preprosta, preizkušali smo točko, če ni bila negativna in ne blokira, smo prešli na naslednjo tehnologijo.

V tem primeru je najbolj primeren Beam. Za podrobnosti vključuje številne tehnologije velikih podatkov, kot so branje Kafke, Cassandra vhod / izhod in številne druge. Način upravljanja podatkovnih tokov s sistemom cevovodov je zelo optimiziran. Tudi način teka je zelo priročen, izbirate lahko za tek iz prve roke ali z določenimi tekači, kot sta Spark ali Flink. Kar pripelje do velike pozitivne točke Apache Beam, razširljivosti. Ko imate veliko količino podatkov za obdelavo, morate zagnati več agregatorjev hkrati, za preprečevanje ozkih grl boste potrebovali razširljivo tehnologijo, kot je Beam. Obstaja nekaj negativnih točk, vendar ne blokiranja, tako kot izhodne baze podatkov časovnih vrst, v našem primeru uporabljamo samo bazo podatkov Scylla (C ++ Cassandra overlayer) kot časovno vrsto z uradnim vizualizatorjem podatkov Apache Zeppelin. Poleg tega je Apache Beam mlada tehnologija, zato obstaja veliko pomanjkanje skupnosti in zelo težko je razumeti, kako to deluje, če vam jezik Java ne ustreza.

Po izbiri nabora tehnologij jih boste morali implementirati, uporabiti in preizkusiti. Okolje z velikimi podatki raste zelo hitro in pomembno je, da se tega lotite. Prepričajte se, da je mogoče vse tehnologije preizkusiti in uporabiti (Gitlab CI je zelo primeren za to). Številni razvijalci delajo na velikih podatkih, vendar je skupnost še vedno zelo šibka, prav tako je zelo pomembno, da k njej prispevamo.

Tukaj je nekaj povezav za nadaljnje:

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

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

https://kafka.apache.org/

https://beam.apache.org/

https://www.scylladb.com/

https://zeppelin.apache.org/

Avtorji: Paul Julien, Guillaume VERNERET, Mewen LE RESTE