How Does Composite Column PartitionKey Work in Cassandra -
i trying figure out advantages compound partition key can provide. @ famous weather station example below.
create table temperature ( state text, city text, event_time timestamp, temperature text, primary key ((state, city),event_time) );
now, of time query 1 single state on set of cities , range of dates. query like
select * temperature state = 'ny' , city in ('mahattan', 'brooklyn','queens') , event_time > '2016-01-01'.
assuming have large data set, in sense have few states (# < 1000) each state have many many cities ( # > 100m). replicate data , distribute them different nodes.
question: can compare differences using
primary key (**(state, city)**,event_time) primary key (**(city, state)**,event_time) primary key (state, city,event_time) primary key (zipcode, event_time) thank you!
composite key
primary key (**(state, city)**,event_time) primary key (**(city, state)**,event_time) are functionally equivalent. composite partition key combined values of city , state. unable specify partition without both portions. within partition cells ordered event_time. have #state * #city partitions
[city, state] -> [event_time_0, event_time_1, event_time_2, event_time_3, ...] you able write queries
select * table city = x , state = y , event_time (><=) somevalue compound keys
primary key (state, city,event_time) one partition made every state. bad since there on order of 100x state/provinces means have small number of partitions. data laid out within partition city , event_time.
[illinois] --> [chicago, 0], [chicago, 1], [peoria, 0], [peoria, 1] queries have restrict city if restricting event time.
primary key (zipcode, event_time) you have 10k partitions, each have single cell each event time.