I've used "special" values which still comply with the Composite
schema for the metadata columns, e.g. a column of
1970-01-01:{accountId} for a metadata column where the Composite is
DateType:UTF8Type.

Jim

On Sat, Feb 4, 2012 at 2:13 PM, Yiming Sun <yiming....@gmail.com> wrote:
> 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 <chrisger...@mindspring.com>
> wrote:
>>
>>
>>
>>
>> On 4 February 2012 06:21, Yiming Sun <yiming....@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
>
>

Reply via email to