Zašto bi programeri trebali koristiti baze podataka grafikona

Prije dvadeset godina moj je razvojni tim izradio mehanizam za obradu prirodnog jezika koji je skenirao oglase o zaposlenju, automobilima i nekretninama za kategorije koje se mogu pretraživati. Znao sam da imamo težak izazov upravljanja podacima. Podaci u nekim vrstama oglasa bili su relativno neposredni, poput identificiranja marki automobila i modela, ali za druge je bilo potrebno više zaključka, poput identificiranja kategorije posla na temelju popisa vještina.

Razvili smo model metapodataka koji je obuhvatio sve pojmove koji se mogu pretraživati, ali mehanizam za obradu prirodnog jezika zahtijevao je da model izloži značajne odnose metapodataka. Znali smo da je projektiranje modela metapodataka s proizvoljnim vezama između podatkovnih točaka u relacijskoj bazi podataka složeno, pa smo istraživali pomoću objektnih baza podataka za upravljanje modelom.

Ono što smo tada pokušavali postići s objektnim bazama podataka, danas se može bolje izvesti s bazama podataka grafikona. Grafičke baze podataka pohranjuju podatke kao čvorove i podatke koji specificiraju njihov odnos s drugim čvorovima. Oni su provjerena arhitektura za pohranu podataka sa složenim odnosima.

Korištenje baza podataka grafikona sigurno je poraslo tijekom posljednjeg desetljeća jer su tvrtke razmatrale druge NoSQL i tehnologije velikih podataka. Globalno tržište baza podataka grafova procijenjeno je na 651 milijun dolara u 2018. godini, a predviđa se da će porasti na 3,73 milijarde do 2026. No, mnoge druge tehnologije upravljanja velikim podacima, uključujući Hadoop, Spark i druge, zabilježile su mnogo značajniji rast popularnosti, usvajanja vještina, i slučajevi uporabe u usporedbi s bazama podataka grafikona. Za usporedbu, veličina tržišta velike podatkovne tehnologije procijenjena je na 36,8 milijardi USD u 2018. godini i predviđa se da će porasti na 104,3 milijarde USD do 2026. godine.

Htio sam razumjeti zašto više organizacija ne razmatra baze podataka grafikona. Programeri razmišljaju u objektima i redovito koriste hijerarhijske prikaze podataka u XML-u i JSON-u. Tehnologi i poslovni dionici suštinski razumiju grafikone jer je Internet međusobno povezan graf putem hiperveza i koncepata poput prijatelja i prijatelja prijatelja s društvenih mreža. Zašto onda više razvojnih timova nije koristilo baze podataka grafikona u svojim aplikacijama?

Učenje jezika upita za grafičke baze podataka

Iako je relativno lako razumjeti modeliranje čvorova i odnosa koji se koriste u bazama podataka grafikona, njihovo ispitivanje zahtijeva učenje novih praksi i vještina.

Pogledajmo taj primjer izrade popisa prijatelja i prijatelja prijatelja. Prije petnaest godina osnovao sam putničku društvenu mrežu i odlučio pojednostavniti podatkovni model spremajući sve u MySQL. Tablica u kojoj se nalazi popis korisnika imala je samostalan pristup predstavljanju prijatelja i bio je relativno jednostavan upit za izdvajanje popisa prijatelja. Ali dolazak do prijatelja s popisa prijatelja zahtijevao je čudovišno složen upit koji je uspio, ali nije imao dobru izvedbu kad su korisnici imali proširene mreže.

Razgovarao sam s Jimom Webberom, glavnim znanstvenikom u Neo4j, jednoj od uspostavljenih dostupnih baza podataka o grafikonima, o tome kako sastaviti upit prijatelja prijatelja. Programeri mogu ispitivati ​​baze podataka Neo4j grafikona koristeći RDF (Resource Description Framework) i Gremlin, ali Webber mi je rekao da više od 90 posto kupaca koristi Cypher. Evo kako izgleda upit za izdvajanje prijatelja i prijatelja prijatelja u Cypheru:

MATCH (me:Person {name:'Rosa'})-[:FRIEND*1..2]->(f:Person)

WHERE me f

RETURN f

Evo kako razumjeti ovaj upit:

  • Pronađite mi uzorak na kojem se nalazi čvor s oznakom Osoba i imenom svojstva: 'Rosa' i povežite ga s varijablom "ja". Upit određuje da "ja" ima odlazni odnos PRIJATELJA na dubini 1 ili 2 prema bilo kojem drugom čvoru s oznakom Osoba i veže ta podudaranja na varijablu "f."
  • Pazite da “ja” nije jednako “f”, jer sam prijatelj svojih prijatelja!
  • Vratite sve prijatelje i prijatelje

Upit je elegantan i učinkovit, ali ima krivulju učenja za one koji se koriste za pisanje SQL upita. Tu leži prvi izazov za organizacije koje se kreću prema bazama podataka grafova: SQL je sveobuhvatan skup vještina, a Cypher i drugi jezici za upite grafova nova su vještina za učenje.

Dizajniranje fleksibilnih hijerarhija s bazama podataka grafova

Katalozi proizvoda, sustavi za upravljanje sadržajem, aplikacije za upravljanje projektima, ERP-ovi i CRM-ovi koriste hijerarhiju za kategorizaciju i označavanje informacija. Problem je, naravno, u tome što neke informacije nisu uistinu hijerarhijske i subjekti moraju stvoriti dosljedan pristup strukturiranju informacijske arhitekture. To može biti bolan proces, pogotovo ako postoji unutarnja rasprava o strukturiranju podataka ili kada krajnji korisnici aplikacije ne mogu pronaći informacije koje traže jer se nalaze u drugom dijelu hijerarhije.

Baze podataka grafikona ne samo da omogućuju proizvoljne hijerarhije, već i programerima omogućuju stvaranje različitih pogleda na hijerarhiju za različite potrebe. Na primjer, ovaj članak o bazama podataka grafova može se prikazati pod hijerarhijama u sustavu za upravljanje sadržajem za upravljanje podacima, nove tehnologije, industrije koje će vjerojatno koristiti baze podataka grafova, uobičajene slučajeve korištenja baze podataka grafova ili prema tehnološkim ulogama. Stroj za preporuke tada ima mnogo bogatiji skup podataka kako bi sadržaj uskladio s interesom korisnika.

Razgovarao sam s Markom Kluszom, suosnivačem tvrtke Construxiv, tvrtke koja prodaje tehnologije građevinskoj industriji, uključujući Grit, platformu za planiranje građenja. Ako pogledate raspored komercijalnih građevinskih projekata, vidjet ćete reference na više obrta, opremu, dijelove i reference modela. Jedan radni paket može lako imati stotine zadataka s ovisnostima u planu projekta. Ti planovi moraju integrirati podatke iz ERP-a, modeliranje informacija o zgradama i druge planove projekata te predstaviti stavove planerima, voditeljima projekata i kooperantima. Klusza je objasnio: „Korištenjem baze podataka grafova u Grit-u stvaramo mnogo bogatije odnose o tome tko što radi, kada, gdje, s kojom opremom i s kojim materijalima. To nam omogućuje personaliziranje pogleda i bolje predviđanje sukoba oko rasporeda poslova. "

Da bi se iskoristile prednosti fleksibilne hijerarhije, pomaže dizajnirati aplikacije od temelja pomoću baze podataka grafova. Cjelokupna je aplikacija zatim dizajnirana na temelju ispitivanja grafa i iskorištavanja čvorova, odnosa, oznaka i svojstava grafa.

Opcije primjene u oblaku smanjuju operativne složenosti

Uvođenje rješenja za upravljanje podacima u podatkovni centar nije trivijalno. Infrastruktura i operacije moraju uzeti u obzir sigurnosne zahtjeve; pregledati razmatranja izvedbe radi povećanja poslužitelja, pohrane i mreža; a također operacionalizirati replicirane sustave za oporavak od katastrofe.

Organizacije koje eksperimentiraju s bazama podataka grafikona sada imaju nekoliko mogućnosti u oblaku. Inženjeri mogu rasporediti Neo4j na GCP, AWS, Azure ili iskoristiti Neo4j-ovu Auru, bazu podataka kao uslugu. TigerGraph ima ponudu za oblak i početne setove za slučajeve upotrebe kao što su kupac 360, otkrivanje prijevara, mehanizmi preporuka, analiza društvenih mreža i analiza lanca opskrbe. Također, javni dobavljači oblaka imaju mogućnosti baze podataka grafikona, uključujući AWS Neptun, Gremlin API u Azureovom CosmoDB-u, otvoreni izvor JanusGraph na GCP-u ili grafičke značajke u Oracleovim uslugama baze podataka u oblaku.

Vraćam se svom izvornom pitanju. Uz sve zanimljive slučajeve upotrebe, dostupne zrele platforme baza podataka grafova, mogućnosti za učenje razvoja baze podataka grafova i mogućnosti implementacije u oblaku, zašto više tehnoloških organizacija ne koristi baze podataka grafova?