If I understand you've got a data model which looks like this:

CF Events:
    "row1": { "event1": 1050, "event2": 1200, "event3": 830, ... }

You can't query on column values but you can build every day a ranking in 
a dedicated CF by iterating over events:

create column family Ranking
    with comparator = 'LongType(reversed=true)' 
    ...

CF Ranking:
    "rank": { 1200: "event2", 1050: "event1", 830: "event3", ... }
 
Then you can make a "top ten" or whatever you want because counter values 
will be sorted.


Filippo Diotalevi <fili...@ntoklo.com> a écrit sur 21/05/2012 16:59:43 :

> Hi, 
> I'm trying to understand what's the best design for a simple 
> "ranking" use cases.
> I have, in a row, a good number (10k - a few 100K) of counters; each
> one is counting the occurrence of an event. At the end of day, I 
> want to create a ranking of the most occurred event.
> 
> What's the best approach to perform this task? 
> The brute force approach of retrieving the row and ordering it 
> doesn't work well (the call usually goes timeout, especially is 
> Cassandra is also under load); I also don't know in advance the full
> set of event names (column names), so it's difficult to slice the get 
call.
> 
> Is there any trick to solve this problem? Maybe a way to retrieve 
> the row ordering for counter values?
> 
> Thanks,
> -- 
> Filippo Diotalevi

Reply via email to