Python、Pylons和Sqlalchemy:分析Facebook Graph API

1 投票
1 回答
554 浏览
提问于 2025-04-16 17:24

我想从Facebook的图形API获取数据,并分析这些数据,以大致了解一个人和另一个人之间的关系有多近。我正在尝试使用Pylons框架和SqlAlchemy(现在它连接的是一个SQLite数据库)来存储来自图形API的信息,这样我就可以通过一个RESTful网络服务将这些信息提供给我的其他应用程序。我在想,分析这些数据的最佳方法是什么。

举个例子,我应该创建一些类似于图形API中节点和边的对象(比如用户、帖子、状态等),然后对它们进行分析,最后只把分析的结果存储在数据库中,比如每个节点的UID和它与其他节点的连接?还是说我应该存储更少的信息,仅仅保留用户和他们的密友的数据库?或者我应该一步一步来,通过ORM映射器将每个对象存储到数据库中,然后在填充完数据库后再进行分析?

在这种情况下,设计数据库时需要考虑哪些问题?对象应该如何与模型关联或映射?在整个获取数据和存储的过程中,分析应该在哪里进行?

1 个回答

1

我建议尽可能多地存储数据,把你能收集到的都存起来。要尽量保持节点之间的关系,这样你以后就可以方便地遍历和分析这些数据。这给你提供了反复分析数据集的机会,你可以尝试不同的方法。如果你想使用SQLAlchemy,可以考虑使用简单的自引用关系:http://www.sqlalchemy.org/docs/05/mappers.html#adjacency-list-relationships。这样你就能轻松保持对象之间的连接,并且方便地进行遍历。你还可以考虑使用MongoDB,这个工具在处理这类事情时非常不错,你几乎可以直接把从Facebook获取的JSON响应存入MongoDB。它还有很好的Python客户端。关于在MongoDB中存储树形结构的文档可以参考这里:http://www.mongodb.org/display/DOCS/Trees+in+MongoDB。那里有几种合适的方法可以使用。

撰写回答