> Im finding that only the first component is used ….is this understanding > correct? The result is correct.
> to (end)component1=timestamp3,component2=123 is less than > Timestamp3: 777 Example: CREATE COLUMN FAMILY Foo WITH key_validation_class = UTF8Type AND comparator = 'CompositeType(IntegerType, IntegerType)' AND default_validation_class = UTF8Type ; set Foo['bar']['1:1'] = 'baz1'; set Foo['bar']['2:2'] = 'baz2'; set Foo['bar']['3:3'] = 'baz3'; set Foo['bar']['4:4'] = 'baz4'; aarons-MBP-2011:pycassa aaron$ ./pycassaShell -k dev In [2]: FOO.get("bar") Out[2]: OrderedDict([((1, 1), u'baz1'), ((2, 2), u'baz2'), ((3, 3), u'baz3'), ((4, 4), u'baz4')]) In [6]: FOO.get("bar", column_start=(2,2)) Out[6]: OrderedDict([((2, 2), u'baz2'), ((3, 3), u'baz3'), ((4, 4), u'baz4')]) In [8]: FOO.get("bar", column_start=(2,2), column_finish=(3,3)) Out[8]: OrderedDict([((2, 2), u'baz2'), ((3, 3), u'baz3')]) In [9]: FOO.get("bar", column_start=(2,2), column_finish=(3,1)) Out[9]: OrderedDict([((2, 2), u'baz2')]) In [10]: FOO.get("bar", column_start=(2,), column_finish=(3,)) Out[10]: OrderedDict([((2, 2), u'baz2'), ((3, 3), u'baz3')]) > We see a lot of examples about Timeseries modelling ... Sorry I do not understand this question. Cheers ----------------- Aaron Morton Freelance Developer @aaronmorton http://www.thelastpickle.com On 24/08/2012, at 11:17 PM, Roshni Rajagopal <roshni.rajago...@wal-mart.com> wrote: > Thank you Aaron & Guillermo, > > I find composite columns very confusing :( > To reconfirm , > > 1. we can only search for columns range with the first component on the > composite column. > 2. After specifying a range for the first component, we cannot further > filter for the second component. I found this link > http://doanduyhai.wordpress.com/2012/07/05/apache-cassandra-tricks-and-traps/ > which seems to suggest filtering is possible by second component in addition > to first, and I tried the same example but I couldn't get it to work. Does > anyone have an example where suppose I have data like this in my column names > > Timestamp1: 123, Timestamp2: 456, Timestamp3: 777,Timestamp4: 654 ---get > range of columns for (start)component1 = timestamp1, component2=123 , to > (end)component1=timestamp3,component2=123 --> should give me only one column > Im finding that only the first component is used ….is this understanding > correct? > > > We see a lot of examples about Timeseries modelling with TimeUUID as column > names. But how is the updating or deletion of columns happening here, how are > the columns found to know which ones to delete or modify. Does one always > need a separate column family to handle updating/deletion for time series, or > is usually handled by setting TTL for data outside the archival period, or > does time series modelling usually not involve any manipulation of past > records? > > Regards, > Roshni > > > > From: aaron morton <aa...@thelastpickle.com<mailto:aa...@thelastpickle.com>> > Reply-To: "user@cassandra.apache.org<mailto:user@cassandra.apache.org>" > <user@cassandra.apache.org<mailto:user@cassandra.apache.org>> > To: "user@cassandra.apache.org<mailto:user@cassandra.apache.org>" > <user@cassandra.apache.org<mailto:user@cassandra.apache.org>> > Subject: Re: Data Modelling Suggestions > > I was trying to find hector examples where we search for second column in a > composite column, but I couldn't find any good one. Im not sure if its > possible.…if you have any do have any example please share. > It's not. When slicing columns you can only return one contiguous range. > > Anyway I would prefer storing the item-ids as column names in the main column > family and having a second CF for the order-by-date query only with the pair > timestamp_itemid. That way you can add later other query strategies without > messing with how you store the item > +1 > Have the orders somewhere, and build a time ordered custom index to show them > in order. > > Cheers > > ----------------- > Aaron Morton > Freelance Developer > @aaronmorton > http://www.thelastpickle.com > > On 24/08/2012, at 6:28 AM, Guillermo Winkler > <gwink...@inconcertcc.com<mailto:gwink...@inconcertcc.com>> wrote: > > I think you need another CF as index. > > user_itemid -> timestamped column_name > > Otherwise you can't guess what's the timestamp to use in the column name. > > Anyway I would prefer storing the item-ids as column names in the main column > family and having a second CF for the order-by-date query only with the pair > timestamp_itemid. That way you can add later other query strategies without > messing with how you store the item information. > > Maybe you can solve it with a secondary index by timestamp too. > > Guille > > > On Thu, Aug 23, 2012 at 7:26 AM, Roshni Rajagopal > <roshni.rajago...@wal-mart.com<mailto:roshni.rajago...@wal-mart.com>> wrote: > Hi, > > Need some help on a data modelling question. We're using Hector & Datastax > Enterprise 2.1. > > > I want to associate a list of items for a user. It should be sorted on the > time added. And items can be updated (quantity of the item can be changed), > and items can be deleted. > I can model it like this so that its denormalized and I get all my > information in one go from one row, sorted by time added. I can use composite > columns. > > Row key: User Id > Column Name: TimeUUID:item ID: Item Name: Item Description: Item Price: Item > Qty > Column Value : Null > > Now, how do I handle manipulations > > 1. Add new item :Easy , just a new column > 2. Add exiting item or modify qty: I want to get to the correct column to > update . Can I search by second column in the composite column (equals > condition) & update the column name itself to reflect new TimeUUID and qty? > Or would it be better to just add it as a new column and always use the > latest column for an item in the application code and delete duplicates in > the background. > 3. Delete item: Can I search by second column in the composite column to > find the correct column to delete? > > I was trying to find hector examples where we search for second column in a > composite column, but I couldn't find any good one. Im not sure if its > possible.…if you have any do have any example please share. > > Regards, > Roshni > > > This email and any files transmitted with it are confidential and intended > solely for the individual or entity to whom they are addressed. If you have > received this email in error destroy it immediately. *** Walmart Confidential > *** > > > This email and any files transmitted with it are confidential and intended > solely for the individual or entity to whom they are addressed. If you have > received this email in error destroy it immediately. *** Walmart Confidential > ***