Could you please give a more concrete example?  

On Aug 30, 2013, at 11:10 AM, Peter Lin <wool...@gmail.com> wrote:

> 
> in my case, I built a temporal database on top of Cassandra, so it's 
> absolutely key.
> 
> Dynamic columns are super powerful, which relational database have no 
> equivalent. For me, that is one of the top 3 reasons for using Cassandra.
> 
> 
> 
> On Fri, Aug 30, 2013 at 2:03 PM, Vivek Mishra <mishra.v...@gmail.com> wrote:
> If you talk about comparator. Yes, that's a valid point and not possible with 
> CQL3.
> 
> -Vivek
> 
> 
> On Fri, Aug 30, 2013 at 11:31 PM, Peter Lin <wool...@gmail.com> wrote:
> 
> I use dynamic columns all the time and they vary in type.
> 
> With CQL you can define a default type, but you can't insert specific types 
> of data for column name and value. It forces you to use all bytes or all 
> strings, which would require coverting it to other types.
> 
> thrift is much more powerful in that respect.
> 
> not everyone needs to take advantage of the full power of dynamic columns.
> 
> 
> On Fri, Aug 30, 2013 at 1:58 PM, Jon Haddad <j...@jonhaddad.com> wrote:
> Just curious - what do you need to do that requires thrift?  We've build our 
> entire platform using CQL3 and we haven't hit any issues.  
> 
> On Aug 30, 2013, at 10:53 AM, Peter Lin <wool...@gmail.com> wrote:
> 
>> 
>> my bias perspective, I find the sweet spot is thrift for insert/update and 
>> CQL for select queries.
>> 
>> CQL is too limiting and negates the power of storing arbitrary data types in 
>> dynamic columns.
>> 
>> 
>> On Fri, Aug 30, 2013 at 1:45 PM, Jon Haddad <j...@jonhaddad.com> wrote:
>> If you're going to work with CQL, work with CQL.  If you're going to work 
>> with Thrift, work with Thrift.  Don't mix.
>> 
>> On Aug 30, 2013, at 10:38 AM, Vivek Mishra <mishra.v...@gmail.com> wrote:
>> 
>>> Hi,
>>> If i a create a table with CQL3 as 
>>> 
>>> create table user(user_id text PRIMARY KEY, first_name text, last_name 
>>> text, emailid text);
>>> 
>>> and create index as:
>>> create index on user(first_name);
>>> 
>>> then inserted some data as:
>>> insert into user(user_id,first_name,last_name,"emailId") 
>>> values('@mevivs','vivek','mishra','vivek.mis...@impetus.co.in');
>>> 
>>> 
>>> Then if update same column family using Cassandra-cli as:
>>> 
>>> update column family user with key_validation_class='UTF8Type' and 
>>> column_metadata=[{column_name:last_name, validation_class:'UTF8Type', 
>>> index_type:KEYS},{column_name:first_name, validation_class:'UTF8Type', 
>>> index_type:KEYS}];
>>> 
>>> 
>>> Now if i connect via cqlsh and explore user table, i can see column 
>>> first_name,last_name are not part of table structure anymore. Here is the 
>>> output:
>>> 
>>> CREATE TABLE user (
>>>   key text PRIMARY KEY
>>> ) WITH
>>>   bloom_filter_fp_chance=0.010000 AND
>>>   caching='KEYS_ONLY' AND
>>>   comment='' AND
>>>   dclocal_read_repair_chance=0.000000 AND
>>>   gc_grace_seconds=864000 AND
>>>   read_repair_chance=0.100000 AND
>>>   replicate_on_write='true' AND
>>>   populate_io_cache_on_flush='false' AND
>>>   compaction={'class': 'SizeTieredCompactionStrategy'} AND
>>>   compression={'sstable_compression': 'SnappyCompressor'};
>>> 
>>> cqlsh:cql3usage> select * from user;
>>> 
>>>  user_id
>>> ---------
>>>  @mevivs
>>> 
>>> 
>>> 
>>> 
>>> 
>>> I understand that, CQL3 and thrift interoperability is an issue. But this 
>>> looks to me a very basic scenario.
>>> 
>>> 
>>> 
>>> Any suggestions? Or If anybody can explain a reason behind this?
>>> 
>>> -Vivek
>>> 
>>> 
>>> 
>>> 
>> 
>> 
> 
> 
> 
> 

Reply via email to