Programování

Open source Microsoft Graph Engine přebírá Neo4j

Někdy jsou vztahy mezi vámi shromážděnými daty důležitější než samotná data. (Viz: Facebook, který zpeněžuje váš seznam přátel.) Tehdy se hodí systém pro zpracování grafů. Je to důležitá, ale často špatně pochopená metoda pro zkoumání vzájemného vztahu položek v datové sadě.

Společnost Microsoft tuto oblast zkoumala přinejmenším od roku 2013, kdy zveřejnila dokument popisující projekt Trinity, cloudový grafický engine v paměti. Plody tohoto úsilí, známé jako Microsoft Graph Engine, jsou nyní k dispozici jako open source projekt s licencí MIT jako alternativa k podobám jako Neo4j nebo nedávno oznámený JanusGraph od Linux Foundation.

Všechno je propojeno

Společnost Microsoft nazývá Graph Engine (GE) jako „úložiště RAM i výpočetní modul.“ Data lze do GE vkládat a načítat vysokou rychlostí, protože jsou uchovávána v paměti a podle potřeby se zapisují zpět pouze na disk. Může fungovat jako jednoduché úložiště klíč-hodnota, jako je Memcached, ale Redis může být tím lepším porovnáním, protože GE ukládá data do silně zadaných schémat (řetězec, celé číslo atd.).

Část „výpočetního modulu“ rovnice znamená, že GE implementuje distribuované algoritmy napříč uzly napsané v C #. Není optimalizován po vybalení pro konkrétní druh algoritmu grafu, takže se pravděpodobně bude líbit těm, kteří chtějí psát své vlastní algoritmy pro průzkum grafů od základu - nebo jednoduše napsat své vlastní distribuované algoritmy.

„Místo toho, abychom se pokusili poskytnout vyčerpávající sadu integrovaných výpočetních modulů,“ uvádí se v dokumentaci Microsoftu, „GE se snaží poskytnout obecné stavební bloky, které nám umožní tyto moduly snadno sestavit.“ Mezi tyto bloky patří systém pro synchronní a asynchronní předávání zpráv a také jazyk dotazu LIKQ pro grafy, který již používá rozhraní Academic Graph Search API v Microsoft Cognitive Services.

Různé způsoby bludištěm

Jak se to všechno utváří proti přední databázi otevřených zdrojů grafů Neo4j? Za prvé, Neo4j je na trhu déle a má stávající uživatelskou základnu. Je také k dispozici v komunitní edici open source i v komerčním produktu, zatímco GE je právě teď pouze open source projekt.

To znamená, že pouze komerční, podnikově orientované vydání Neo4j podporuje dělení a replikaci. GE je naproti tomu seskupena ve své výchozí inkarnaci s otevřeným zdrojovým kódem, ačkoli shlukování na Neo4j i GE vyžaduje ruční nastavení. V případě GE je nutné nakonfigurovat role pro každý uzel v klastru (servery a volitelně proxy agregující dotazy) ručně v závislosti na případu použití.

Další distribuovanou databází grafů, kterou stojí za srovnání s GE, je JanusGraph, nový projekt sponzorovaný nadací Linux Foundation s příspěvky společností Google, Hortonworks a IBM. Byl vytvořen pro úzkou spolupráci s ekosystémem Hadoop a jeho využití. Elasticsearch a Lucene lze použít jako indexovací stroje a Cassandra a HBase lze použít jako úložiště dat. U GE je do ní nejprve nutné importovat data.

Zdá se, že společnost Microsoft se zaměřuje na GE není přímá konkurence s těmito projekty. Místo toho je GE součástí distribuované infrastruktury pro ukládání dat, která přijímá nová data a poskytuje výpočet grafů jako jednu ze svých mnoha výhod. Díky svému liberálnímu licencování je možné jej snadno znovu nasadit na jiné produkty nebo jej snadno přepracovat pro hostování ve velkém. Není jasné, zda Microsoft použil GE jako součást některého ze svých vlastních systémů (i když použil LIKQ, jak je uvedeno výše).

Pokud ti, kdo staví na platformách jiných než Microsoft, mají zájem vyzkoušet Graph Engine, brzy podle jednoho z vývojářů přichází podpora pro různé platformy pro Linux / BSD.

$config[zx-auto] not found$config[zx-overlay] not found