Programovanie

Open source Microsoft Graph Engine preberá Neo4j

Niekedy sú vzťahy medzi údajmi, ktoré ste zhromaždili, dôležitejšie ako samotné údaje. (Pozri: Facebook speňažuje váš zoznam priateľov.) Vtedy sa hodí systém na spracovanie grafov. Je to dôležitá, ale často zle pochopená metóda na preskúmanie vzájomného vzťahu položiek v množine údajov.

Spoločnosť Microsoft túto oblasť skúmala minimálne od roku 2013, keď zverejnila dokument popisujúci projekt Trinity, cloudový grafický engine v pamäti. Plody tohto úsilia známe ako Microsoft Graph Engine sú teraz k dispozícii ako open source projekt s licenciou MIT ako alternatíva k riešeniam ako Neo4j alebo nedávno ohlásený program JanusGraph od Linux Foundation.

Všetko je prepojené

Spoločnosť Microsoft nazýva Graph Engine (GE) ako „pamäť RAM aj výpočtový modul“. Dáta je možné vkladať do GE a načítať ich vysokou rýchlosťou, pretože sa uchovávajú v pamäti a podľa potreby sa zapisujú späť iba na disk. Môže fungovať ako jednoduchý obchod s kľúčmi a hodnotami, ako je Memcached, ale Redis môže byť tým lepším porovnaním, pretože GE ukladá údaje v silne typovaných schémach (reťazec, celé číslo atď.).

Časť „výpočtového modulu“ v rovnici znamená, že GE implementuje distribuované algoritmy naprieč uzlami napísané v jazyku C #. Nie je optimalizovaný po vybalení pre konkrétny druh algoritmu grafov, takže pravdepodobne osloví tých, ktorí chcú od základu napísať svoje vlastné algoritmy na prieskum grafov - alebo jednoducho napísať svoje vlastné distribuované algoritmy.

„Namiesto toho, aby sme sa pokúsili poskytnúť vyčerpávajúcu sadu zabudovaných výpočtových modulov,“ uvádza sa v dokumentácii spoločnosti Microsoft, „spoločnosť GE sa snaží poskytnúť všeobecné stavebné bloky, ktoré nám umožnia ľahko tieto moduly zostaviť.“ Tieto bloky zahŕňajú systém pre synchrónne a asynchrónne odovzdávanie správ a tiež jazyk LIKQ pre dopyt po grafoch, ktorý už používa API Academic Graph Search v Microsoft Cognitive Services.

Rôznymi spôsobmi bludiskom

Ako sa to všetko vyvíja oproti poprednej otvorenej databáze grafov Neo4j? Po prvé, Neo4j je na trhu dlhšie a má existujúcu užívateľskú základňu. Je k dispozícii aj v otvorenom komunitnom vydaní aj v komerčnom produkte, zatiaľ čo GE je v súčasnosti iba otvoreným projektom.

To znamená, že iba komerčné a podnikovo orientované vydanie Neo4j podporuje zdieľanie a replikáciu. Naproti tomu GE je zoskupený vo svojej predvolenej inkarnácii otvoreného zdroja, hoci klastrovanie na serveroch Neo4j aj GE vyžaduje manuálne nastavenie. V prípade spoločnosti GE musia byť roly pre každý uzol v klastri (servery a voliteľne proxy agregujúce dotazy) nakonfigurované manuálne v závislosti od prípadu použitia.

Ďalšou distribuovanou databázou grafov, ktorú stojí za porovnanie s GE, je JanusGraph, nový projekt pod záštitou Linux Foundation s príspevkami Google, Hortonworks a IBM. Bol vyrobený tak, aby úzko spolupracoval s ekosystémom Hadoop a využíval ho. Elasticsearch a Lucene môžu byť použité ako indexovacie stroje a Cassandra a HBase ako dátové sklady. V spoločnosti GE sa do nej musia najskôr importovať údaje.

Zdá sa, že cieľom spoločnosti Microsoft je snaha spoločnosti GE o vzájomnú konkurenciu s týmito projektmi. Namiesto toho je GE časťou distribuovanej infraštruktúry na ukladanie údajov, ktorá prijíma nové údaje a poskytuje výpočet grafov ako jednu zo svojich mnohých výhod. Vďaka liberálnemu licencovaniu je produkt ľahko namontovateľný na iné produkty alebo ľahko nahraditeľný na hosťovanie vo veľkom rozsahu. Nie je jasné, či Microsoft použil GE ako súčasť niektorého zo svojich vlastných systémov (aj keď použil LIKQ, ako je uvedené vyššie).

Ak tí, ktorí stavajú na platformách iných ako Microsoft, majú záujem vyskúšať si Graph Engine, podľa jedného z vývojárov čoskoro dorazí podpora viacerých platforiem pre Linux / BSD.

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