„Big Data“ ir įvykių apdorojimo dujotiekis

Paulius JULIEN, Mewen LE RESTE ir Guillaume VERNERET yra trys kūrėjai, praktikuojantys „Epitech Innovation Lab“ atstovus. Šis tarpsnis yra skirtas prisidėti prie jų kolegijų ciklo Epitech Paryžiuje. Jie kartu dirbo interneto platformoje, kurios tikslas - palengvinti bandymus „privetee“ komandose. "

Stambiųjų duomenų terminą įmonės vis dažniau naudoja. Daugelis jų nori įdiegti infrastruktūrą, kad sukurtų efektyvią aplinką. Kai tiksliai nežinai, ką darai, labai sunku rasti technologijas, kurios iš tikrųjų atitiktų mūsų poreikius. Didžiųjų duomenų pasaulis dažnai gali pasirodyti labai neskaidrus, pabandysime tai paaiškinti šiame straipsnyje.

Kas yra „Big Data“?

Didžiųjų duomenų terminas buvo naudojamas nuo 1998 m. Dėka „Silicon Graphics“ vyriausiojo mokslininko Johno Mashey, pateikus straipsnį „Big Data… ir„ Next InfraStress “banga“. Didieji duomenys yra susieti su trimis V: tūris, įvairovė ir greitis. Apimtis yra maždaug duomenų kiekis, matuojamas gigabaitais iki yotabaitų (1⁰²⁴ baitų). Greitis yra laikas, kai duomenis galima apdoroti. Šiandien mes kalbame apie realųjį laiką. Galiausiai, įvairovė yra struktūra, ji gali būti nestruktūrizuota, tačiau tai gali būti ir nuotraukų, garso ar vaizdo duomenys. Yra daugybė įvairių tipų duomenų.

„Big Data 3V“

Apibendrinant keletą skaičių, kiekvieną minutę „Facebook“ vartotojai siunčia daugiau nei 31 milijoną pranešimų, iš kurių daugiau nei 2 milijonai vaizdo įrašų. Kasdien vykdoma daugiau nei 3 milijardai „Google“ paieškų. 2020 m. Sukaupta didžiųjų duomenų apimtis išaugs iki 44 trilijonų GB („Newgenapps“ ir „Domo“ duomenimis).

Turiu daugybę duomenų, ką su jais daryti?

Įmonės vis labiau domisi didžiųjų duomenų problematika, nes turi realius ekonomikos interesus. Pvz., Žiniatinklio laikmenoje galite atlikti analizę savo programos paspaudimų sraute, pridėti keletą skelbimų, nukreipiančių pagal taikymą, ir numatyti tam tikrus vidutinio laikotarpio vartotojų prognozes. Tokios temos kaip mokymosi mašina ar duomenų mokslas yra labai svarbios šiandien. Tai supaprastinto įvykių apdorojimo dujotiekio schema:

Įvykių apdorojimo vamzdynas

Tikslas yra optimizuoti duomenų (įvykių) tvarkymą skirtingose ​​dalyse:

· Tarpininkas: neapdorotų duomenų saugojimas.

· Srautas: duomenų tvarkymas.

· Duomenų bazė: neapdorotų duomenų saugykla.

· Vizualizatorius: Vaizdiniai duomenys.

Stambiųjų duomenų visuma atsako į klausimus, kurių daugelis žmonių anksčiau uždavė sau. Nepaisant visko, yra keletas problemų, susijusių su dideliais duomenimis. Pirmiausia, norint sumažinti išlaidas, reikia optimizuoti jūsų duomenų saugojimą. Tuomet duomenų privatumas yra būtinas, nes, kaip matome, didelėms visuomenės grupėms, tokioms kaip „Facebook“ ar „Google“, kyla privatumo problemų (žr. „Cambridge Analytica“ bylą). Problema, kurią ketiname studijuoti, yra susijusi su technologijos pasirinkimu.

Kaip pasirinkti tinkamas technologijas?

Didžiųjų duomenų technologijų yra daugybė, kartais sunku rasti kelią. Pagrindinis „didžiųjų duomenų“ veikėjas yra „Apache“, tarp jų geriausiai žinomų technologijų yra „Kafka“, „Hadoop“ ar „Spark“. Kai kuriems jie yra puikūs savo srityje, pavyzdžiui, „Hadoop“, kuris leidžia optimizuoti saugojimą naudojant pažangų algoritmą, įdiegtą „Google“: „MapReduce“, arba „Kafka“, kuris naudojamas kaip pranešimų tarpininkas. Tai labai galinga, kai norite paskirstyti daug duomenų skirtingi srautai.

Srauto apdorojimui yra daugybė technologijų, jei nagrinėjate skirtingus esamus naudojimo atvejus, paprasčiau rasti kelią. Paimkime duomenų srauto apdorojimo pavyzdį, šiandien šioje srityje yra daug technologijų ir visos jos turi privalumų ir trūkumų. Pora kompanijų, tokių kaip „Google“ („Cloud DataFlow“, tapusia „Apache Beam“) ar „Spotify“ (SCIO), sukūrė savo technologiją, kaip išspręsti jų problemą. Jei pažiūrėsime į „Vente-Privee“ naudojimo atvejį, daug duomenų bus renkama naudojant API, kuri juos įtraukia į „Kafką“. Problemiška buvo apibendrinti duomenis realiuoju laiku arba su istorija, naudojant tą pačią technologiją, kad būtų galima paprasčiau įgyvendinti. Čia pateiktas supaprastinto naudojimo atvejis.

Greito naudojimo atvejis

Atvejis yra labai paprastas: Kafkoje turime daug duomenų (kai kurių įvykių), turime sugeneruoti KPI (Key Performance Indicator) ir sudėti apibendrintus duomenis į duomenų bazę. Dabar turime rasti tinkamas technologijas, pirmiausia įdiegdami srauto apdorojimą. Tam mes turime keletą technologijų:

Tai yra sistemos, palengvinančios duomenų kaupimą, dauguma jų naudoja java kalbą.

Mes sudarėme greitą etaloną, kad supaprastintume savo pasirinkimą, reikalavimai buvo paprasti:

· Dokumentacija: paramos kokybė.

· Suderinamumas: suderinamas su įdiegtomis technologijomis.

· Pradžia: Laikas turėti koncepcijos įrodymą.

· Diegimas: paleidžiamas ir atidaromas naudojant „Docker“.

· Optimizavimas: technologijos kokybė, įsigilinus.

Kriterijų nustatymo metodika buvo paprasta, bandėme tašką, jei jis nebuvo neigiamas ir blokuodamas, perėjome prie kitos technologijos.

Šiuo atveju tinkamiausia yra „Beam“. Detaliau, tai apima daugybę didelių duomenų technologijų, tokių kaip „Kafka“ skaitymas, „Cassandra“ įvestis / išvestis ir daugelis kitų. Duomenų srautų valdymo būdas naudojant vamzdynų sistemą yra labai optimizuotas. Šis bėgimo būdas taip pat yra labai patogus, jūs galite pasirinkti važiuoti „iš pirmų rankų“ arba su konkrečiais bėgikliais, tokiais kaip „Spark“ ar „Flink“. Kas atneša didelę „Apache Beam“ teigiamą vietą, mastelį. Kai turite daug apdorojamų duomenų, tuo pačiu metu turite paleisti kelis kaupiklius, jums reikės keičiamo dydžio technologijos, tokios kaip „Beam“, kad išvengtumėte kliūčių. Yra keletas neigiamų taškų, tačiau neužkertantys kelio, pavyzdžiui, laiko eilučių duomenų bazių išvesties, šiuo atveju kaip laiko eilutes naudojame tik „Scylla“ duomenų bazę („C ++ Cassandra“ perdanga) su oficialia duomenų vizualizatoriumi „Apache Zeppelin“. Be to, „Apache Beam“ yra jauna technologija, todėl labai trūksta bendruomenės, o jei jums nepatinka „Java“ kalba, suprasti, kaip ji veikia, yra labai sudėtinga.

Pasirinkę technologijų rinkinį, turėsite jas įdiegti, įdiegti ir išbandyti. Didelė duomenų aplinka labai greitai išauga ir svarbu, kad ji būtų ranka. Įsitikinkite, kad visas technologijas galima išbandyti ir įdiegti (tam labai patogi „Gitlab CI“). Daugelis kūrėjų dirba su dideliais duomenimis, tačiau bendruomenė vis dar yra labai silpna, taip pat labai svarbu prie jos prisidėti.

Toliau pateikiamos kelios nuorodos:

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/

Autoriai: Paul Julien, Guillaume VERNERET, Mewen LE RESTE