incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aaron morton <aa...@thelastpickle.com>
Subject Re: Building SSTables using SSTableSimpleUnsortedWriter (v. 1.2.3)
Date Wed, 24 Apr 2013 02:36:48 GMT
You should be able to call CompositeType.getInstance(List<AbstractType<?>> types)
to construct a CompositeType with the appropriate components. Then call CompositeType.decompose()
with a list of the values for the key, that will get you a byte buffer. 

Cheers

-----------------
Aaron Morton
Freelance Cassandra Consultant
New Zealand

@aaronmorton
http://www.thelastpickle.com

On 22/04/2013, at 11:40 AM, David McNelis <dmcnelis@gmail.com> wrote:

> I figured that the primary key and how to define it was the issue.  
> 
> What I don't get is how to structure my 
> SSTableSimpleUnsortedWriter.newRow() call to support the CQL3 style composite primary
keys.  It takes only a ByteBuffer as an argument... 
> 
> I guess I'm looking for some kind of example of a newRow() through addColumns() example
of how to write an SSTable that can be imported to a CQL3 table using the sstableloader.
> 
> For example, should I convert both to a string, concat them with a : and then bytebuffer
that string, as if I were inserting a composite column from cassandra-cli?  
> 
> 
> On Sun, Apr 21, 2013 at 3:55 PM, aaron morton <aaron@thelastpickle.com> wrote:
> The key to your problem is likely the row key. 
> 
> Take a look in at the table schema / sample data in the cassandra-cli to see how CQL
uses composites also http://thelastpickle.com/2013/01/11/primary-keys-in-cql/
> 
> The simple thing to do is use COMPACT STORAGE but that may not suite all use cases http://www.datastax.com/docs/1.2/cql_cli/cql/CREATE_TABLE
> 
> Cheers
> 
> -----------------
> Aaron Morton
> Freelance Cassandra Consultant
> New Zealand
> 
> @aaronmorton
> http://www.thelastpickle.com
> 
> On 20/04/2013, at 4:36 PM, David McNelis <dmcnelis@gmail.com> wrote:
> 
>> Was trying to do a test of writing SSTs for a CQL3 table.  So I created the following
table:
>> 
>> CREATE TABLE test_sst_load (
>>   mykey1 ascii,
>>   mykey2 ascii,
>>   value1 ascii,
>>   PRIMARY KEY (mykey1, mykey2)
>> ) 
>> 
>> I then set up my writer like so: (moved to gist: https://gist.github.com/dmcnelis/5424756
)
>> 
>> This created my SST files ok and they imported without throwing any sorts of errors
(had -v and --debug on) when using sstableloader.
>> 
>> When I went to query my data in cqlsh, I got an rpc error.  In my system.log I saw
an exception: java.lang.RuntimeException: java.lang.IllegalArgumentException
>>  (also at the gist above).
>> 
>> I had a feeling that it wouldn't work.. but I can't see a way with the SSTableSimpleUnsortedWriter
(or in the AbstractSSTableWriter) to create an sstable file that is going to work with the
CQL3 tables.  I know its got to be possible, I can import SSTs with the sstableloader from
one cluster to another, where the tables are CQL3.
>> 
>> What am I missing here?
>> 
>> 
>> 
>> 
> 
> 


Mime
View raw message