My cli knowledge sucks so far, so I'll leave that  to others....I'm doing
most of my reading/writing through a thrift client (hector/java based)

As for the implications, as of the latest version of Cassandra there is not
theoretical limit to the number of columns that a particular row can hold.
 Over time you've got a couple of different options, if you're concerned
that you end up with too many columns to manage then you'd probably want to
start thinking about a warehousing strategy long-term for your older records
that involves expiring columns that are older than X in your Cassandra
cluster.  But for the most part you shouldn't *need* to do that.



On Wed, Jan 26, 2011 at 3:23 PM, Bill Speirs <bill.spe...@gmail.com> wrote:

> I like this approach, but I have 2 questions:
>
> 1) what is the implications of continually adding columns to a single
> row? I'm unsure how Cassandra is able to grow. I realize you can have
> a virtually infinite number of columns, but what are the implications
> of growing the number of columns over time?
>
> 2) maybe it's just a restriction of the CLI, but how do I do issue a
> slice request? Also, what if start (or end) columns don't exist? I'm
> guessing it's smart enough to get the columns in that range.
>
> Thanks!
>
> Bill-
>
> On Wed, Jan 26, 2011 at 4:12 PM, David McNelis
> <dmcne...@agentisenergy.com> wrote:
> > I would say in that case you might want  to try a  single column family
> > where the key to the column is the system name.
> > Then, you could name your columns as the timestamp.  Then when retrieving
> > information from the data store you can can, in your slice request,
> specify
> > your start column as  X and end  column as Y.
> > Then you can use the stored column name to know when an event  occurred.
> >
> > On Wed, Jan 26, 2011 at 2:56 PM, Bill Speirs <bill.spe...@gmail.com>
> wrote:
> >>
> >> I'm looking to use Cassandra to store log messages from various
> >> systems. A log message only has a message (UTF8Type) and a data/time.
> >> My thought is to create a column family for each system. The row key
> >> will be a TimeUUIDType. Each row will have 7 columns: year, month,
> >> day, hour, minute, second, and message. I then have indexes setup for
> >> each of the date/time columns.
> >>
> >> I was hoping this would allow me to answer queries like: "What are all
> >> the log messages that were generated between X & Y?" The problem is
> >> that I can ONLY use the equals operator on these column values. For
> >> example, I cannot issuing: get system_x where month > 1; gives me this
> >> error: "No indexed columns present in index clause with operator EQ."
> >> The equals operator works as expected though: get system_x where month
> >> = 1;
> >>
> >> What schema would allow me to get date ranges?
> >>
> >> Thanks in advance...
> >>
> >> Bill-
> >>
> >> * ColumnFamily description *
> >>    ColumnFamily: system_x_msg
> >>      Columns sorted by: org.apache.cassandra.db.marshal.UTF8Type
> >>      Row cache size / save period: 0.0/0
> >>      Key cache size / save period: 200000.0/3600
> >>      Memtable thresholds: 1.1671875/249/60
> >>      GC grace seconds: 864000
> >>      Compaction min/max thresholds: 4/32
> >>      Read repair chance: 1.0
> >>      Built indexes: [proj_1_msg.646179, proj_1_msg.686f7572,
> >> proj_1_msg.6d696e757465, proj_1_msg.6d6f6e7468,
> >> proj_1_msg.7365636f6e64, proj_1_msg.79656172]
> >>      Column Metadata:
> >>        Column Name: year (year)
> >>          Validation Class: org.apache.cassandra.db.marshal.IntegerType
> >>          Index Type: KEYS
> >>        Column Name: month (month)
> >>          Validation Class: org.apache.cassandra.db.marshal.IntegerType
> >>          Index Type: KEYS
> >>        Column Name: second (second)
> >>          Validation Class: org.apache.cassandra.db.marshal.IntegerType
> >>          Index Type: KEYS
> >>        Column Name: minute (minute)
> >>          Validation Class: org.apache.cassandra.db.marshal.IntegerType
> >>          Index Type: KEYS
> >>        Column Name: hour (hour)
> >>          Validation Class: org.apache.cassandra.db.marshal.IntegerType
> >>          Index Type: KEYS
> >>        Column Name: day (day)
> >>          Validation Class: org.apache.cassandra.db.marshal.IntegerType
> >>          Index Type: KEYS
> >
> >
> >
> > --
> > David McNelis
> > Lead Software Engineer
> > Agentis Energy
> > www.agentisenergy.com
> > o: 630.359.6395
> > c: 219.384.5143
> > A Smart Grid technology company focused on helping consumers of energy
> > control an often under-managed resource.
> >
> >
>



-- 
*David McNelis*
Lead Software Engineer
Agentis Energy
www.agentisenergy.com
o: 630.359.6395
c: 219.384.5143

*A Smart Grid technology company focused on helping consumers of energy
control an often under-managed resource.*

Reply via email to