我正在使用Twitter Streaming API監控多個關鍵字/用戶。我打算將我從Twitter上直接獲得的推文json字符串直接轉儲到cassandra數據庫中,然後對它們進行後期處理。將Twitter流式傳輸API推送原樣傳輸給Apache Cassandra進行後期處理
這樣的設計是否實用?當我有數百萬條推文時,它會不會擴大規模?
我將在後面做的事情包括獲得最高的跟隨用戶,最重要的標籤等。我想保存該流,以便稍後挖掘它們以獲取我現在可能不知道的任何新信息。
我正在使用Twitter Streaming API監控多個關鍵字/用戶。我打算將我從Twitter上直接獲得的推文json字符串直接轉儲到cassandra數據庫中,然後對它們進行後期處理。將Twitter流式傳輸API推送原樣傳輸給Apache Cassandra進行後期處理
這樣的設計是否實用?當我有數百萬條推文時,它會不會擴大規模?
我將在後面做的事情包括獲得最高的跟隨用戶,最重要的標籤等。我想保存該流,以便稍後挖掘它們以獲取我現在可能不知道的任何新信息。
重要的不在於推文的數量與其到達的速度。卡桑德拉可以輕鬆處理每秒數千次的寫入,這應該沒問題(Twitter目前每秒鐘產生大約1200條推文,而且你可能只會得到其中的一小部分)。
但是,每秒的推文是高度可變的。在寫入數量猛增之後,您可能會看到範圍查詢的一些放緩。請參閱Cassandra under heavy write load part i和part ii上的Acunu博客文章,瞭解有關該問題的一些討論和解決方法。
除了存儲原始json之外,我還會提取一些幾乎可以肯定需要的常用功能,例如用戶標識和井號標籤,並將它們分開存儲。這將爲您節省很多處理工作。
要考慮的另一個因素是規劃存儲的數據將如何隨時間增長。 Cassandra可以很好地擴展,但是您需要制定一個策略,以便如何在羣集中保持負載均衡以及如何在數據庫增長時添加節點。如果您尚未計劃如何提前將令牌分配給新節點,則添加節點可能是一種痛苦的體驗。在添加新節點之前等待,直到您有一個超負荷節點,這是讓羣集崩潰的好方法。
您可以輕鬆地在cassandra中存儲數百萬條推文。
爲了處理鳴叫和獲取統計信息,如頂部,隨後用戶,主題標籤看從DataStax其中建立在卡桑德拉的頂部。