Big Data és eseményfeldolgozási folyamat

Paul JULIEN, Mewen LE RESTE és Guillaume VERNERET három fejlesztõ gyakornok az Epitech Innovation Lab vente-privee-nál. Ez az intership célja, hogy hozzájáruljon a párizsi Epitech-i főiskolai ciklusukhoz. Együtt dolgoztak egy internetes platformon, amelynek célja a tesztelés megkönnyítése a vente-privee csapatokban. "

A nagy adat kifejezést a vállalkozások egyre inkább használják. Sokan infrastruktúrákat akarnak megvalósítani a hatékony környezet megteremtése érdekében. Ha nem tudja pontosan, mit csinál, nagyon nehéz olyan technológiákat találni, amelyek valóban megfelelnek az igényeinknek. A nagy adatok világa gyakran nagyon átlátszónak tűnhet, megpróbáljuk tisztázni ebben a cikkben.

Mi az a Big Data?

A nagy adat kifejezést 1998 óta használják, John Mashey, a Silicon Graphics fő tudósának köszönhetően, a „Big Data… és az InfraStress következő hulláma” c. A nagy adatok három V-hez kapcsolódnak: térfogat, változatosság és sebesség. A térfogat az adatok mennyiségének nagysága, gigabájtban yottabyte-ig mérve (1⁰²⁴ bájt). A sebesség az az idő, amikor az adatok kezelhetők, ma valós időről beszélünk. Végül: a fajta a szerkezet, strukturálatlan is, de lehet fénykép, audio vagy video adat is. Sokféle típusú adat létezik.

Big Data 3V-k

Összegezve néhány számban, percenként több mint 31 millió üzenetet küldnek a Facebook-felhasználók, amelyek több mint 2 millió videót jelentenek. Naponta több mint 3 milliárd Google-keresés történik. 2020-ban a nagy adatok felhalmozott mennyisége 44 billió GB-ra növekszik (Newgenapps és Domo szerint).

Rengeteg adat van, mit tehetek velük?

A vállalkozásokat egyre inkább érdekli a nagy adatprobléma, mivel valódi közgazdasági érdekeik vannak. Például egy webes média esetében elvégezhet elemzést az alkalmazás kattintási folyamán, hozzáadhat néhány célzási hirdetést és előrejelzéseket készíthet az átlagos felhasználókról egy adott időszakban. A tematikus témák, mint például a tanulási gép vagy az adattudományok, alapvető fontosságúak manapság. Ez egy egyszerűsített eseményfeldolgozási folyamat vázlata:

Eseményfeldolgozási folyamat

A cél az adatok (események) kezelésének optimalizálása különböző részekben:

· Bróker: Nyers adatok tárolása.

· Patak: Adatkezelés.

· Adatbázis: kezelt adattárolás.

· Megjelenítő: Látvány adatok.

A nagy adatok világegyeteme olyan kérdésekre ad választ, amelyeket sokan már feltettek maguknak. Minden ellenére vannak problémák a nagy adatokkal kapcsolatban. Először az adatok tárolását optimalizálni kell a költségek csökkentése érdekében. Ezután az adatvédelem elengedhetetlen, amint látjuk, a nagyobb társadalmakat, például a Facebookot vagy a Google-t adatvédelmi problémák sújtják (lásd a Cambridge Analytica ügyét). A probléma, amelyet tanulni fogunk, a technológia megválasztásával kapcsolatos.

Hogyan válasszuk ki a megfelelő technológiákat?

A nagy adatok technológiája számos, néha nehéz megtalálni az utat. A nagy adatok egyik fő szereplője az Apache, legismertebb technológiáik közül a Kafka, a Hadoop vagy a Spark. Egyesek számára kiemelkednek a saját területén, például a Hadoop, amely lehetővé teszi az optimalizált tárolást a Google által megvalósított fejlett algoritmussal: MapReduce, vagy a Kafka, amelyet üzenetközvetítőként használnak. Ez nagyon nagy teljesítményű, ha sok adatot szeretne elosztani a különböző patakok.

Az adatfolyam-feldolgozáshoz sok technológia létezik, ha különféle meglévő felhasználási lehetőségeket tanulmányoz, egyszerűbb megtalálni az utat. Vegyük a példát az adatfolyam-feldolgozásra, ma számos technológia létezik ezen a területen, és mindegyiknek vannak előnyei és hátrányai. Néhány vállalat, mint például a Google (Cloud DataFlow, aki Apache Beammá vált) vagy a Spotify (SCIO), saját technológiát készített a problémájuk megoldására. Ha vennénk a Vente-Privee használati esetét, akkor sok adatot összegyűjtünk egy API-val, amely azokat egy Kafkába vezet. A problémát az volt, hogy az adatokat valós időben vagy történelemmel összesítsék, ugyanazzal a technológiával, hogy a lehető legegyszerűbben megvalósítható legyen. Itt van az egyszerűsített felhasználási eset.

Gyors használatú tok

Az eset nagyon egyszerű: nagyon sok adat van (néhány esemény) Kafkában, létre kell hoznunk KPI-t (Key Performance Indicator), és az összesített adatokat egy adatbázisba kell tolnunk. Most meg kell találnunk a megfelelő technológiákat, először az adatfolyam-feldolgozás végrehajtásához. Ehhez rendelkezésre áll néhány technológia:

Ezek olyan keretek, amelyek megkönnyítik az adatgyűjtést, legtöbbjük java nyelvet használ.

Gyors benchmarkot készítettünk a választás egyszerűsítésére, a követelmények egyszerűek voltak:

· Dokumentáció: A támogatás minősége.

· Kompatibilitás: Kompatibilis a megvalósított technológiákkal.

· Első lépések: Ideje bizonyítani a koncepciót.

· Telepítés: Futtatható és telepíthető a Dockerrel.

· Optimalizálás: A technológia minősége, ha mélyebbre mész.

A kritériumok meghatározásának módszere egyszerű volt, egy pontot teszteltünk, ha nem volt negatív és blokkoló, akkor a következő technológiára váltottuk.

Ebben az esetben a sugár a legmegfelelőbb. Részletesebben, számos nagy adattechnológiát tartalmaz, mint például a Kafka olvasás, a Cassandra bemenet / kimenet és még sokan mások. Az adatfolyamok kezelése a csővezetékrendszer segítségével nagyon optimalizált. Ez a futásmód szintén nagyon praktikus, választhat az első kézből történő futtatáshoz, vagy olyan speciális futókkal, mint a Spark vagy az Flink. Ami az Apache Beam nagy pozitív pontját, a skálázhatóságot hozza fel. Ha nagy mennyiségű adat van feldolgozva, akkor több aggregátort egyszerre kell futtatnia, és a szűk keresztmetszetek elkerüléséhez szüksége lesz egy méretezhető technológiára, például a Beam-ra. Van néhány negatív pont, de nem blokkoló, mint például az idősor-adatbázis-kimenet, a mi esetünkben csak a Scylla adatbázist (C ++ Cassandra réteg) használjuk idősorként hivatalos adatmegjelenítõjével, az Apache Zeppelin-rel. Ezenkívül az Apache Beam egy fiatal technológia, tehát nagy a közösség hiánya, és ha a Java nyelv használata nem tetszik Önnek, nagyon bonyolult megérteni, hogyan működik.

A technológiai készlet kiválasztása után be kell telepítenie, telepítenie és tesztelnie kell azokat. Egy nagy adatkörnyezet nagyon gyorsan nő fel, és fontos, hogy megbirkózzunk rajta. Győződjön meg arról, hogy minden technológia tesztelhető és telepíthető (a Gitlab CI ehhez nagyon kényelmes). Sok fejlesztő nagy adatokon dolgozik, de a közösség továbbra is nagyon gyenge, szintén nagyon fontos hozzájárulni ehhez.

Itt található néhány link a továbblépéshez:

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/

Szerzők: Paul Julien, Guillaume VERNERET, Mewen LE RESTE