To keep the terminology clear, your “row_key” is actually the “partition key”, 
and “wide_row_column” is actually a “clustering column”, and the combination of 
your row_key and wide_row_column is a “compound primary key”.

-- Jack Krupansky

From: Aaron Morton 
Sent: Tuesday, May 20, 2014 3:06 AM
To: Cassandra User 
Subject: Re: CQL 3 and wide rows

In a CQL 3 table the only **column** names are the ones defined in the table, 
in the example below there are three column names.  


    CREATE TABLE keyspace.widerow (

    row_key text,

    wide_row_column text,

    data_column text,

    PRIMARY KEY (row_key, wide_row_column));


    Check out, for example, 
http://www.datastax.com/dev/blog/schema-in-cassandra-1-1.​

Internally there may be more **cells** ( as we now call the internal columns). 
In the example above each value for row_key will create a single partition (as 
we now call internal storage engine rows). In each of those partitions there 
will be cells for each CQL 3 row that has the same row_key, those cells will 
use a Composite for the name. The first part of the composite will be the value 
of the wide_row_column and the second will be the literal name of the non 
primary key columns. 

IMHO Wide partitions (storage engine rows) are more prevalent in CQL3 than 
thrift models. 

  But still - I do not see Iteration, so it looks to me that CQL 3 is limited 
when compared to CLI/Hector.
Now days you can do pretty much everything you can in cli. Provide an example 
and we may be able to help. 

Cheers
Aaron

-----------------
Aaron Morton
New Zealand
@aaronmorton

Co-Founder & Principal Consultant
Apache Cassandra Consulting
http://www.thelastpickle.com

On 20/05/2014, at 8:18 am, Maciej Miklas <mac.mik...@gmail.com> wrote:


  Hi James, 

  Clustering is based on rows. I think that you meant not clustering columns, 
but compound columns. Still all columns belong to single table and are stored 
within single folder on one computer. And it looks to me (but I’am not sure) 
that CQL 3 driver loads all column names into memory - which is confusing to 
me. From one side we have wide row, but we load whole into ram…..

  My understanding of wide row is a row that supports millions of columns, or 
similar things like map or set. In CLI you would generate column names (or use 
compound columns) to simulate set or map,  in CQL 3 you would use some static 
names plus Map or Set structures, or you could still alter table and have large 
number of columns. But still - I do not see Iteration, so it looks to me that 
CQL 3 is limited when compared to CLI/Hector.


  Regards,
  Maciej

  On 19 May 2014, at 17:30, James Campbell <ja...@breachintelligence.com> wrote:


    Maciej,


    In CQL3 "wide rows" are expected to be created using clustering columns.  
So while the schema will have a relatively smaller number of named columns, the 
effect is a wide row.  For example:


    CREATE TABLE keyspace.widerow (

    row_key text,

    wide_row_column text,

    data_column text,

    PRIMARY KEY (row_key, wide_row_column));


    Check out, for example, 
http://www.datastax.com/dev/blog/schema-in-cassandra-1-1.​


    James


----------------------------------------------------------------------------

    From: Maciej Miklas <mac.mik...@gmail.com>
    Sent: Monday, May 19, 2014 11:20 AM
    To: user@cassandra.apache.org
    Subject: CQL 3 and wide rows 

    Hi *, 

    I’ve checked DataStax driver code for CQL 3, and it looks like the column 
names for particular table are fully loaded into memory, it this true?

    Cassandra should support wide rows, meaning tables with millions of 
columns. Knowing that, I would expect kind of iterator for column names. Am I 
missing something here? 


    Regards,
    Maciej Miklas

Reply via email to