> Save the skills in a single column in json format. Job done. > Good if it have fixed set of skills, then any add or delete changes need handle in app. ->read column first->reformat JOSN->update column (2 thrift calls).
skill~Java: null, skill~Cassandra: null This is also good option, but any schema change will break it. On Mar 26, 2012 7:04 PM, "Ben McCann" <b...@benmccann.com> wrote: > >> True. But I don't need the skills to be searchable, so I'd rather embed >> them in the user than add another top-level CF. I was thinking of doing >> something along the lines of adding a skills super column to the User table: >> >> skills: { >> 'java': null, >> 'c++': null, >> 'cobol': null >> } >> >> However, I'm still not sure yet how to accomplish this with Astyanax. >> I've only figured out how to make composite columns with predefined column >> names with it and not dynamic column names like this. >> >> >> >> On Mon, Mar 26, 2012 at 9:08 AM, R. Verlangen <ro...@us2.nl> wrote: >> >>> In this case you only neem the columns for values. You don't need the >>> column-values to hold multiple columns (the super-column principle). So a >>> normal CF would work. >>> >>> >>> 2012/3/26 Ben McCann <b...@benmccann.com> >>> >>>> Thanks for the reply Samal. I did not realize that you could store a >>>> column with null value. Do you know if this solution would work with >>>> composite columns? It seems super columns are being phased out in favor of >>>> composites, but I do not understand composites very well yet. I'm trying >>>> to figure out if there's any way to accomplish what you've suggested using >>>> Astyanax <https://github.com/Netflix/astyanax>. >>>> >>>> Thanks for the help, >>>> Ben >>>> >>>> >>>> On Mon, Mar 26, 2012 at 8:46 AM, samal <samalgo...@gmail.com> wrote: >>>> >>>>> plus it is fully compatible with CQL. >>>>> SELECT * FROM UserSkill WHERE KEY='ben'; >>>>> >>>>> >>>>> On Mon, Mar 26, 2012 at 9:13 PM, samal <samalgo...@gmail.com> wrote: >>>>> >>>>>> I would take simple approach. create one other CF "UserSkill" with >>>>>> row key same as profile_cf key, >>>>>> In user_skill cf will add skill as column name and value null. >>>>>> Columns can be added or removed. >>>>>> >>>>>> UserProfile={ >>>>>> '*ben*'={ >>>>>> blah :blah >>>>>> blah :blah >>>>>> blah :blah >>>>>> } >>>>>> } >>>>>> >>>>>> UserSkill={ >>>>>> '*ben*'={ >>>>>> 'java':'' >>>>>> 'cassandra':'' >>>>>> . >>>>>> . >>>>>> . >>>>>> 'linux':'' >>>>>> 'skill':'infinity' >>>>>> >>>>>> } >>>>>> >>>>>> } >>>>>> >>>>>> >>>>>> On Mon, Mar 26, 2012 at 12:34 PM, Ben McCann <b...@benmccann.com>wrote: >>>>>> >>>>>>> I have a profile column family and want to store a list of skills in >>>>>>> each profile. In BigTable I could store a Protocol >>>>>>> Buffer<http://code.google.com/apis/protocolbuffers/docs/overview.html>with >>>>>>> a repeated field, but I'm not sure how this is typically accomplished >>>>>>> in Cassandra. One option would be to store a serialized >>>>>>> Thrift<http://thrift.apache.org/>or protobuf, but I'd prefer not to do >>>>>>> this as I believe Cassandra doesn't >>>>>>> have knowledge of these formats, and so the data in the datastore would >>>>>>> not >>>>>>> not human readable in CQL queries from the command line. The other >>>>>>> solution I thought of would be to use a super column and put a random >>>>>>> UUID >>>>>>> as the key for each skill: >>>>>>> >>>>>>> skills: { >>>>>>> '4b27c2b3ac48e8df': 'java', >>>>>>> '84bf94ea7bc92018': 'c++', >>>>>>> '9103b9a93ce9d18': 'cobol' >>>>>>> } >>>>>>> >>>>>>> Is this a good way of handling lists in Cassandra? I imagine >>>>>>> there's some idiom I'm not aware of. I'm using the >>>>>>> Astyanax<https://github.com/Netflix/astyanax/wiki>client library, which >>>>>>> only supports composite columns instead of super >>>>>>> columns, and so the solution I proposed above would seem quite awkward >>>>>>> in >>>>>>> that case. Though I'm still having some trouble understanding composite >>>>>>> columns as they seem not to be completely documented yet. Would this >>>>>>> solution work with composite columns? >>>>>>> >>>>>>> Thanks, >>>>>>> Ben >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >>> >>> -- >>> With kind regards, >>> >>> Robin Verlangen >>> www.robinverlangen.nl >>> >>> >>