incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Hodges <jhod...@twitter.com>
Subject Re: ORM in Cassandra?
Date Mon, 26 Apr 2010 17:29:09 GMT
There is, of course, also cassandra_object on the ruby side. I assume
this thread has the implicit requirement of Java, though.
--
Jeff

On Mon, Apr 26, 2010 at 10:26 AM, Isaac Arias <ikester@gmail.com> wrote:
> On Apr 26, 2010, at 12:13 PM, Geoffry Roberts wrote:
>
>> Clearly Cassandra is not an RDBMS.  The intent of my Hibernate
>> reference was to be more lyrical.  Sorry if that didn't come through.
>
>> Nonetheless, the need remains to relieve ourselves from excessive
>> boilerplate coding.
>
> I agree with eliminating boilerplate code. Chris Shorrock wrote a
> simple object mapper in Scala for his Cascal Cassandra client. You may
> want to check out the wiki on GitHub
> (http://wiki.github.com/shorrockin/cascal/).
>
> In my opinion, a mapping solution for Cassandra should be more like a
> Template. Something that helps map (back and forth) rows to objects,
> columns to properties, etc. Since the data model can vary so much
> depending on data access patters, any overly structured approach that
> prescribes a particular schema will be of limited use.
>
> If you're from the Java world, think of iBATIS vs. Hibernate.
>
>
>>
>> On Mon, Apr 26, 2010 at 9:00 AM, Ned Wolpert =
> <ned.wolpert@imemories.com> wrote:
>> I don't think you are trying to convert Cassandra to a RDBMS with what =
> you want. The issue is that finding a way to map these objects to =
> Cassandra in a meaningful way is hard. Its not as easy as saying 'do =
> what hibernate does' simply because its not an RDBMS...but it is a =
> reasonable and useful goal. I'm trying to accomplish this myself with =
> the grails Cassandra plugin.
>>=20
>>=20
>> On Fri, Apr 23, 2010 at 8:00 PM, aXqd <axqd001@gmail.com> wrote:
>> On Sat, Apr 24, 2010 at 1:36 AM, Ned Wolpert =
> <ned.wolpert@imemories.com> wrote:
>> > There is nothing wrong with what you are asking. Some work has been =
> done to
>> > get an ORM layer ontop of cassandra, for example, with a RubyOnRails
>> > project. I'm trying to simplify cassandra integration with grails =
> with the
>> > plugin I'm writing.
>> > The problem is ORM solutions to date are wrapping a relational =
> database.
>> > (The 'R' in ORM) Cassandra isn't a relational database so it does =
> not map
>> > cleanly.
>>=20
>> Thanks. I noticed this problem before. I just want to know, in the
>> first place, what exactly is the right way to model relations in
>> Cassandra(a no-relational database).
>> So far, I still have those entities, and, without foreign keys, I use
>> relational entities, which contains the IDs of both sides of
>> relations.
>> In some other cases, I just duplicate data, and maintain the relations
>> manually by updating all the data in the same time.
>>=20
>> Is this the right way to go? Or what I am doing is still trying to
>> convert Cassandra to a RDBMS?
>>=20
>> >
>> > On Fri, Apr 23, 2010 at 1:29 AM, aXqd <axqd001@gmail.com> wrote:
>> >>
>> >> On Fri, Apr 23, 2010 at 3:03 PM, Benoit Perroud =
> <benoit@noisette.ch>
>> >> wrote:
>> >> > I understand the question more like : Is there already a lib =
> which
>> >> > help to get rid of writing hardcoded and hard to maintain lines =
> like :
>> >> >
>> >> > MyClass data;
>> >> > String[] myFields =3D {"name", "label", ...}
>> >> > List<Column> columns;
>> >> > for (String field : myFields) {
>> >> >    if (field =3D=3D "name") {
>> >> >       columns.add(new Column(field, data.getName()))
>> >> >    } else if (field =3D=3D "label") {
>> >> >      columns.add(new Column(field, data.getLabel()))
>> >> >    } else ...
>> >> > }
>> >> > (same for loading (instanciating) automagically the object).
>> >>
>> >> Yes, I am talking about this question.
>> >>
>> >> >
>> >> > Kind regards,
>> >> >
>> >> > Benoit.
>> >> >
>> >> > 2010/4/23 dir dir <sikerasakti@gmail.com>:
>> >> >>>So maybe it's weird to combine ORM and Cassandra, right? Is
=
> there
>> >> >>>anything we can take from ORM?
>> >> >>
>> >> >> Honestly I do not understand what is your question. It is clear
=
> that
>> >> >> you can not combine ORM such as Hibernate or iBATIS with =
> Cassandra.
>> >> >> Cassandra it self is not a RDBMS, so you will not map the table
=
> into
>> >> >> the object.
>> >> >>
>> >> >> Dir.
>> >>
>> >> Sorry, English is not my mother tongue.
>> >>
>> >> I do understand I cannot combine ORM with Cassandra, because they =
> are
>> >> totally different ways for building our data model. But I think =
> there
>> >> are still something can be learnt from ORM to make Cassandra easier =
> to
>> >> use, just as what ORM did to RDBMS before.
>> >>
>> >> IMHO, domain model is still intact when we design our software, =
> hence
>> >> we need another way to map them to Cassandra's entity model. =
> Relation
>> >> does not just go away in this case, hence we need another way to
>> >> express those relations and have a tool to set up Keyspace /
>> >> ColumnFamily automatically as what django's SYNCDB does.
>> >>
>> >> According to my limited experience with Cassandra, now, we do more
>> >> when we write, and less when we read/query. Hence I think the =
> problem
>> >> lies exactly in how we duplicate our data to do queries.
>> >>
>> >> Please correct me if I got these all wrong.
>> >>
>> >> >>
>> >> >> On Fri, Apr 23, 2010 at 12:12 PM, aXqd <axqd001@gmail.com>
=
> wrote:
>> >> >>>
>> >> >>> Hi, all:
>> >> >>>
>> >> >>> I know many people regard O/R Mapping as rubbish. However it
is
>> >> >>> undeniable that ORM is quite easy to use in most simple cases,
>> >> >>> Meanwhile Cassandra is well known as No-SQL solution, a.k.a.
>> >> >>> No-Relational solution.
>> >> >>> So maybe it's weird to combine ORM and Cassandra, right? Is
=
> there
>> >> >>> anything we can take from ORM?
>> >> >>> I just hate to write CRUD functions/Data layer for each object
=
> in even
>> >> >>> a disposable prototype program.
>> >> >>>
>> >> >>> Regards.
>> >> >>> -Tian
>> >> >>
>> >> >>
>> >> >
>> >
>> >
>> >
>> > --
>> > Virtually, Ned Wolpert
>> >
>> > "Settle thy studies, Faustus, and begin..."   --Marlowe
>> >
>>=20
>>=20
>>=20
>> --=20
>> Virtually, Ned Wolpert
>>=20
>> "Settle thy studies, Faustus, and begin..."   --Marlowe
>>=20
>

Mime
View raw message