我想从 Facebook Graph API 获取数据并对其进行分析,以大致了解一个人与另一个人的距离。我正在尝试将 Pylons 框架与 SqlAlchemy(现在它附加到 SQLite 数据库)一起使用来存储来自 Graph API 的信息,以便我可以通过 RESTful Web 服务将其提供给我的其他应用程序。我想知道分析数据的最佳方法是什么。
例如,我是否应该创建类似于 Graph API 中的节点和边缘的对象(用户、帖子、状态等)并分析它们,然后仅将分析结果存储在数据库中,也许是 UID每个节点及其与其他节点的连接?或者我应该存储更少,只拥有用户和他们的亲密 friend 的数据库?还是我应该一步步通过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 .有一些有意义的方法。
关于Python、Pylons 和 Sqlalchemy : Analyzing the Facebook Graph API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5957087/