incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yiming Sun <yiming....@gmail.com>
Subject Re: yet a couple more questions on composite columns
Date Sun, 05 Feb 2012 01:51:48 GMT
R.V., I am a little confused.  I was under the impression that you cannot
have two rows with the same key - unless you were referring to two
different CFs?

On Sat, Feb 4, 2012 at 6:11 PM, R. Verlangen <robin@us2.nl> wrote:

> I just kept both row keys the same. This was very trivial for fetching
> them both. When you have A, you can fetch B, and vice versa.
>
>
> 2012/2/4 Yiming Sun <yiming.sun@gmail.com>
>
>> Interesting idea, R.V.  But what did you do with the row keys?
>>
>>
>> On Sat, Feb 4, 2012 at 2:29 PM, R. Verlangen <robin@us2.nl> wrote:
>>
>>> I also made something like this a while ago. I decided to go for the
>>> 2-rows-solution: by doing that you don't have the need for super columns.
>>> Cassandra is really good at reading, so this should not be an issue.
>>>
>>> Cheers!
>>>
>>>
>>> 2012/2/4 Yiming Sun <yiming.sun@gmail.com>
>>>
>>>> Thanks Andrey and Chris.  It sounds like we don't necessarily have to
>>>> use composite columns.  From what I understand about dynamic CF, each row
>>>> may have completely different data from other rows;  but in our case, the
>>>> data in each row is similar to other rows; my concern was more about the
>>>> homogeneity of the data between columns.
>>>>
>>>> In our original supercolumn-based schema, one special supercolumn is
>>>> called "metadata" which contains a number of subcolumns to hold metadata
>>>> describing each collection (e.g. number of documents, etc.), then the rest
>>>> of the supercolumns in the same row are all IDs of documents belong to the
>>>> collection, and for each document supercolumn, the subcolumns contain the
>>>> document content as well as metadata on individual document (e.g. checksum
>>>> of each document).
>>>>
>>>> To move away from the supercolumn schema, I could either create two
>>>> CFs, one to hold metadata, the other document content; or I could create
>>>> just one CF mixing metadata and doc content in the same row, and using
>>>> composite column names to identify if the particular column is metadata or
>>>> a document.  I am just wondering if you have any inputs on the pros and
>>>> cons of each schema.
>>>>
>>>> -- Y.
>>>>
>>>>
>>>> On Fri, Feb 3, 2012 at 10:27 PM, Chris Gerken <
>>>> chrisgerken@mindspring.com> wrote:
>>>>
>>>>>
>>>>>
>>>>>
>>>>> On 4 February 2012 06:21, Yiming Sun <yiming.sun@gmail.com> wrote:
>>>>>
>>>>>> I cannot have one composite column name with 3 components while
>>>>>> another with 4 components?
>>>>>
>>>>>  Just put 4 components and left last empty (if it is same type)?!
>>>>>
>>>>> Another question I have is how flexible composite columns actually
>>>>>> are.  If my data model has a CF containing US zip codes with the
following
>>>>>> composite columns:
>>>>>>
>>>>>> {OH:Spring Field} : 45503
>>>>>> {OH:Columbus} : 43085
>>>>>> {FL:Spring Field} : 32401
>>>>>> {FL:Key West}  : 33040
>>>>>>
>>>>>> I know I can ask cassandra to "give me the zip codes of all cities
in
>>>>>> OH".  But can I ask it to "give me the zip codes of all cities named
Spring
>>>>>> Field" using this model?  Thanks.
>>>>>>
>>>>> No. You set first composite component at first.
>>>>>
>>>>>
>>>>> I'd use a dynamic CF:
>>>>> row key = state abbreviation
>>>>> column name = city name
>>>>> column value = zip code (or a complex object, one of whose properties
>>>>> is zip code)
>>>>>
>>>>> you can iterate over the columns in a single row to get a state's city
>>>>> names and their zip code and you can do a get_range_slices on all keys
for
>>>>> the columns starting and ending on the city name to find out the zip
codes
>>>>> for a cities with the given name.
>>>>>
>>>>> I think
>>>>>
>>>>> - Chris
>>>>>
>>>>
>>>>
>>>
>>
>

Mime
View raw message