Hi, Adding to previous mail. For example: We have a column family named review (with some arbitrary data in map).
CREATE TABLE review( product_id bigint, created_at timestamp, data_int map<text, int>, data_text map<text, text>, PRIMARY KEY (product_id, created_at) ); Assume that these 2 maps I use to store arbitrary data (i.e. data_int and data_text for int and text values) when we see output on cassandra-cli, it looks like in a partition as : <clustering_key>:data_int:map_key as column name and value as map value. suppose I need to get this value, I couldn't do that with CQL3 but in thrift its possible. Any Solution? On Wed, Jan 21, 2015 at 1:06 AM, chetan verma <chetanverm...@gmail.com> wrote: > Hi, > > Most of the time I will be querying on product_id and created_at, but for > analytic I need to query almost on all column. > Multiple collections ideas is good but the only is cassandra reads a > collection entirely, what if I need a slice of it, I mean > columns for certain keys which is possible with thrift. Please suggest. > > On Wed, Jan 21, 2015 at 12:36 AM, Jonathan Lacefield < > jlacefi...@datastax.com> wrote: > >> Hello, >> >> There are probably lots of options to this challenge. The more details >> around your use case that you can provide, the easier it will be for this >> group to offer advice. >> >> A few follow-up questions: >> - How will you query this data? >> - Do your queries require filtering on specific columns other than >> product_id and created_at, i.e. the dynamic columns? >> >> Depending on the answers to these questions, you have several options, of >> which here are a few: >> >> - Cassandra efficiently stores sparse data, so you could create >> columns and not populate them, without much of a penalty >> - Could use a clustering column to store a columns type and another >> col (potentially clustering) to store the value >> - i.e. CREATE TABLE foo (col1 int, attname text, attvalue text, >> col4...n, PRIMARY KEY (col1, attname, attvalue)); >> - where attname stores the name of the attribute/column and >> attvalue stores the value of that attribute >> - have seen users use this model and create a "main" attribute row >> within a partition that stores the values associated with col4...n >> - Could store multiple collections >> - Others probably have ideas as well >> >> You may want to look in the archives for a similar discussion topic. >> Believe this item was asked a few months ago as well. >> >> [image: datastax_logo.png] >> >> Jonathan Lacefield >> >> Solution Architect | (404) 822 3487 | jlacefi...@datastax.com >> >> [image: linkedin.png] <http://www.linkedin.com/in/jlacefield/> [image: >> facebook.png] <https://www.facebook.com/datastax> [image: twitter.png] >> <https://twitter.com/datastax> [image: g+.png] >> <https://plus.google.com/+Datastax/about> >> <http://feeds.feedburner.com/datastax> <https://github.com/datastax/> >> >> On Tue, Jan 20, 2015 at 1:40 PM, chetan verma <chetanverm...@gmail.com> >> wrote: >> >>> Hi, >>> >>> I am creating a review system. for instance lets assume following are >>> the attibutes of system: >>> >>> Review{ >>> id bigint, >>> product_id bigint, >>> created_at timestamp, >>> summary text, >>> description text, >>> pros set<text>, >>> cons set<text>, >>> feature_rating map<text, int> >>> etc.... >>> } >>> I created partition key as product_id (so that all the reviews for a >>> given product will reside on same node) >>> and clustering key as created_at and id (Desc) so that reviews will be >>> sorted by time. >>> >>> I can have more column and that requirement I want to fulfil by dynamic >>> columns but there are limitations to it explained above. >>> Could you please let me know the best way. >>> >>> On Tue, Jan 20, 2015 at 11:59 PM, Jonathan Lacefield < >>> jlacefi...@datastax.com> wrote: >>> >>>> Hello, >>>> >>>> Have you looked at solving this challenge with clustering columns? >>>> Also, please describe the problem set details for more specific advice from >>>> this group. >>>> >>>> Starting new projects on Thrift isn't the recommended approach. >>>> >>>> Jonathan >>>> >>>> [image: datastax_logo.png] >>>> >>>> Jonathan Lacefield >>>> >>>> Solution Architect | (404) 822 3487 | jlacefi...@datastax.com >>>> >>>> [image: linkedin.png] <http://www.linkedin.com/in/jlacefield/> [image: >>>> facebook.png] <https://www.facebook.com/datastax> [image: twitter.png] >>>> <https://twitter.com/datastax> [image: g+.png] >>>> <https://plus.google.com/+Datastax/about> >>>> <http://feeds.feedburner.com/datastax> <https://github.com/datastax/> >>>> >>>> On Tue, Jan 20, 2015 at 1:24 PM, chetan verma <chetanverm...@gmail.com> >>>> wrote: >>>> >>>>> Hi, >>>>> >>>>> I am starting a new project with cassandra as database. >>>>> I have unstructured data so I need dynamic columns, >>>>> though in CQL3 we can achive this via Collections but there are some >>>>> downsides to it. >>>>> 1. Collections are used to store small amount of data. >>>>> 2. The maximum size of an item in a collection is 64K. >>>>> 3. Cassandra reads a collection in its entirety. >>>>> 4. Restrictions on number of items in collections is 64,000 >>>>> >>>>> And no support to get single column by map key, which is possible via >>>>> cassandra cli. >>>>> Please suggest whether I should use CQL3 or Thrift and which driver is >>>>> best. >>>>> >>>>> -- >>>>> *Regards,* >>>>> *Chetan Verma* >>>>> *+91 99860 86634 <%2B91%2099860%2086634>* >>>>> >>>> >>>> >>> >>> >>> -- >>> *Regards,* >>> *Chetan Verma* >>> *+91 99860 86634 <%2B91%2099860%2086634>* >>> >> >> > > > -- > *Regards,* > *Chetan Verma* > *+91 99860 86634 <%2B91%2099860%2086634>* > -- *Regards,* *Chetan Verma* *+91 99860 86634*