"Is there a way to do this in c* which doesn't require creating 1 table per type of map<int, counter> that i need?"
You're lucky, it's possible with some tricks CREATE TABLE my_counters_map ( partition_key id uuid, map_name text, map_key int, count counter, PRIMARY KEY ((id), map_name, map_key) ); This table can be seen as: Map <partition_key, SortedMap<map_name, SortddMap<map_key, counter>>> The couple (map_key, counter) simulates your map The clustering column map_name allows you to have multiple maps of counters for a single partition_key On Wed, Nov 9, 2016 at 1:32 PM, Vladimir Yudovin <vla...@winguzone.com> wrote: > Unfortunately it's impossible nor to use counters inside collections > neither mix them with other non-counter columns : > > CREATE TABLE cnt (id int PRIMARY KEY , cntmap MAP<int,counter>); > InvalidRequest: Error from server: code=2200 [Invalid query] > message="Counters are not allowed inside collections: map<int, counter>" > > CREATE TABLE cnt (id int PRIMARY KEY , cnt1 counter, txt text); > InvalidRequest: Error from server: code=2200 [Invalid query] > message="Cannot mix counter and non counter columns in the same table" > > > >Is there a way to do this in c* which doesn't require creating 1 table > per type of map<int, counter> that i need? > But you don't need to create separate table per each counter, just use one > row per counter: > > CREATE TABLE cnt (id int PRIMARY KEY , value counter); > > Best regards, Vladimir Yudovin, > > *Winguzone <https://winguzone.com?from=list> - Hosted Cloud > CassandraLaunch your cluster in minutes.* > > > ---- On Wed, 09 Nov 2016 07:17:53 -0500*Ali Akhtar <ali.rac...@gmail.com > <ali.rac...@gmail.com>>* wrote ---- > > I have a use-case where I need to have a dynamic number of counters. > > The easiest way to do this would be to have a map<int, counter> where the > int is the key, and the counter is the value which is incremented / > decremented. E.g if something related to 5 happened, then i'd get the > counter for 5 and increment / decrement it. > > I also need to have multiple map<int, counter>s of this type, where each > int is a key referring to something different. > > Is there a way to do this in c* which doesn't require creating 1 table per > type of map<int, counter> that i need? > > >