如何使用复合列在cassandra中创建计数器桶

如何使用复合列在cassandra中创建计数器桶,cassandra,Cassandra,如何在Cassandra中将计数器列表创建为复合列。我试图解决的问题是存储访问特定对象的次数。json表示中的模型如下所示: ColumnFamily:视图计数 RowKey:object\u id 价值: { 总数:10, 推荐人:{ facebook:2, 推特:5, 直接:2,, 其他:1 } 国家:{ 澳大利亚:4, 美国:4,, 其他:2 } } 提前感谢为什么不使用超级列族,超级列用于推荐人和国家/地区?为什么不使用超级列族,超级列用于推荐人和国家/地区?您想要的是这样的东西(其中X

如何在Cassandra中将计数器列表创建为复合列。我试图解决的问题是存储访问特定对象的次数。json表示中的模型如下所示:

ColumnFamily:视图计数 RowKey:object\u id

价值: { 总数:10, 推荐人:{ facebook:2, 推特:5, 直接:2,, 其他:1 } 国家:{ 澳大利亚:4, 美国:4,, 其他:2 } }


提前感谢

为什么不使用超级列族,超级列用于推荐人和国家/地区?

为什么不使用超级列族,超级列用于推荐人和国家/地区?

您想要的是这样的东西(其中X:Y是复合列):

然后,当您从澳大利亚通过Twitter新访问Object6时,您将执行以下增量操作:

incr view_counts[Object6]['total']
incr view_counts[Object6]['referrer:twitter']
incr view_counts[Object6]['country:australia']
当然,您可以采用不同的方式来安排此操作-您也可以将组合放置在行键中:

total:object_id    -> { "count": 10 }
referrer:object_id -> { "facebook": 2,
                        "twitter": 5,
                        "direct": 2, 
                        "other": 1 }
country:object_id  -> { "australia": 4, 
                        "us": 4, 
                        "other": 2 }
或者完全不使用复合列,而是使用单独的列族按引用者查看计数和按国家查看计数

像这样的实时分析系统将为您完成所有这一切,因此您只需指定一个查询,如
SELECT COUNT\u DISTINCT(user\u ip\u address)FROM view\u counts WHERE object=Object6 AND time>'7 days ago'GROUP BY referer
,它将在后台计算出所有适当的计数器


(p.s.超级列不推荐使用,因为您不能只修改超级列的一部分,这会减慢速度。)

您需要的是这样的内容(其中X:Y是一个复合列):

然后,当您从澳大利亚通过Twitter新访问Object6时,您将执行以下增量操作:

incr view_counts[Object6]['total']
incr view_counts[Object6]['referrer:twitter']
incr view_counts[Object6]['country:australia']
当然,您可以采用不同的方式来安排此操作-您也可以将组合放置在行键中:

total:object_id    -> { "count": 10 }
referrer:object_id -> { "facebook": 2,
                        "twitter": 5,
                        "direct": 2, 
                        "other": 1 }
country:object_id  -> { "australia": 4, 
                        "us": 4, 
                        "other": 2 }
或者完全不使用复合列,而是使用单独的列族按引用者查看计数和按国家查看计数

像这样的实时分析系统将为您完成所有这一切,因此您只需指定一个查询,如
SELECT COUNT\u DISTINCT(user\u ip\u address)FROM view\u counts WHERE object=Object6 AND time>'7 days ago'GROUP BY referer
,它将在后台计算出所有适当的计数器


(p.s.超级柱不推荐使用,因为你不能只修改超级柱的一部分,这会减慢速度。)

多谢朋友,我在复合柱上找不到hector API for counter API。只有用于创建计数器和超级列的API。你能给赫克托客户发一个很小的样品吗?干杯谢谢,伙计,我在复合柱上找不到hector API for counter API。只有用于创建计数器和超级列的API。你能给赫克托客户发一个很小的样品吗?干杯