Jednom kada počnete sa strimingom, sledite tok!

14. 10. 2020.

pexels munkee panic 1027393 1

Striming podataka postao je veoma popularan u industriji velikih podataka. Koristi se za obradu velikih količina podataka iz različitih izvora koji se kontinuirano generišu, u stvarnom vremenu. Kada kažemo „u stvarnom vremenu“, moramo da razumemo da ono može da varira od nekoliko milisekundi do nekoliko minuta.

Osim što nam striming omogućava obradu i obogaćivanje u stvarnom vremenu, takođe značajno poboljšava performanse. Skup podataka iz određenog vremenskog perioda se grupiše u paket, a prilikom obrade takvog skupa može doći do problema sa memorijom i skladištenjem.

U obradi strima se generišu mikro-serije koje stižu u milisekundama, zatim se utvrđuju određeni uslovi na osnovu kojih možemo preduzeti predviđene korake. Kada mikro-serije prođu kroz tok koji se sastoji od učitavanja, transformacije i eventualnih agregacija i uslova, podaci nestaju iz memorije.

Zaključak je da možemo raditi na obradi mnogo veće količine podataka na jeftinijem hardveru ako se izabere odgovarajući alat i postavi kvalitetna obrada.

batch vs stream processing

Osnove striminga

Latencija

Latencija je vremenski period između aktivnosti na izvoru, a to može biti transakcija, veblog, aktivnost na baznoj stanici ili mrežama, do trenutka kada se podaci pohrane u odgovarajućem obliku.

Nivo latencije ili kašnjenje koje možemo da prihvatimo, zavisi od tipa aplikacije na kojoj radimo i slučaja korišćenja. Stoga, pri izboru alata za obradu podataka u stvarnom vremenu, prvi preduslov je da latencija dobijena izborom određenog alata ne bude duža od kašnjenja koje možemo tolerisati. Na primer, bezbednost i otkrivanje prevare su neki od primera slučajeva koji ne tolerišu veliki period latencije.

Vreme događaja i vreme obrade

Vreme događaja je vreme kada se neke transakcije dešavaju. Vreme obrade je vreme obrađivanja istog unutar našeg posla. U idealnom svetu bez ikakve latencije ili odlaganja, te dve vremenske oznake treba da budu iste. Nažalost, to je teško moguće, ali mi težimo da smanjimo jaz između njih.

Spojevi

Uključivanje u grupnu obradu je uglavnom trivijalna stvar, ali u strimingu to nije tako jednostavno. Ako želite da spojite striming deo svog toka sa nekom statičkom tabelom, to će biti skoro isto kao i grupno spajanje, međutim, ako imate tendenciju da spojite dva toka, stvari postaju komplikovane. Zbog toga je zaista važno posvetiti posebnu pažnju zapisima datuma i vremena kako biste izbegli pogrešne proračune i moguću prekomernu upotrebu resursa.

Stateless i Stateful aplikacije

Svaki blok ili prozor treba detaljno definisati. Jedan od parametara koji su neizbežni je stanje prozora. Same reči nam govore o čemu se radi. Stateless je vrsta prozora u toku u kojem se ne čuvaju zapisi, što znači da se istorija ne prikuplja u određenom vremenskom okviru i uglavnom se koristi u prozorima za filtriranje, spaja se sa statičkom tabelom za obogaćivanje toka ili izračunavanje na nivou jednog zapisa.

Stateful je sušta suprotnost tome. Ako prozor definišemo kao stateful, u obavezi smo da definišemo vremenski okvir u kome će se podaci čuvati. Koristi se kao korak pre agregiranja na nivou određenih vremenskih intervala.

Alati za striming

StreamingTools

Uglavnom zahvaljujući razvoju alata iz Apache fondacije i razvoju klaud rešenja, danas nam ne nedostaje softver za striming. Kao što ste možda već zaključili, da biste razvili aplikaciju za striming, potrebno je poznavanje programiranja, dok potreban nivo znanja može varirati u zavisnosti od složenosti slučaja upotrebe i alata koje odaberete. U jednom od narednih tekstova ćemo preciznije pisati o jednom od alata sa slike ispod

Slučajevi upotrebe striminga

Telekomunikacije. Proces i analiza podataka o događajima (CDR). Sa pristupom strimingu, možete imati korišćenje podataka ili glasa u stvarnom vremenu po klijentu i pokrenuti dodatne kampanje u vezi sa tim. Koristeći podatke o performansama mreže možete detektovati anomalije na vašim baznim stanicama u gotovo stvarnom vremenu. Ovo se može koristiti zajedno sa vašim alarmnim sistemom da obogati informacije o kvarovima.

Bankarstvo. Pristup strimingu će vam potrošiti vreme da odgovorite u slučaju bilo koje lažne aktivnosti. Bankarstvo je verovatno industrija koja najviše obećava kada su u pitanju slučajevi korišćenja u stvarnom vremenu. Jedan od njih je personalizacija kupaca. Ovim pristupom možete poslati optimalnu ponudu u zavisnosti od lokacije, transakcije, konteksta itd.

Maloprodaja. Maloprodajna industrija nam takođe daje ogroman spektar slučajeva upotrebe koje treba analizirati u stvarnom vremenu. Možemo je koristiti za bolje sisteme preporuka, pokretače zasnovane na lokaciji, pripremiti se za tržišne trendove i personalizovane ponude. U ovoj industriji pametno i pravovremeno snabdevanje, praćenje je ključno, tako da vam upravljanje zalihama može sigurno uštedeti mnogo novca i truda.

Automobilska industrija.  Svi znaju za Uberaov slučaj upotrebe. Svrha pristupa strimingu je pronalaženje najbližeg besplatnog automobila za optimizaciju troškova i povećanje zadovoljstva kupaca. Predviđanje saobraćaja i optimizacija ruta moraju biti urađeni na vreme – što ovu industriju čini savršenom osnovom za aplikacije za striming.

U konkurentnom okruženju i industriji, kakva je danas, zaista je potrebno preduzeti prave korake u najkraćem mogućem roku da bismo bili ispred konkurencije. Zahvaljujući propusnosti mreža koje imamo, oblaku, jeftinom hardveru i razvoju alata koje danas koristimo, možemo i treba da preduzmemo sve korake da iskoristimo prednosti velike količine podataka koje primamo u stvarnom vremenu iz raznih sistema, koje do sada nismo mogli da obradimo. Predlozi bi bili da počnete sa najjednostavnijim slučajem korišćenja koji odgovara vašem poslovanju, a zatim izgradite naprednija rešenja povrh toga, bez žurbe sa složenošću.

U sledećem postu ćemo pisati konkretnije o Flink-u i korišćenju u okruženju za striming – ostanite sa nama.

 

 

 

The cover photo is taken from https://pexels.com/@munkee-panic-272941