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 >>> >>> >>> >>> >> >> > > > >