Python、Pylons 和 Sqlalchemy : Analyzing the Facebook Graph API

标签 python database algorithm facebook sqlalchemy

我想从 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/

相关文章:

database - 使用 Laravel/Eloquent 从复制行中检索对象

python - 堆算法两次产生相同的排列

C算法确定点阵中最大的多边形

python - Gunicorn 显示 404 而不是应用程序

python - 如何在Python中使用return语句将局部变量传递给下一个函数

python - 有人有使用 Python Zeep 和 Mock 对 SOAP API 进行单元测试的示例吗?

python - 倒排索引是如何存储的?

python - Scrapy IO错误: [Errno 22] invalid mode ('wb' ) or filename

ruby-on-rails - 强制 $ rake db :reset Despite Other Users with Postgres

c - 毕达哥拉斯三元组