Hi, I'm trying to migrate from Cassandra 1.1 and Hector to a more up-to-date stack like Cassandra 1.2+ and CQL3.
I have read http://www.datastax.com/dev/blog/thrift-to-cql3 <https://webmail.one.grp/owa/redir.aspx?C=d70889e7914440b0ad13875bf00770a8&URL=http%3a%2f%2fwww.datastax.com%2fdev%2fblog%2fthrift-to-cql3> but my use case adds a complexity which seems not documented : I have a mixed column family with a secondary index. The column family has one explicitly declared column, which is indexed natively. In this column family, I'm also adding columns dynamically : some with predictive names, some with dynamic names. If I try to query this table in cql, I can access only the declared column (as stated in the documentation above). If I change the declaration by removing the explicitly declared column (as explained in the documentation above), I loose the secondary index on it. If I explicitly declare all the columns with an already known name (assuming I accept that I will get plenty of columns with a null value for the lines which don't have those attributes), I still can't manage columns with a dynamic name. And I can't declare a collection as my comparator is UTF8Type. Should I migrate in a new table if I want to keep all the functionalities? This is really a solution I want to avoid. Here is an example representing my actual schema : I have a column family "REF_File" referencing my files. A file always has a "folder". The "folder" is indexed to easily find my files. A file may have some attributes like "name", "size", "mime ". A file may have some comments referenced by a column "COM_X" where "X" is the comment ID. Column family creation : Create column family REF_File with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type and column_metadata=[{column_name: folder, validation_class: UTF8Type, index_type: KEYS}]; set REF_File['id1']['folder']=folder1; set REF_File['id1']['name']=file1; set REF_File['id1']['size']=1234; set REF_File['id1']['COM_1']=''; set REF_File['id1']['COM_2']=''; set REF_File['id2']['folder']=folder1; set REF_File['id2']['name']=file2; set REF_File['id2']['mime']='image/jpeg'; set REF_File['id2']['COM_1']=''; Requesting : [default@DUNE_metadonnees] list REF_File; Using default limit of 100 Using default cell limit of 100 ------------------- RowKey: id1 => (name=COM_1, value=, timestamp=1437034903045000) => (name=COM_2, value=, timestamp=1437034911121000) => (name=folder, value=folder1, timestamp=1437034833452000) => (name=name, value=file1, timestamp=1437034851993000) => (name=size, value=1234, timestamp=1437034871356000) ------------------- RowKey: id2 => (name=COM_1, value=, timestamp=1437035169011000) => (name=folder, value=folder1, timestamp=1437035062080000) => (name=mime, value=image/jpeg, timestamp=1437035145227000) => (name=name, value=file2, timestamp=1437035073596000) Thanks for your help !