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