Big Data- ja tapahtumakäsittelyputki

Paul JULIEN, Mewen LE RESTE ja Guillaume VERNERET ovat kolme kehittäjäharjoittelijaa Epitech Innovation Lab -yrityksessä. Tämän välivaiheen on tarkoitus edistää heidän yliopistosykliä Epitech Pariisissa. He työskentelivät yhdessä verkkoalustalla, jonka tarkoituksena on helpottaa testausta vente-privee-joukkueissa. "

Suuret datatermit ovat yhä enemmän yritysten käytössä. Monet heistä haluavat toteuttaa infrastruktuureja tehokkaan ympäristön rakentamiseksi. Kun et tiedä tarkalleen mitä teet, on erittäin vaikea löytää tekniikoita, jotka todella vastaavat kysyntäämme. Suurtietojen maailma voi usein vaikuttaa hyvin läpinäkymättömältä, yritämme selventää sitä tässä artikkelissa.

Mikä on Big Data?

Suuri datatermi on ollut käytössä vuodesta 1998 lähtien, Silicon Graphics -yrityksen päätutkijan John Masheyn ansiosta ”Big Data… ja InfraStressin seuraava aalto”. Suuri data liittyy kolmeen V: iin: tilavuus, variaatio ja nopeus. Tilavuus on noin datan määrä, mitattuna gigatavuina yottabyytiksi (1 (²⁰ tavua). Nopeus on aika, jolloin tietoja voidaan käsitellä. Puhumme tänään reaaliajasta. Viimeiseksi, lajike on rakenne, se voi olla jäsentämätön, mutta se voi olla myös valokuva-, ääni- tai videotietoa. Tietoja on paljon erityyppisiä.

Big Data 3V: t

Yhteenvetona muutamina lukuina, joka minuutti Facebook-käyttäjät lähettävät yli 31 miljoonaa viestiä, joista yli 2 miljoonaa videota. Google tekee yli 3 miljardia hakua joka päivä. Vuonna 2020 suurten tietojen kertynyt määrä kasvaa 44 biljoonaan GB: iin (Newgenappsin ja Domon mukaan).

Minulla on tonnia tietoja, mitä voin tehdä heille?

Yritykset ovat yhä kiinnostuneempia suurten tietojen ongelmista, koska niillä on todellisia taloustieteellisiä etuja. Esimerkiksi verkkomediassa voit tehdä joitain analyysejä sovelluksesi napsautusvirralla, lisätä joitain kohdistavia mainoksia ja tehdä ennusteita keskimääräisistä käyttäjistä tietyn ajanjakson aikana. Aihekohtaiset, kuten oppikone tai tietotekniikka, ovat nykyään välttämättömiä. Tämä on yksinkertaistetun tapahtumien käsittelyputken kaavio:

Tapahtumien käsittelyputki

Tavoitteena on optimoida datan (tapahtumien) käsittely eri osissa:

· Välittäjä: raakatietojen tallennus.

· Stream: tietojen käsittely.

· Tietokanta: Käsitelty tietojen tallennus.

· Visualizer: Visual data.

Suurtietojen universumi vastaa kysymyksiin, joita monet ihmiset ovat kysyneet itseltään aiemmin. Kaikesta huolimatta suuriin tietoihin liittyy joitain ongelmia. Ensinnäkin tietosi varastointi on optimoitava kustannusten vähentämiseksi. Silloin tietosuoja on välttämätöntä, kuten näemme, suuret yhteiskunnat, kuten Facebook tai Google, ovat yksityisyyden ongelmien vastaisia ​​(ks. Cambridge Analytica -tapaus). Aiheemme tutkia ongelma liittyy tekniikan valintaan.

Kuinka valita oikeat tekniikat?

Big data -tekniikoita on paljon, joskus on vaikea löytää tietä. Tärkeä suurten tietojen toimija on Apache, ja tunnetuimpia tekniikoita ovat Kafka, Hadoop tai Spark. Joillekin he ovat erinomaisia ​​omalla alallaan, esimerkiksi Hadoop, joka sallii optimoidun tallennuksen edistyneellä algoritmilla, jonka Google on toteuttanut: MapReduce tai Kafka, jota käytetään viestinvälittäjänä. Se on erittäin tehokas, kun haluat levittää paljon tietoa eri virrat.

Suoratoistossa on paljon tekniikoita. Jos tutkit erilaisia ​​olemassa olevia käyttötapoja, tien löytäminen on yksinkertaisempaa. Otetaan esimerkki tietovirran prosessoinnista, tällä hetkellä alalla on monia tekniikoita ja kaikilla niistä on hyviä ja huonoja puolia. Pari yritystä, kuten Google (Cloud DataFlow, josta on tullut Apache Beam) tai Spotify (SCIO), tekivät oman tekniikansa ongelman ratkaisemiseksi. Jos otamme käyttöön Vente-Priveen käyttötavan, monet tiedot kerätään sovellusliittymällä, joka työntää ne Kafkaan. Ongelmallista oli koota tiedot reaaliajassa tai historian kanssa samalla tekniikalla, jotta se olisi yksinkertaisinta mahdollista toteuttaa. Tässä on yksinkertaistettu käyttötapa, jonka olemme tehneet.

Pikakäyttölaukku

Tapaus on hyvin yksinkertainen: Kafkassa on paljon tietoa (joitain tapahtumia), meidän on luotava KPI (Key Performance Indicator) ja työnnettävä aggregoidut tiedot tietokantaan. Meidän on nyt löydettävä oikeat tekniikat, ensin virtauskäsittelyn toteuttamiseksi. Tätä varten käytettävissämme on joitain tekniikoita:

Nämä ovat kehyksiä, jotka helpottavat datan aggregointia, useimmat niistä käyttävät Java-kieltä.

Teimme nopean vertailukohdan valintasi yksinkertaistamiseksi, vaatimukset olivat yksinkertaiset:

· Asiakirjat: Tuen laatu.

· Yhteensopivuus: Se on yhteensopiva toteutettujen tekniikoiden kanssa.

· Aloittaminen: Aika saada todiste konsepista.

· Käyttöönotto: Suoritettava ja asennettavissa Dockerin kanssa.

· Optimointi: Teknologian laatu syvemmälle.

Menetelmä kriteerien määrittämiseksi oli yksinkertainen, testasimme pistettä, jos se ei ollut negatiivinen ja esto, siirryimme seuraavaan tekniikkaan.

Tässä tapauksessa palkki on sopivin. Yksityiskohtaisesti, se sisältää monia suuria tietotekniikoita, kuten Kafkan lukeminen, Cassandran tulo / lähtö ja monet muut. Tapa hallita tietovirtoja putkijärjestelmällä on erittäin optimoitu. Se juoksutapa on myös erittäin kätevä, sinulla on mahdollisuus ajaa “ensi käden” kautta tai tiettyjen juoksijoiden, kuten Spark tai Flink, kanssa. Mikä tuo Apache Beamin positiiviseen kohtaan, skaalautuvuuden. Kun sinulla on suuri määrä käsiteltävää dataa, sinun on suoritettava useita aggregaattoreita samanaikaisesti, tarvitset skaalattavaa tekniikkaa, kuten Beam, pullonkaulojen välttämiseksi. On joitain negatiivisia kohtia, mutta emme estä, kuten aikasarjatietokantojen tuotos, tässä tapauksessa käytämme vain aikasarjoina Scylla-tietokantaa (C ++ Cassandra -kerros) virallisella tietojen visualisoijalla Apache Zeppelinillä. Lisäksi Apache Beam on nuori tekniikka, joten yhteisöstä on suuri puute, ja jos sinulla ei ole Java-kielen mukavuutta, on erittäin vaikea ymmärtää sen toimintaa.

Kun olet valinnut joukon tekniikoita, sinun on otettava ne käyttöön, otettava käyttöön ja testattava. Suuri tietoympäristö kasvaa nopeasti ja on tärkeää, että sillä on käsi kädessä. Varmista, että kaikki tekniikat voidaan testata ja ottaa käyttöön (Gitlab CI on erittäin kätevä siihen). Monet kehittäjät työskentelevät isojen tietojen parissa, mutta yhteisö on silti erittäin heikko. On myös erittäin tärkeää osallistua siihen.

Tässä on joitain linkkejä pidemmälle:

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/

Tekijät: Paul Julien, Guillaume VERNERET, Mewen LE RESTE