我想知道将图形存储在持久存储中的最佳方法是什么,以便以后进行分析、搜索、聚类等。
我看到 neo4j 是一种选择,我很好奇是否还有其他可用的图形数据库。有没有人对更大的社交网络如何存储他们的基于图的数据(或其他需要存储类似图的模型的站点,例如 RDF)有任何见解。
像 Cassandra 或 MySQL 这样的选项呢?
我想知道将图形存储在持久存储中的最佳方法是什么,以便以后进行分析、搜索、聚类等。
我看到 neo4j 是一种选择,我很好奇是否还有其他可用的图形数据库。有没有人对更大的社交网络如何存储他们的基于图的数据(或其他需要存储类似图的模型的站点,例如 RDF)有任何见解。
像 Cassandra 或 MySQL 这样的选项呢?
图数据库:
资料来源: http: //nosql.mypopescu.com/post/498705278/quick-review-of-existing-graph-databases
图形库:
这里没有绝对正确的答案;有多种选择,选择哪种严重取决于您的需求。通过大规模检索/遍历(例如社交网络和类似的后端),您很快就会遇到随机 I/O 瓶颈;我相信将您的图表存储在 RAM 中是目前唯一可行的做法。对延迟不敏感的应用程序有多种选择,包括neo4j(具有商业风味的开源)和Allegrograph(具有有限免费版的商业)。
在 Delver,我们最终在GigaSpaces之上的 RAM 中实现了我们自己的非规范化数据模型(本质上是一个表示图形的邻接表)(一些信息可以在本演示文稿中找到),并使用自定义 map-reduce 代码进行查询和数据分析。如果你走这条路,Cassandra似乎是一个可行的开源平台。
你可以看看 InfiniteGraph,它很快就会发布测试版(http://www.infinitegraph.com/)
如果这是用于商业用途,那么您会看到它针对具有较大图表的站点。社交网站构建了定制的解决方案,这在当时对他们有用。但他们的内部解决方案比使用 InfiniteGraph 之类的解决方案更具限制性。像 Cassandra 或 MySQL 这样的产品并不是为这种多对多问题集而设计的。你能做到吗?当然,但它是大量的手写编码,并且不可扩展。如果您有一个真实的项目,请告诉我们,我们可以帮助您找出图表需求。谢谢,沃伦 wdavidson@objectivity.com