2012-02-24 83 views
5

我正在使用Twitter数据开展社区检测项目,我需要根据关系创建网络。我收集并过滤了200,000个UID。我的下一步是在他们之间建立一个朋友/追随者网络。有更好的方法来收集Twitter数据吗?

我正在使用Ruby脚本和Twitter Gem来收集,处理和存储数据。为了克服API调用限制,我使用Apigee代理,因此现在没有速率限制的问题。

的呼吁得到两个的UID之间的关系状态是:https://dev.twitter.com/docs/api/1/get/friendships/show

我需要加快收集数据的过程。目前我有很多脚本在我的终端中同时运行。我发现这种方法很难管理和扩展。有没有更快,更高效和更易于管理的方法来做同样的事情?或者我缺少一种完全不同的,更好的方法吗?

+0

如果1个回答没有帮助,考虑添加关于为什么你认为它是太长的信息。如果您有一堆运行simul的脚本,则作业控制工具或主脚本可能是合适的。鉴于您的项目的网络编程方面,我本以为会有红宝石来帮助解决这个问题。你在这方面的表现有多深。缩放可能意味着您需要查看GNU并行,Amazon Elastic Cloud或其他。此外,像Hadoop这样的大规模数据处理工具(几乎可以肯定需要在java或??中进行自定义编码)。祝你好运。 – shellter 2012-02-24 22:18:40

+0

从查看你包含的dev.twitter链接,json文档,看起来已经成熟,可以加载到MongoDB中。 (这来自MongoDB in Action第4章(曼宁出版社,从属关系)的一个人。)。本书包含一个从twitter直接向数据库检索数据的示例。所以可能值得一看。祝你好运。 – shellter 2012-02-24 22:24:08

+0

作业控制工具或主脚本是我正在看的。对于这些的任何建议?编程语言的改变也会导致速度的显着提高吗? – s2n 2012-02-25 14:13:20

回答

0

有一件事我能想到的是使用EC2实例和部署脚本,你可以得到最大的实例,并使用它的几个小时。一个好处是你有更强大的实例和更快的互联网连接。

而且如果您只是收集公共数据,这意味着您不必通过OAuth进行身份验证(请纠正我,如果我错了),我会使用Perl脚本或Python比Ruby更快。

0

为什么不使用logstash来收集数据。 Logstash为您提供了很多选项来发送数据,以便您可以轻松地对其进行过滤。在将它发送到输出之前,您甚至可以通过logstash过滤所有数据。可用的输出选项是Elasticsearch(用于实时搜索,分析和可视化),数据库(mysql,MSSQL等)等等。

Logstash - https://www.elastic.co/products/logstash

Twitter的Logstash插件 - https://www.elastic.co/guide/en/logstash/current/plugins-inputs-twitter.html

相关问题