最近我开始了解图形数据库。我读到这些数据库的分析有限。我在这里读到http://www.readwriteweb.com/enterprise/2009/02/is-the-relational-database-doomedp2.php “跟踪使用模式和提供基于用户历史记录的建议可能很难,而且在最坏的情况下,使用这种类型的数据库平台是不可能的。”
1我无法理解为什么这种分析在这里受到限制?
2这些数据库图表如何用于存档,例如facebook,它可以保存数百万用户的所有帖子。如何在图数据库中完成这项工作?
答案 0 :(得分:2)
如果你应用一个严格的属性图模型,你会发现你有很好的“数据本地”操作,比如探索一个节点的周围数据,比如沿着这些关系的5跳。但是,像“给我所有名称属性值为'Tom *'的节点”这样的全局操作在图形模型中需要对数据进行全面扫描。这在理论上是一个限制。在实践中(例如在http://neo4j.org中),图形引擎与Lucene,BerkelyDB或Cassandra等全局不一致,可以处理在某些分析场景中经常使用的这种数据全局方面。
因此,没有真正的限制,只有不同的方式和不同的模式来处理数据的全局和本地操作。有关在图表中建模域的一些示例,或者在Open Street Map图上的http://wiki.neo4j.org/content/Domain_Modeling_Gallery等GIS示例中,请参阅https://github.com/neo4j/neo4j-spatial/raw/master/src/site/pics/one-street.png。
为了存档像Facebook这样的大量数据,我只会说出状态更新的最后一个月左右,以便快速检索和推荐图表。其余的我会在像Cassandra这样的解决方案中存档,只需要在图表中有关于如何根据需要检索这个“存档子图”的存档的参考和关键指标。