将Twitter Streaming API推文转发给Apache Cassandra进行后期处理

时间:2011-08-20 22:31:45

标签: database api twitter streaming cassandra

我正在使用Twitter Streaming API来监控多个关键字/用户。我打算将我从twitter直接发送的推文json字符串直接转储到cassandra数据库,并稍后对它们进行后期处理。

这样的设计是否实用?当我有数百万条推文时它会扩大规模吗?

我稍后会做的事情包括获得顶级关注用户,顶级主题标签等。我希望保存该流,以便稍后挖掘它们以获取我现在可能不知道的任何新信息。

2 个答案:

答案 0 :(得分:1)

您可以轻松地在cassandra中存储数百万条推文。

为了处理推文并获取顶级关注用户等统计信息,主题标签会查看构建于cassandra之上的DataStax中的brisk

答案 1 :(得分:1)

重要的不是推文的数量和它们到达的速度。 Cassandra每秒可以轻松处理数千次写入,这应该没问题(Twitter目前每秒总共生成大约1200条推文,你可能只会得到其中的一小部分)。

但是,每秒推文的变化很大。在写入量大幅增加之后,您可能会看到范围查询有所减缓。有关该问题及其解决方法的一些讨论,请参阅Cassandra under heavy write load part ipart ii上的Acunu博客文章。

除了存储原始json之外,我还会提取一些您几乎肯定需要的常用功能,例如用户ID和主题标签,并将它们分开存储。这将为您以后节省大量的处理工作。

要考虑的另一个因素是计划存储的数据将如何随时间增长。 Cassandra可以很好地扩展,但是您需要制定一个策略来确定如何在集群中保持负载平衡以及如何在数据库增长时添加节点。如果您尚未计划如何事先将令牌分配给新节点,那么添加节点可能是一种痛苦的经历。等到你有一个重载节点,然后再添加一个新节点,这是让你的集群崩溃的好方法。