Přehled grafových databází

Předtím, než se pustíme do instalace grafové databáze, tak si ještě představíme jejich základní přehled. Ač nám je nabízeno kolem dvou desítek možností, pro rozhled nám postačí níže zmíněná pětice. Na konci kapitoly si vyhodnotíme nejvhodnější databázi, kterou můžeme využít zdarma v projektu postaveném na jazyku PHP.

Seriál: Grafová databáze Neo4j (4 díly)

  1. Grafová terminologie a dostupné technologie 21.10.2013
  2. Přehled grafových databází 8.11.2013
  3. Modelování dat v Neo4j – Metodika a obousměrné hrany 8.1.2014
  4. Webové rozhraní Neo4j 7.3.2014

Sones GraphDB

Sones GraphDB je vyvíjena v jazyku C# německou společností Sones. Navrženou strukturou se přirovnává k váženému grafu. Jinými slovy se jedná o graf s hranami ohodnocenými reálnými čísly.

Databázi lze provozovat jak na platformě běžící pod Microsoft .NET frameworkem, tak Mono, která zajistí její multiplatformnost. Nadále i jako SaaS (Software as a Service) na cloudové platformě Microsoft Azure nebo Amazon S3, což přináší mnohonásobně větší výkon. Pro přístup k datům je možné využít jedno z mnoha rozhraní (např. Java, C#, WebShell, WebDAV), k nimž se řadí i REST API (Representational State Transfer Application Programming Interface), které nám zaručí nekomplikovaný přístup vzhledem ke zvoleným technologiím aplikace.

Při výběru máme možnost volby ze dvou licencí, pod kterými je GraphDB dostupná. První z nich je open source AGPLv3 (Affero General Public License, version 3) komunitní verze, která nemá tak širokou škálu nabízené funkčnosti jako enterprise verze.

AllegroGraph

AllegroGraph je proprietární produkt tvořený vývojáři Franz, Inc. Návrh databáze je uzpůsoben tak, aby splňoval standardy W3C (World Wide Web Consortium) pro Resource Description Framework, neboli je určen pro manipulaci s propojenými daty a sémantickým webem.

Nabízí početný seznam knihoven pro komunikaci přes REST API s aplikacemi psanými např. v C#, Perl, Ruby a Scala.

Licenční politika popisuje tři verze — Free, Developer a Enterprise, kde první dvě jsou omezeny počtem záznamů v databázi. Mezi širokou klientelu se řadí velikáni jako Ford, Kodak a NASA (National Aeronautics and Space Administration).

Neo4j

Neo4j je jedna z nejpopulárnějších grafových databází ve své kategorii, což implikuje open source řešení, které je implementované v Javě. Pochází z dílny společnosti Neo Technology, kde byla první verze vydána v roce 2007 a od té doby získala celkem velké zastoupení ve vývojářské komunitě, která se nejenom zapojuje do běžných diskuzí https://groups.google.com/group/neo4j, ale i do samotného vývoje https://github.com/neo4j.

Ukládání grafové struktury je v podobě vrcholů, hran a vlastností, pro něž platí limity v řádech desítek miliard. Properties jsou další přidanou hodnotou, kterou může obsahovat každý vrchol nebo hrana v podobě klíč–hodnota. Mluvíme o tzv. property graph database.

Neo4j může být použita buď jako embedded mode (Java, JAR) (Java Archive), nebo jako standalone mode, pomocí kterého můžeme k databázi plnohodnotně přistupovat skrze REST API rozhraní.

FlockDB

FlockDB je tvořena Twitterem pod licencí Apache License, Version 2.0 pro účely analytiky souvisejících vztahů, přičemž doposavad nebyl vyvinut stabilní release. Michael Marr shrnul hlavní rysy FlockDB ve svém článku pro portál DevWebPro:

The biggest difference between FlockDB and other graph databases like Neo4j and OrientDB is graph traversal. Twitter’s model has no need for traversing the social graph. Instead, Twitter is only concerned about the direct edges (relationships) on a given node (account). For example, Twitter doesn’t want to know who follows a person you follow. Instead, it is only interested in the people you follow. By trimming off graph traversal functions, FlockDB is able to allocate resources elsewhere.

Načež mu hned bylo oponováno, že bez traverzování se nejedná o grafovou databázi, ale pouze o tzv. persisted graph.

Ať už se podle definic jedná o cokoliv, od FlockDB můžeme čekat velké věci. Mimo zmiňované cíle se profiluje dalšími, jako je maximální podpora pro operace add/update/remove. Nadále také obsažnost množiny aritmetických funkcí je další atypičností v prostředí grafových databází. Kromě toho dokáže stránkovat výsledky dotazů, které obsahují miliony záznamů. A v neposlední řadě podporuje horizontální škálování s replikací či online migrací dat.

InfiniteGraph

Grafová databáze je implementovaná v jazyce Java (mimo jádro v C++) od Objectivity, kde samotný název společnosti koreluje se strukturou databáze, která je objektově orientovaná. Skládá se z objektů (v grafové terminologii považován za vrchol) a hran pro jejich vzájemné propojení. Prozatím bohužel není možné přistupovat k databázi skrze REST API a je nám nabízeno pouze rozhraní v Javě.

Licence pro použití databáze jsou nabízeny ve dvou variantách. Bezplatná s sebou nese značné limity, jako omezení počtu hran a vrcholů po uplynutí 60denní zkušební verze. Nicméně mezi jedny z hlavních klientů patří vláda Spojených států amerických a poradenská společnost Deloitte.

Shrnutí

Výběr se může zdát „uměle zkreslený“ při pohledu na název seriálu, ale přeci jen svými vlastnostmi nejvíce vyhovuje Neo4j, která mimo jiné přesvědčila i značnou komunitou v pozadí a jejím agilním vývojem. Také podpora REST API, které nám umožní snadnou integraci do projektu vyvíjeného v PHP, se jeví jako ideální řešení.

Zdroje:

Článek původně vyššel na webu neo4j.cz.

Lidé se bojí monster a monstra se bojí Jaroslava Ramby. On je muž mála slov, ale když jde o činy, v jeho oboru se mu nikdo nevyrovná!

Komentáře: 3

Přehled komentářů

Flajs
Karel neo4j v produkci
Jaroslav Ramba Re: neo4j v produkci
Zdroj: https://www.zdrojak.cz/?p=10215