cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kevin <kevincastigli...@gmail.com>
Subject Re: are columns of a supercolumn name sorted?
Date Mon, 26 Oct 2009 15:51:43 GMT
i got it, with what i specified the order of  super columns is reversed

client.get_slice(keyspace, key, ColumnParent(column_family="Super1"),
> SlicePredicate(slice_range=SliceRange(start="", finish="",reversed=True)),
> ConsistencyLevel.ONE)


is there anyway i can specify reversed here so that the order of columns in
all the super columns are also reversed?



if i set the super_column variable in the ColumnParent I can get the desired
behavior of columns in reverse chronological order.


On Sun, Oct 25, 2009 at 8:23 PM, kevin <kevincastiglione@gmail.com> wrote:

> thanks for the hint. i have inserted 3 columns into a super column with
> values 1, 2 and 3 in that order. but reversed variable in SliceRange has no
> effect on the order of column received.
>  reversed set to either True or False in SliceRange i get the column in the
> same order. it is not getting reversed.
> Can you tell what is wrong here?
>
> >>> import lazyboy,time, pprint,uuid
>
> >>> from cassandra import Cassandra
> >>> from cassandra.ttypes import *
> >>>
> >>>
> >>> client=lazyboy.connection.Client(['localhost:9160'])
> >>> keyspace = "Keyspace1"
> >>> key='mykeyx'
> >>> column_path =
> ColumnPath(column_family="Super1",column=uuid.uuid1().bytes,super_column='sc_2')
> >>> client.insert(keyspace, key, column_path, '1', time.time(),
> ConsistencyLevel.ONE);
> >>> column_path =
> ColumnPath(column_family="Super1",column=uuid.uuid1().bytes,super_column='sc_2')
> >>> client.insert(keyspace, key, column_path, '2', time.time(),
> ConsistencyLevel.ONE);
> >>> column_path =
> ColumnPath(column_family="Super1",column=uuid.uuid1().bytes,super_column='sc_2')
> >>> client.insert(keyspace, key, column_path, '3', time.time(),
> ConsistencyLevel.ONE);
> >>> client.get_slice(keyspace, key, ColumnParent(column_family="Super1"),
> SlicePredicate(slice_range=SliceRange(start="", finish="",reversed=True)),
> ConsistencyLevel.ONE)
> [ColumnOrSuperColumn(column=None, super_column=SuperColumn(name='sc_2',
> columns=[Column(timestamp=1256527256,
> name='\x93T\x12\x1c\xc1\xde\x11\xde\xa2;\x00%K\xcb\xc7F', value='1'),
> Column(timestamp=1256527257,
> name='\x93\x95`&\xc1\xde\x11\xde\xa4\x0c\x00%K\xcb\xc7F', value='2'),
> Column(timestamp=1256527257,
> name='\x93\xb1\x11T\xc1\xde\x11\xde\xae\xd7\x00%K\xcb\xc7F', value='3')]))]
> >>> client.get_slice(keyspace, key, ColumnParent(column_family="Super1"),
>
> SlicePredicate(slice_range=SliceRange(start="", finish="",reversed=False)),
> ConsistencyLevel.ONE)
> [ColumnOrSuperColumn(column=None, super_column=SuperColumn(name='sc_2',
> columns=[Column(timestamp=1256527256,
> name='\x93T\x12\x1c\xc1\xde\x11\xde\xa2;\x00%K\xcb\xc7F', value='1'),
> Column(timestamp=1256527257,
> name='\x93\x95`&\xc1\xde\x11\xde\xa4\x0c\x00%K\xcb\xc7F', value='2'),
> Column(timestamp=1256527257,
> name='\x93\xb1\x11T\xc1\xde\x11\xde\xae\xd7\x00%K\xcb\xc7F', value='3')]))]
>
> >>>
>
>
>
> On Sun, Oct 25, 2009 at 8:00 PM, Jonathan Ellis <jbellis@gmail.com> wrote:
>
>> it's the "column" attribute of the column_path parameter.
>>
>> uuids have a specific meaning:
>> http://en.wikipedia.org/wiki/Universally_Unique_Identifier
>>
>> test/system/test_server.py has an example of passing time uuids in python.
>>
>> On Sun, Oct 25, 2009 at 8:52 PM, kevin <kevincastiglione@gmail.com>
>> wrote:
>> > i tried the TimeUUIDType and I get the error. can you tell me which here
>> > should be a UUID? what is time based uuid? and which parameter here
>> should
>> > be uuid?
>> > thanks
>> >
>> >>>> import lazyboy,time, pprint
>> >>>> from cassandra import Cassandra
>> >>>> from cassandra.ttypes import *
>> >>>>
>> >>>>
>> >>>> client=lazyboy.connection.Client(['localhost:9160'])
>> >>>> keyspace = "Keyspace1"
>> >>>> key='mykeyx'
>> >>>> column_path =
>> >>>> ColumnPath(column_family="Super1",column="x",super_column='sc_2')
>> >>>> client.insert(keyspace, key, column_path, 'a', time.time(),
>> >>>> ConsistencyLevel.ONE);
>> > Traceback (most recent call last):
>> >   File "<stdin>", line 1, in <module>
>> >   File "/Users/kevin/common/lazyboy/connection.py", line 109, in func
>> >     raise e
>> > cassandra.ttypes.InvalidRequestException:
>> InvalidRequestException(why='UUIDs
>> > must be exactly 16 bytes')
>> >
>> > this is the config in storage-conf.xml
>> >
>> >       <ColumnFamily CompareWith="BytesType"
>> >                     Name="Standard1"
>> >                     FlushPeriodInMinutes="60"/>
>> >       <ColumnFamily CompareWith="UTF8Type" Name="Standard2"/>
>> >       <ColumnFamily CompareWith="TimeUUIDType" Name="StandardByUUID1"/>
>> >       <ColumnFamily ColumnType="Super"
>> >                     CompareWith="UTF8Type"
>> >                     CompareSubcolumnsWith="TimeUUIDType"
>> >                     Name="Super1"/>
>> >
>> >
>> > On Sun, Oct 25, 2009 at 5:40 PM, Jonathan Ellis <jbellis@gmail.com>
>> wrote:
>> >>
>> >> Sorry, the paragraph about subcolumns always being sorted by time is
>> >> outdated.  (I've taken it out on the 0.4 branch now -- it was already
>> >> gone in trunk.)  Read just below that about how comparewith and
>> >> comparesubcolumnswith work.  Sounds like using TimeUUIDType for
>> >> subcolumns is what you want (with the reverse option to slice, to get
>> >> most-recent-first).
>> >>
>> >> On Sun, Oct 25, 2009 at 5:17 PM, kevin <kevincastiglione@gmail.com>
>> wrote:
>> >> > i am inserting three columns x,a,z into a super column named 'sc_2'.
>> the
>> >> > config file says that the columns of a super column are timesorted,
>> but
>> >> > when
>> >> > i get_slice it is sorted by the name of the columns. how do i get it
>> >> > time
>> >> > sorted so that i get the most recently inserted/updated column first?
>> >> > cassandra version apache-cassandra-incubating-0.4.1-bin.tar.gz, and
>> >> > lazyboy
>> >> > latest git clone.
>> >> > thanks
>> >> >
>> >> >
>> >> >>>> import lazyboy,time, pprint
>> >> >>>> from cassandra import Cassandra
>> >> >>>> from cassandra.ttypes import *
>> >> >
>> >> >
>> >> >>>> client=lazyboy.connection.Client(['localhost:9160'])
>> >> >>>> keyspace = "Keyspace1"
>> >> >>>> key='mykeyx'
>> >> >>>> column_path =
>> >> >>>> ColumnPath(column_family="Super1",column="x",super_column='sc_2')
>> >> >>>> client.insert(keyspace, key, column_path, 'a', time.time(),
>> >> >>>> ConsistencyLevel.ONE);
>> >> >>>> column_path =
>> >> >>>> ColumnPath(column_family="Super1",column="a",super_column='sc_2')
>> >> >>>> client.insert(keyspace, key, column_path, 'a', time.time(),
>> >> >>>> ConsistencyLevel.ONE);
>> >> >>>> column_path =
>> >> >>>> ColumnPath(column_family="Super1",column="z",super_column='sc_2')
>> >> >>>> client.insert(keyspace, key, column_path, 'a', time.time(),
>> >> >>>> ConsistencyLevel.ONE);
>> >> >
>> >> >
>> >> >>>> slice_range = SliceRange(start="", finish="")
>> >> >>>> predicate = SlicePredicate(slice_range=slice_range)
>> >> >>>> column_parent = ColumnParent(column_family="Super1")
>> >> >>>> client.get_slice(keyspace, key, column_parent, predicate,
>> >> >>>> ConsistencyLevel.ONE)
>> >> > [ColumnOrSuperColumn(column=None,
>> super_column=SuperColumn(name='sc_2',
>> >> > columns=[Column(timestamp=1256512261, name='a', value='a'),
>> >> > Column(timestamp=1256512252, name='x', value='a'),
>> >> > Column(timestamp=1256512267, name='z', value='a')]))]
>> >> >
>> >
>> >
>>
>
>

Mime
View raw message