You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Jon Carter <jj...@gmail.com> on 2014/02/27 17:41:54 UTC

Upgrading Column Families with Composite to CQL3

Hello everyone,

I'm trying to update some column families to start using the CQL3 drivers
instead of Hector (the Java driver that uses Thrift, I assume any changes
that would allow Thrift to work would let Hector work, but there may be
some idiosyncrasies with Hector I don't know about.  I'll report back if
there are any) for at least future development.  It would be nice if they
can be updated in place without breaking compatibility with Hector, but if
not there's little enough to rewrite that's it's no big deal, as long as
the data is accessible without reloading it.

So far I've found documentation on how to use ALTER TABLE to update column
families with a Composite as the row key and/or column name, but I haven't
seen anything on converting the column value blob to a group of columns
when it is a Composite.

Is it possible to add the metadata necessary in place or would using CQL3
require some sort of ETL to convert it?  Would altering it allow both
Hector and CQL3 to operate on a given column family at the same time or
would it only be accessible to CQL3 afterwards?

I'm using Cassandra 1.2.5.

Thanks,

Jon

Re: Upgrading Column Families with Composite to CQL3

Posted by Nate McCall <na...@thelastpickle.com>.
I'd recommend starting with the very latest Astyanax+DS Client hybrid as
that will make the transition easier. See this Astyanax wiki page for
details:
https://github.com/Netflix/astyanax/wiki/Astyanax-over-Java-Driver

CQL3 is meta data is basically just composites under the hood, so it will
most likely not be a straight forward mapping onto your data model.

Some useful blogs:
http://thelastpickle.com/blog/2013/09/13/CQL3-to-Astyanax-Compatibility.html
http://planetcassandra.org/blog/post/understanding-how-cql3-maps-to-cassandras-internal-data--structure/
http://www.datastax.com/dev/blog/does-cql-support-dynamic-columns-wide-rows

On Thu, Feb 27, 2014 at 10:41 AM, Jon Carter <jj...@gmail.com>wrote:

> Hello everyone,
>
> I'm trying to update some column families to start using the CQL3 drivers
> instead of Hector (the Java driver that uses Thrift, I assume any changes
> that would allow Thrift to work would let Hector work, but there may be
> some idiosyncrasies with Hector I don't know about.  I'll report back if
> there are any) for at least future development.  It would be nice if they
> can be updated in place without breaking compatibility with Hector, but if
> not there's little enough to rewrite that's it's no big deal, as long as
> the data is accessible without reloading it.
>
> So far I've found documentation on how to use ALTER TABLE to update column
> families with a Composite as the row key and/or column name, but I haven't
> seen anything on converting the column value blob to a group of columns
> when it is a Composite.
>
> Is it possible to add the metadata necessary in place or would using CQL3
> require some sort of ETL to convert it?  Would altering it allow both
> Hector and CQL3 to operate on a given column family at the same time or
> would it only be accessible to CQL3 afterwards?
>
> I'm using Cassandra 1.2.5.
>
> Thanks,
>
> Jon
>



-- 
-----------------
Nate McCall
Austin, TX
@zznate

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