Grafowe bazy danych - jak naprawdę mogę ich użyć w realnym świecie?
Ostatnio dużo słyszymy o grafowych bazach danych. I choć ten typ bazy danych nie jest nowy, przykłady użycia są ciąle te same. Najczęściej są to artykuły- wypełniacze potrzebne do promocji treści wiec nie pisane przez osoby które naprawdę używają grafowych baz danych.
W tym artykule chcemy podzielić się z Wami przykładami użycia w realnym świecie, w firmach dużych i całkiem małych. Gdzieś na końcu powiemy że takie bazy danych są fantastyczne w podpowiadaniu kto jeszcze jest przyjacielem Klary i który bank jest zamieszany w pranie pieniedzy ale, nie oszukujmy się, wiekszość z Was nigdy nie będzie mieć takich potrzeb. Jak najbardziej będzie jednak chcieli się dowiedzieć które produkty zarekomendować klientom by zwiększyć sprzedaż, dotrzeć szybko do informacji, nie zgubić orientacji w aktywnościach klientów, dokonać obliczeń zdecydowanie szybciej niż to robisz teraz.
Obliczenia
Choć praktycznie wszystko co jest możliwe do zrobienia w grafowej bazie danych, jest także możliwe do wykonania w relacyjnej, grafowe robią wiele takich obliczeń zdecydowanie szybciej. Np. wyobraź sobie zapytanie MySQL które oblicza percentyl lub medianę cen produktów. Możesz? A teraz napisz takie zapytanie i zmierz ile czasu czekasz na jego wykonanie. Nawet nie musisz - nie będą to milisekundy. A w grafowej bazie danych, np Neo4j, będą. Tak więc jeśli np. budujesz funkcję która w programie wyświetli sugerowaną cenę przy tworzeniu oferty, użyj raczej grafowej bazy danych niż relacyjnej. Nie chodzi tu zresztą tylko o czas dostarczenia danych. Same zapytanie będzie prostsze, a baza posiada już gotowe funkcje. Czego nie możesz powiedzieć o wielu relacyjnych bazach danych - by np. wyliczyć percentyle trzeba wykonać wiele linijek kodu i poskładać rezultaty tych obliczeń.
Rekomendacje produktów
Ileż to razy trafiliśmy w Internecie na „klienci którzy kupili ten produkt kupili również…” albo "może zainteresuje Cię jeszcze..."
Takie podpowiedzi to najczęściej proste zapytanie „wybierz z koszyków 5 najczęściej kupowanych produktów które były sprzedane z produktem X”. Bardzo często listy z rekomendacjami są statyczne. Są to np. na stałe powiązane produkty z kategorii do których należy produkt lub co jakiś czas uaktualniane listy powstałe w wyniku przeszukania historii zakupów klientów.
Możemy jednak tworzyć rekomendacje produktów w czasie rzeczywistym, dokładniejsze, bazujące na szerszym zbiorze danych. Technologia która umożliwia dostarczanie takich informacji to grafowe bazy danych. Grafowa baza danych dostarczy rezultat błyskawicznie co jest istotne w przypadku sklepów internetowych.
Ale rekomendacje produktów to nie tylko sklepy internetowe. Rekomendacji możesz użyć do tworzenia personalizowanego e-mailingu, przygotowywania ofert. To są potrzeby nie tylko internetowych gigantów ale też całkiem małych firm. Przeczytaj więcej na naszym blogu jak zbudować silnik rekomendacji w Neo4j.
Analiza opini klientów
Większość firm chce wiedzieć, co mówią o nich klienci, ale nikt nie ma czasu na przeczytanie 1000 odpowiedzi na ankietę lub tylu recenzji produktu. Zamiast tego oczekujemy krótkiego podsumowania. Najczęściej przy ocenie produktu widzimy ranking gwiazdek – im produkt lepszy, tym więcej ich otrzymuje. Ale gwiazdki nie powiedzą nam co w tym produkcie klienci cenią najbardziej, co najmniej.
Tradycyjne techniki Natural Language Processing polegają na zliczaniu wystąpień danych słów lub wyrażeń w tekście. Często tekst poddany zostaje analizie „machine learning” i „training” co jest niczym innym jak raczej prymitywną, siłową metoda klasyfikowania tekstu na podstawie wcześniej odpowiednio sklasyfikowanego materiału. Z pomocą grafowej bazy danych możesz zbudować bardziej zaawansowany NLP. Co więcej, możesz to zrobić używajać do tego celu produktu open source. Czytaj więcej o tym temacie na naszym blogu.
Wyszukiwanie
Czasami w projekcie mamy potrzebę przeszukania zbioru i znalezienia podobnej frazy/zwrotu. Np. chcemy sprawdzić czy dane które wpisuje klient są poprawne a nie możemy zastosować zamkniętego słownika bo napewno nie obejmie wszystkich potencjalnych nazw.
Innym przykładem może być znalezienie podobnego produktu w bazie danych; klient zwrócił się do nas z prośbą o wycenę produktu określonego przez niego jako 'Juoksentelisinkohan Hyppytyynytyydytys'. Szukamy w naszym katalogu produktów czy mamy taki lub podobny produtk. Jeśli nasza baza produktów zawiera więcej niż 100 tysięcy produktów, będzie nam bardzo trudno przeszukać ją ręcznie. Tym bardziej że produkt ''Juoksentelisinkohan Hyppytyynytyydytys'' to tylko jeden ze 150 o których wycenę poprosił klient. Potrzebujemy oprogramowania które wykona tę pracę za nas. Zobacz jak można zbudować taką wyszukiwarkę w Neo4j.
Zarządzanie ścieżką klienta
Droga klienta nie jest prostą i skończoną serią kroków: to złożony i czasami sprzeczny zestaw interakcji w wielu kanałach. Mapa podróży klienta to wizualna reprezentacja podróży klienta - pomaga zorganizować procesy w firmie w taki sposób, aby klient mógł cieszyć się „płynnym doświadczeniem” Twojej marki we wszystkich punktach kontaktu.
To jest punkt, w którym często słyszymy o „doświadczeniu klienta”. Ale doświadczenie klienta nie jest synonimem podróży klienta - to jest jej część. Bez względu na to, jaką interakcję mamy z klientem, powinna ona mieć odpowiedni kontekst. Klient może poruszać się między kanałami, korzystać z różnych urządzeń i być aktywny w różnych punktach styku, poszukując produktu, kupując, korzystając z usług lub oceniając produkt lub usługę. Wszyscy jako klienci lubimy odpowiednie i spersonalizowane informacje. Czujemy się wykluczeni, gdy mamy do czynienia z firmami, w których przy każdym kontakcie musimy zapewnić odpowiedni kontekst. Czytaj więcej jak możesz użyć grafowej bazy danych do zapewnienia właściwego widoku klienta - odpowiedniego kontekstu.
Funkcja 'mostu' między starymi a nowymi technologiami
Grafowe bazy danych doskonale nadają się do utworzenia modelu hybrydowego. Wszyscy wiemy jak trudno jest wymienić komponenty systemu ktore są przestarzałe. Grafowa baza może służyć jako nowoczesny interfejs który korzysta z przestarzałych systemów w tle - albo jest to docelowa architektura, albo model tymczasowy.
Oszczędność czasu
Zapytania SQL są często dłuższe i wymagają większej atencji niż zapytania skomponowane np. w języku Cypher (język grafowej bazy danych Neo4j). Bardzo często pobieramy odpowiednie dane z wielu tabel w relacyjnych bazach danych używając poleceń JOIN. I to jest punkt gdzie grafowe bazy danych zdecydowanie górują nad relacyjnymi bazami danych. Takie polecenia wykonywane są często w czasie mierzonym w milisekundach.
Grafowa baza danych nie musi mieć z góry ustalonej struktury przechowywania danych. Łatwo jest zatem dodać kolejny typ danych, kolejne połączenia między nimi. Zarówno uruchomienie grafowej bazy danych (myślimy o Neo4j) jak i wgranie danych jest niezwykle łatwe i błyskawiczne co czyni z niej doskonałe środowisko do różnego rodzaju analiz ad hoc.
Social media i fraudy
Tak, jak obiecaliśmy, wymieniamy te funkcje :-) Ponieważ natywną funkcją grafowych baz danych jest obsługa relacji, nie znajdziesz lepszego produktu do zbudowania drugiego Facebook'a lub Linkedin. Ponieważ zakupy klientów lub ich transfery to też 'relacje' ze sklepem czy bankami, grafowe bazy danych doskonale zobrazują nienaturalne zagęszczenia, anomalie takich połączeń co może oznaczaczać wyłudzanie towarów, użycie fałszywej karty kredytowej czy nieautoryzowane przelewy. Więcej przykładow na stronie Neo4j.