sql >> Databáze >  >> NoSQL >> MongoDB

Databáze grafů vs. databáze dokumentů vs. Triplestores

Nejsem si jistý, zda bych souhlasil s názorem, že mnoho lidí nemá rádo SPARQL. SPARQL 1.0 měl nějaké nedostatky, ale docela dobře řešil to, pro co byl navržen, a nová iterace, SPARQL 1.1, staví na tom, že přidává mnoho konstrukcí z SQL, které lidé očekávali, že uvidí v původní specifikaci, včetně dílčích dotazů, agregátů &aktualizovat sémantiku. Myslím, že skutečnost, že je to standardní a můžete očekávat, že stejnou analýzu a sémantiku uvidíte v každém trojitém obchodě, na rozdíl od dialektů SQL, je příjemná vlastnost.

Také bych tvrdil, že všechny trojité obchody jsou databáze grafů; můžete umístit vlastnosti na konkrétní hrany v RDF, i když ne tak pěkně, jak můžete s Neo4j. Ale trojitá úložiště mají výhodu skutečného dotazovacího jazyka, standardní reprezentace dat w3c, díky které je přemístění dat do jiného trojitého úložiště triviální, a pro řadu trojitých úložišť také schopnost provádět uvažování na základě OWL.

Nevím nic o škálovatelnosti pro většinu grafových db, ale obecně se komerční databáze RDF škálují docela dobře. Všechny se mohou škálovat do miliard trojnásobků, což zvládá velké množství případů použití. I když způsob, jakým zvládají škálování, se u jednotlivých dodavatelů výrazně liší, pokud jde o škálování nebo škálování, klastrování atd. Uvidíte také docela odlišné požadavky na paměť a hardware, aby odpovídaly implementacím každého z nich. Pro mě jsem měl tendenci jít a chytit instanci EC2, obvykle 2XL nebo 4XL, namontovat EBS dostatečně velký, aby pojal data, a jsem docela dobře nastaven.

Některé trojité obchody se navíc integrují s technologií Lucene nebo podobnými technologiemi, aby poskytovaly invertované indexy nad daty, a mnoho z nich nyní začíná zahrnovat geoprostorové a časové indexy. To jsou velmi užitečné funkce, u kterých si nejsem jistý jejich dostupností v něčem jako Neo4j.

Díky tomu se nebudou škálovat tak dobře jako relační databáze, prostě nejsou tak vyspělé. Ale také se nezblázníte, když budete mít „skutečné“ množství dat. Jednou z výhod trojitých obchodů je samozřejmě uvažování, jehož výkon v měřítku je ošemetný, ale to je velký důvod, proč byly vytvořeny různé profily OWL. Ale můžete se namalovat do kouta, pokud nebudete myslet dopředu.

Myslím si, že databáze grafů, konkrétně trojité obchody, mohou být docela dobrou shodou pro mnoho aplikací, které se staví, ale nemyslím si, že by se s nimi mělo dělat všechno. Stejně jako cokoli jiného jsou to nástroje se svými dobrými a špatnými stránkami, takže musíte udělat správnou volbu na základě vaší aplikace. Ale pravděpodobně si v dnešní době vždy zaslouží alespoň úvahu.



  1. Redis (ioredis) – Nelze zachytit chybu připojení, aby bylo možné je elegantně zvládnout

  2. MongoDB Write Concern:3 Must Know Caveats

  3. Spring RedisTemplate:Serializujte několik tříd modelu do JSON. Potřebujete použít více šablon RedisTemplates?

  4. seskupit podle dat v mongodb