Blog

Neo4j u prodaji

Tina Knezevic

U prošlom blogu Neo4j u Telekomima pokazali smo neke primjere korištenja graf baza podataka u telekomunikacijskoj industriji. U ovom blogu zavirit ćemo u svijet prodaje i otkriti kako graf baze podataka mogu pomoći prilikom personaliziranja kupovine ili pak pri analizi lanca prodaje. No najprije, podsjetimo se ukratko što su to graf baze podataka.

Graf baze podataka

Graf baze podataka su vrsta NoSQL baza podataka koje svoju specifičnost kriju u tome što podatke spremaju i prikazuju u obliku grafa. Grafovi se sastoje od međusobno povezanih čvorova i odlično su rješenje za sustave s velikom količinom jako povezanih podataka.

Najraširenija graf baza danas je Neo4j, koja je, uz to što je open-source graf baza podataka, usklađena i s ACID principima za pohranu i obradu podataka, kako bi sustavima dala maksimalnu sigurnost i efikasnost prilikom obavljanja zahtjevnih transakcija.

Slika 1. . Prikaz čvorova i veza u graf bazi podataka

Prodaja i trgovina

Današnja prodaja, tj. prodaja modernog doba, suočava se s novim izazovima koji su sve kompleksniji i izazovniji. Zahvaljujući malim troškovima i velikim količinama proizvoda, internetski divovi poput Amazona mogu brže isporučiti proizvode i to po nižoj cijeni od manjih trgovaca. Kako bi ostali relevantni, trgovci moraju imati real-time kontrolu nad svojim skladištima, plaćanjima te sustavima dostave. No, da bi pratili izazove koji dolaze, pogotovo s online trgovinom, svoje zastarjele sustave moraju modernizirati novim prikladnijim rješenjima. Stoga ćemo u ovom blogu prikazati par načina kako trgovci rješavaju svoje goruće probleme i to upravo koristeći graf baze podataka.

Personalizirana preporuka proizvoda i promocija

Dokazano je da je real-time preporuka proizvoda kod online kupovine uspješan način povećanja prihoda, ali i korisničkog zadovoljstva. No bitno je naglasiti da kupci očekuju dobre preporuke i vrlo su kritični prilikom nepovezanih i loših preporuka. Primjerice kupac sigurno neće biti zadovoljan ako mu se preporuči proizvod koji je već ranije kupio. Stoga preporuke moraju biti personalizirane i moraju se temeljiti na individualnim preferencijama, povijesti kupnje, trenutnoj košarici, interesima i potrebama kupca.

Princip implementacije

Real-time preporuke zahtijevaju podatke koji su povezani s brojnim i kompleksnim podacima o proizvodima i kupcima kako bi dobile uvid u želje kupaca i trendove među proizvodima. S tehničke strane to se ne može postići tradicionalnim relacijskim pristupom budući da bi to zahtijevalo vrlo kompleksne upite s brojnim joinovima, koji bi narušili performanse takvog real-time sustava.

Slika 2. Prikaz međusobno povezanih podataka u relacijskim bazama

Praktički po samom svom dizajnu, graf baze omogućuju brzo pretraživanje prošlih narudžbi kupaca, kao i dobivanje novih informacija o novim interesima kupaca tijekom njihovog trenutnog posjeta online trgovini. Razlog tomu leži u karakteristici graf baza gdje se veze između podataka tretiraju kao first-class entiteti, što znači da dobivaju jednaku važnost kao i tablice u relacijskim sustavima. Ovaj princip omogućuje trgovcima da brzo objedinjuju prošle i sadašnje interese, tj. informacije o kupcima i tako im predstave prave personalizirane preporuke.

Slika 3. Prikaz međusobno povezanih podataka u graf bazi podataka

Primjer iz poslovnog svijeta

Jedna kompanija koja spada u top 10 američkih trgovaca okrenula se Neo4j-u nakon što joj je sustav skoro doživio krah zbog prekomjerne količine prometa od strane online kupaca tijekom potrošačkog dana poznatog kao Cyber Monday 2015. godine. Sustav je bio implementiran na relacijskoj bazi podataka i na Cyber Monday nudili su popust za online kupovinu od 15%. Uspješno su privukli više klijenata nego konkurencija, ali, iako je stranica funkcionirala, kasnilo je 90% korisničkog prometa. Glavni problem bio je u funkcionalnosti koja je pozivala kupce da dodaju last-minute dodatne proizvode u svoju već izabranu košaricu.

Kako bi preporučili pravi proizvod svakom kupcu korišten je sustav koji je analizirao prošle korisničke kupnje i trenutnu košaricu te povezivao te podatke s 15-30 slojeva podataka, kao što su vrste promocija, imena proizvoda, proizvođača, kategorija itd., sve to u real-timeu. Budući da je takav sustav bio implementiran s relacijskom bazom podataka, jednostavno nije bio adekvatan za obavljanje takvog zadatka te je prijelaz na graf bazu podataka bio logičan odabir koji je onemogućio ponavljanje ovakvog problema.

Grafovi za usmjeravanje usluge isporuke e-trgovine

Online kupovina dobila je veliki zamah u posljednjem desetljeću, a svoj vrhunac zasigurno je postigla početkom nedavne globalne pandemije. Ljudi koji su prije bili više skeptični prema ovakvom načinu kupovine, danas su otvoreniji za nju. Toj brzini i količini prodanih proizvoda morali su se prilagoditi kako trgovci tako i dostavne službe. Također, međusobna konkurencija stavlja veliki pritisak na takve usluge, budući da korisnik danas može naručiti pošiljku iz bilo kojeg kraja svijeta. No vrijeme isporuke pošiljke uvelike utječe na njegovo cjelokupno zadovoljstvo.

Kako bi skratili vrijeme dostave, trgovci bi trebali imati uvid u zalihe na skladištima i u distribucijskim centrima, kao i u tranzitne mreže. Oni moraju imati informacije o tome hoće li problem s usmjeravanjem utjecati na kašnjenje pošiljke koja ide iz distribucijskog centra koji se nalazi najbliže kupcu ili će to pak uzrokovati nedostatak proizvoda na skladištu.

Princip implementacije

Podaci za usmjeravanje isporuke e-trgovine zbog svoje visoke međupovezanosti prirodno se mogu prikazati u obliku grafa te su s toga i idealni kandidati za korištenje graf baza podataka. Razlog tomu nije samo velika povezanost podataka te potreba za brojnim „skokovima“ po grafu kako bi došli do željene informacije, već i potreba za praćenjem različitih putanja koje mogu imati brojne permutacije. One se mogu optimizirati kako bi se našle najbolje dostavne rute ovisno o danima kroz godinu i samim proizvodima.

Primjer iz poslovnog svijeta

Jedna od najvećih svjetskih e-trgovina eBay odlučila se na prelazak na Neo4j graf baze podataka za usmjeravanje usluge dostave. Na takvu su se odluku odlučili nakon što se njihov postojeći sustav, zasnivan na relacijskim bazama podataka, nije više mogao nositi sa sve većim povećanjem prometa zbog kojeg su patile i njihove, inače vrlo popularne, usluge poput same-day delivery. Novo rješenje, zasnivano na graf bazama, brže je i do tisuću puta i sve to je postignuto upitima koji zahtijevaju 10 do 100 puta manje kôda nego u prijašnjem sustavu.

Analiza opskrbnog lanca

Današnji su lanci opskrbe veliki te izrazito kompleksni i dinamični, a to ih čini vrlo pogodnim za različite rizike poput prevara, kontaminacije, nesigurnih ili čak nepoznatih izvora sirovina. Ukoliko se pojavi takav propust, bitno je reagirati na vrijeme i detektirati sve dionike lanca opskrbe. Također, većina proizvođača poznaje samo svoje izravne dobavljače te imaju vrlo malo informacija o podrijetlima ostalih sirovina koje čine njihov proizvod.

Slika 4. Detekcija problema u opskrbnom lancu

Proces implementacije
Slika 5. Primjer hijerarhije opskrbnog lanca

Na primjeru prethodne slike možemo vidjeti kako bi izgledao dio ovakvog lanca i zašto bismo za rješavanje tog problema izabrali graf baze podataka. Slika prikazuje jednu robnu marku pizze koja se sastoji od tri sastojka: tijesta, umaka od rajčice i mozzarelle. Svaki od sastojaka ima svog dobavljača, a može imati i više njih kao npr. umak od rajčice. Tijesto se sastoji od više sastojaka tako da i proizvođač tijesta često mora nabaviti potrebne sastojke od drugih dobavljača. Ovakva hijerarhija može se nizati u brojne razine te nam je potreban sustav koji će lako uočavati veze između svih razina i unutar njih.

Primjer iz poslovnog svijeta

Upravo zbog prethodno spomenutih razloga dinamičnosti i nepreglednosti opskrbnih lanaca, pojavila se potreba za platformom koja će omogućiti transparentnost, analizu i lako pretraživanje svih dionika opskrbnog lanca kako proizvođačima tako i krajnjim korisnicima. Ta platforma naziva se Transparency One te joj samo ime ukazuje na najbitniji aspekt njene funkcionalnosti – transparentnost. Kroz platformu je omogućeno dobivanje detaljnih informacija o svim dostavljačima i proizvođačima te se lako može doći do informacija poput:

  • zadovoljavaju li svi dionici lanca određene norme i standarde,
  • koristi li određena robna marka sirovine uvezene iz država u kojima se pojavio problem sa zagađenjem.

Iako je početna implementacija krenula korištenjem relacijskih baza, to se vrlo brzo pokazalo kompleksnim i neefikasnim. SQL upiti postajali su vrlo komplicirani te su zapravo i sami vršili graf pretraživanje tablica služeći se „skupim“ joinovima. S toga se prelazak na graf bazu pokazao kao logičan izbor koji im je omogućio lako slaganje jednostavnih upita koji vraćaju informacije o opskrbnom lancu u trenu.

Zanima li vas još informacija o graf bazama podataka? Pročitajte i druge blogove vezane za serijal graf baze podataka i Neo4j poput Neo4j u Telekomima ili Detekcija zajednica u Euroviziji korištenjem graf baza podataka.