Blog

Neo4j u telekomima

Tina Knezevic

Graf baze podataka

Baze podataka mogu se podijeliti na one koje koriste SQL (engl. Structured Query Language) upitni jezik i one koje ga ne koriste, tzv. NoSQL baze podataka. Jedna od vrsta NoSQL baza podataka su graf baze podataka. Graf baze podataka temelje se, kako i samo ime kaže, na grafu. Graf sadrži čvorove (engl. nodes) i veze između tih čvorova (engl. relationships), a sami čvorovi i veze mogu imati dodatne atribute (engl. properties) koji ih pobliže opisuju. Ono što graf baze podataka razlikuje od drugih oblika baza podataka je njihova efikasnost prilikom obrade povezanih podataka i olakšano izvođenje samih upita. Graf baze podataka temelje se na odnosima susjednih čvorova i time olakšavaju skupljanje i agregaciju informacija nad milijunima čvorova i veza.

Slika 1. Prikaz razlike relacijske i graf baze ovisnosti servera. Odgovaranje na pitanja poput Ovisi li Server D o Serveru C? Ako se Server B ugasi hoće li to utjecati na Server D?

Neo4j

Neo4j je open-source, NoSQL, transakcijska graf baza podataka usklađena s ACID-om za pohranu i obradu podataka koja je javno dostupna od 2017. godine. Neo4j se vodi kao native graph database što u prijevodu znači da implementira pravi graf model nad svim slojevima, sve do razine pohrane podataka. Podaci se ne pohranjuju kao „apstrakcija grafa“ na vrhu neke druge tehnologije, već u svom izvornom graf obliku. Upravo takva implementacija omogućuje Neo4j-u da u svojim funkcionalnostima nadmašuje druge graf baze podataka i cijelo vrijeme ostaje fleksibilan. Neo4j omogućuje ACID transakcije, ima podršku za klastere i podržava runtime failover. Zbog toga se godinama koristi u različitim industrijama i u velikim poduzećima s različitim opterećenjima sustava [1]. Također, potrebno je napomenuti da Neo4j omogućuje različite dodatne funkcionalnosti poput korištenja algoritama podatkovne znanosti pomoću kojih je moguće vrlo lako otkrivati dodatne vrijednosti podataka koje su skrivene u njihovima međusobnim vezama.

Slika 2. Korištenje Graph Data Science biblioteke kao dodatne funkcionalnosti Neo4j graf bazama

Telekomunikacijska industrija

Telekomi su jedna od industrija koja se okrenula graf bazama u različitim aspektima svoga poslovanja. U današnje doba razvoj ove industrije uvelike povećava složenost praćenja i poboljšanja funkcionalnosti samih procesa. Uzmemo li u obzir da se postojeća infrastruktura danas miješa s konceptima kao što su virtualizacija mrežnih funkcija i softverski definirane mrežne tehnologije, također uz sve prisutnije povećanje automatizacije sustava, pratiti usluge na svakom pojedinačnom sloju komunikacije postaje iznimno teško. Budući da su tradicionalna rješenja nerijetko previše hijerarhijski nastrojena i nisu dovoljno fleksibilna kako bi išla u korak s današnjim složenim i dinamičnim mrežama, pružatelji telekomunikacijskih usluga primorani su okrenuti se novim, skalabilnim rješenjima koja mogu osigurati usluge koje će im pomoći da u stvarnom vremenu i vrlo lako otkrivaju utjecaje na krajnje korisnike te pravovremeno reagiraju. Telekomi se okreću rješenjima koja točno odražavaju i omogućuju jednostavnu vizualizaciju njihovih visoko međusobno povezanih sustava i usluga koje često dolaze iz različitih izvora [2].

Mreža jest graf

Pogledamo li prikaz mreže nekog telekomunikacijskog sustava vidimo da se uistinu radi o grafu koji se sastoji od različitih čvorova i veza između njih. Čvorovi su zapravo sustavi i usluge, bilo da se radi o fizičkim uređajima poput usmjeritelja, poslužitelja, prekidača, o softverskim rješenjima kao što su različite aplikacije, o aktivnostima kao što su pozivi korisnika i prijenosi medijskih sadržaja ili se pak radi o informacijama o klijentima poput njihovih prava ili pretplata. Sve te informacije dolaze iz različitih izvora, vežu se jedna uz drugu i međusobno ovise. Upravo zato graf prikaz ovakve topologije potiče bolje razumijevanje povezanosti i praćenje tijeka informacija u ovakvim sustavima budući da ih prikazujemo onakvima kakve ustvari i jesu, umrežene [2].

Slika 3. Usporedba tradicionalnog i graf pristupa (prilagođeno [2])

Neo4j, kao jedna od najkorištenijih graf baza podataka, uočava veze između podataka i tako jednostavno gradi grafove složenih mreža i servisa. Uz to, relacijske baze podataka zahtijevaju pomno razvijanje shema i izgradnju složenih joinova kako bi se mapirale veze kroz različite slojeve mreže, a to u konačnici otežava kasnije dodavanje novih podataka i slojeva. Također, Neo4j omogućava osiguranje usluge dobrim performansama i predvidljivošžu poput mogućnosti praćenja korisničkog iskustva u stvarnom vremenu kako bi se automatizirali odgovori. To je omogućeno karakteristikom da je Neo4j native graph database te na taj način nadmašuje performanse relacijskih i drugih graf baza u ovakvim aktivnostima [2].  Zbog spomenute činjenice vrlo je česta uporaba graf baza podataka u sustavima operativne podrške koji se koriste za upravljanje i dizajniranje mreže te praćenje međusobne ovisnosti komponenti mreže kao i rano otkrivanje problema i pravovremeno reagiranje. Također, osim u operativnim sustavima, česta je primjena i u sustavima poslovne podrške za praćenje informacija vezanih za korisnike.

Neo4j u akciji

Jedan od stvarnih primjera korištenja Neo4j graf baze podataka je u analizi odljeva korisnika. Za potrebe takve analize pomoću graf baze moguće je pratiti povezanost korisnika preko njihovih međusobnih poziva unutar iste mreže. Na taj način omogućuje se pravovremeno reagiranje na bliske korisnike nekog korisnika koji je prekinuo uslugu kako bi se spriječio daljnji odljev korisnika. Specifičan primjer korištenja Neo4j graf baza u praksi, koji koristi kompanija Telenor, je u sustavu koji omogućuje poslovnim korisnicima upravljanje pretplatama i planovima unutar njih.  Rastom broja korisnika kompleksnost samog sustava raste, te u tradicionalnom relacijskom pristupu, za kompanije s velikim brojem korisnika koji koriste i različite pretplate, sama autorizacija takvog sustava trajala bi i preko 20 minuta (zbog masivnih joinova tablica s ogromnom količinom podataka). S druge strane, modeliranje sustava preko graf baza rješava taj problem budući da graf prirodno prikazuje vezu između korisnika i njihovih pretplata kao i strukturu samih privilegija pristupa i mogućnosti upravljanja pretplatama. Na taj način osiguran je pravovremeni pristup sustavu s najnovijim podacima.

Slika 4. Primjer grafa za upravljanje kontrolom pristupa (Telenor) [3]

Još jedan primjer uporabe Neo4j baze podataka je već u spomenutom upravljanju i kontroli mrežom. Jedna od koristi grafa kod kontrole mreže je analiza utjecaja ispada komponenti na sustav. Korištenjem graf baza vrlo je lagano pratiti međusobnu ovisnost komponenti i reagirati pravovremeno na moguće ispade, obavještavajući korisnika o mogućim poteškoćama te preusmjeravanjem mrežnog prometa. Na taj način pružatelji usluga smanjuju rizik potencijalnih penala kod neočekivanih smetnji i nemogućnosti pružanja usluge. Također, jedna od bitnih uloga graf baze podataka je i u upravljanju korisničkim podacima. Pružatelji usluga imaju brojne korisnike, poslovne i privatne, a isto tako pružaju i brojne usluge koje nerijetko imaju različite planove i opcije. Količina podataka koja se prati postaje sve složenija, a korištenjem grafova moguće je vrlo lako i pravovremeno pratiti obrasce korisničkog ponašanja i na taj način profilirati korisnike te im nuditi usluge prilagođene njihovim potrebama. Graf baze također stvaraju baze znanja koje omogućuju stvaranje logičkih veza između brojnih povezanih pojmova kako bi se što prije došlo do željenih informacija. Takve baze znanja u širokoj su primjeni kod helpdeskova i u prodajnim centrima velikih telekomunikacijskih kompanija jer omogućuju djelatnicima da vrlo brzo dolaze do informacija vezanih za korisnike i usluge te tako ubrzaju i poboljšaju svoje poslovne procese.

Zaključak

Graf baze podataka postale su vrlo popularan izbor za vođenje i upravljanje kompleksnim sustavima u telekomunikacijskoj industriji upravo zbog njihovog vrlo intuitivnog i fleksibilnog prilagođavanja samoj strukturi takvih sustava. Graf baze pokazale su se uspješnima u upravljanju operativnim i poslovnim sustavima, kao i u upravljanju Internetom stvari, analizi prijevara te analizi usklađenosti s propisima. Brojne telekomunikacijske kompanije i ostale koje se bave proizvodima za računalne mreže poput npr. norveškog Telenora, njemačkog Telekoma i američkog Cisco Systemsa okrenule su se graf bazama podataka kako bi poboljšale i unaprijedile svoja poslovanja. Za očekivati je da će popularnost graf baza podataka nastaviti rasti s daljnjim razvijanjem telekomunikacijske industrije i svih poslovnih aspekata vezanih za nju.

Reference:

[1] What is Graph Database?, https://neo4j.com/developer/graph-database/

[2] Amy E. Hodler, Optimize Network Services, neo4j.com

[3] Jim Webber, The Top 5 Use Cases of Graph Databases, neo4j.com