我想从facebook图形api中获取数据,并对其进行分析,以大致了解一个人与另一个人的距离。我正在尝试使用Pylons框架和SqlAlchemy(现在它附加到SQLite数据库)来存储来自Graph API的信息,以便我可以通过RESTful web服务将其提供给其他应用程序我想知道分析数据的最佳方法是什么。
例如,我是否应该创建类似于图形api中的节点和边的对象(用户、帖子、状态等)并对其进行分析,然后仅将分析的结果存储在数据库中,可能是每个节点的uid及其与其他节点的连接?或者我应该少存储,只存储用户及其好友的数据库?或者,我应该一步一步地通过ORM映射器将每个对象存储在数据库中,并在填充后从数据库中进行分析?
在这种情况下,数据库的设计需要考虑哪些问题?对象应该如何与模型相关/映射?在获取和存储数据的整个过程中,分析应该在哪里进行?

最佳答案

我会尽可能多的储存,把你能扔掉的东西都扔掉。尝试维护节点之间的关系,以便以后可以遍历/分析它们。这为您提供了一个机会,您可以根据自己的需要,反复分析数据集并尝试不同的方法。如果要使用SQLAlchemy,可以使用简单的自引用关系:http://www.sqlalchemy.org/docs/05/mappers.html#adjacency-list-relationships这样就可以轻松地维护对象之间的连接,并轻松地遍历它们。您还应该考虑使用MongoDB这对这类事情很好,你可以把从facebook得到的json响应转储到mongodb中。它还有一个很棒的python客户端。这里是MongoDB关于在MongoDB中存储树的文档:http://www.mongodb.org/display/DOCS/Trees+in+MongoDB。有几种方法是有道理的。

10-07 16:47