我有一個要求,在作業中使用特定值更新所有用戶。Cassandra批處理選擇和批量更新
我在我的Cassandra數據庫中擁有數百萬的用戶。可以先查詢百萬用戶並進行某種批量更新嗎?或者是否有一些可用於執行這些工作的實現。我正在使用hector API與Cassandra進行交互。什麼是最好的方式來做到這一點?
我有一個要求,在作業中使用特定值更新所有用戶。Cassandra批處理選擇和批量更新
我在我的Cassandra數據庫中擁有數百萬的用戶。可以先查詢百萬用戶並進行某種批量更新嗎?或者是否有一些可用於執行這些工作的實現。我正在使用hector API與Cassandra進行交互。什麼是最好的方式來做到這一點?
您永遠不想獲取100萬個用戶並將其保留在本地。理想情況下,您想使用範圍查詢遍歷所有這些用戶密鑰。 Hector調用這個RangeSliceQuery。這裏有一個很好的例子:
http://irfannagoo.wordpress.com/2013/02/27/hector-slice-query-options-with-cassandra/
開始和結束鍵使用空並添加這也:
rangeQuery.setRowCount(100)在同一時間取得100行。
在循環內部執行此操作。第一次使用null作爲開始和結束鍵時,您從第一個結果集中獲得的最後一個鍵應該是下一個查詢的開始鍵。而且你繼續這樣分頁。
然後,您可以批量使用批量mutate和更新。