incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Leslie Viljoen <leslievilj...@gmail.com>
Subject Terminology, getting slices by time
Date Wed, 12 May 2010 11:58:58 GMT
Hi!

I am having trouble understanding the "column" terminology Cassandra
uses. I am developing in Ruby. I need to store data for vehicles which
will come in at different times and retrieve data for a specific
vehicle for specific slices of time. So each record could look like:

vehicle_id, { time => { 'sensor1' => 1000, 'sensor2' => 2000 } }

The actual insert:

@cas.insert(:ReportData, vehicle_id.to_s, { UUID.new.to_s => {
'sensor1' => 1000, 'sensor' => 2000 }})

The model:

<Keyspace Name="SensorMonitor">
         <ColumnFamily Name="SensorData" CompareWith="TimeUUIDType"
CompareSubcolumnsWith="UTF8Type" ColumnType="Super"></ColumnFamily>
         <ReplicaPlacementStrategy>org.apache.cassandra.locator.RackUnawareStrategy</ReplicaPlacementStrategy>
         <ReplicationFactor>1</ReplicationFactor>
         <EndPointSnitch>org.apache.cassandra.locator.EndPointSnitch</EndPointSnitch>
</Keyspace>



I am trying to store this with a supercolumn. Can someone tell me:

1. Are "sensor1" and "sensor2" columns?
2. Is "time" a supercolumn?
3. Where is the "subcolumn"?
4. Which item would "CompareWith" refer to?
5. Which item would "CompareSubcolumnsWith" refer to?


Also, about time:
1. To store "time", must I use UUID.new.to_s as above?
2. Isn't a time key redundant? Can Cassandra return slices based on
the time it keeps for each record?
3. How do I get a time slice for a vehicle? I get various generic
"application" errors when trying to use get_range to get time ranges.
4. Any advice on this data model?

Mime
View raw message