Return-Path: Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: (qmail 6770 invoked from network); 13 Apr 2011 15:24:47 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 13 Apr 2011 15:24:47 -0000 Received: (qmail 59810 invoked by uid 500); 13 Apr 2011 15:24:45 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 59783 invoked by uid 500); 13 Apr 2011 15:24:45 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 59774 invoked by uid 99); 13 Apr 2011 15:24:45 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 13 Apr 2011 15:24:45 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of victor.kabdebon@gmail.com designates 209.85.161.44 as permitted sender) Received: from [209.85.161.44] (HELO mail-fx0-f44.google.com) (209.85.161.44) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 13 Apr 2011 15:24:39 +0000 Received: by fxm15 with SMTP id 15so611089fxm.31 for ; Wed, 13 Apr 2011 08:24:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-type; bh=vDxlJ/h2nyU0xDx6Gvoze+HXuUAFRNNvhoLaGEt6sSY=; b=akF67w93htc957qyJ7PeJCKa7CZ53tl361Hx9eErYqKIEV6K5arHqHJK9OT5EHDlRO gbHZqfO9BtTGKX4Bqgy+mocQwZVN5ArcXr382NvN9s4hakHB14ktOz6bjlNGEL2mUcwv pPoQR0CNIk0Bn/1B2fgHy9OQHpfwGgOUheDzQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; b=Zj0Dlq89KKPBGTGkaMzn16yBYJOKlFKRviwqxkIBaLMlsEid3mXECTlDtDGv57Jfw7 VRSIiL3ch8wb+3uwHdWeHrRl6HluU/Xxi0OFh75mY4f6Jqclh3m9ZN2U4aaEAKCSz3ro Egep20xJqkNYg6I32i1ZXOYv41OuNJMF65Z3U= Received: by 10.223.87.218 with SMTP id x26mr2642593fal.133.1302708258095; Wed, 13 Apr 2011 08:24:18 -0700 (PDT) MIME-Version: 1.0 Received: by 10.223.121.137 with HTTP; Wed, 13 Apr 2011 08:23:58 -0700 (PDT) In-Reply-To: References: From: Victor Kabdebon Date: Wed, 13 Apr 2011 11:23:58 -0400 Message-ID: Subject: Re: database design To: user@cassandra.apache.org Content-Type: multipart/alternative; boundary=00151747bdd0f8444a04a0ce6636 --00151747bdd0f8444a04a0ce6636 Content-Type: text/plain; charset=ISO-8859-1 Dear Jean-Yves, You can have a different approach of the problem. You need on one side a relational database (MySQL, PostGreSQL) or SolR (as an very efficient index) and on the other side Cassandra. The relational database or SolR must contain the minimum amount of information possible : a date and only the relevant data. It enabled me to keep a simple model for Cassandra. Cassandra will act as a "vault" where you keep all the data and then you dispatch the data from Cassandra to the relational database or SolR. When you want to query you query against SolR or the relational data the key / column / supercolumn and you retrieve the complete data from Cassandra. The hard thing is to maintain the coherence between the query part and the Cassandra part. I speak from personal experience but it was very hard for me to use only Cassandra to do everything my (small amateur) website needed. Now I found an alternative I use : Cassandra (data vault) + Redis (Sessions and other volatile data) + SolR (Search engine) + PostGreSQL ( for relational queries). Best regards, Victor Kabdebon http://www.voxnucleus.fr 2011/4/13 Edward Capriolo > On Wed, Apr 13, 2011 at 10:39 AM, Jean-Yves LEBLEU > wrote: > > Hi all, > > > > Just some thoughts and question I have about cassandra data modeling. > > > > If I understand well, cassandra is better on writing than on reading. > > So you have to think about your queries to design cassandra schema. We > > are doing incremental design, and already have our system in > > production and we have to develop new queries. > > How do you usualy do when you have new queries, do you write a > > specific job to update data in the database to match the new query you > > are writing ? > > > > Thanks for your help. > > > > Jean-Yves > > > > Good point, Generally you will need to write some type of range > scanning/map reduce application to process and back fill your data. > --00151747bdd0f8444a04a0ce6636 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Dear Jean-Yves,

You can have a different approach of the problem.You need on one side a relational database (MySQL, PostGreSQL) or SolR (as= an very efficient index) and on the other side Cassandra. The relational d= atabase or SolR must contain the minimum amount of information possible : a= date and only the relevant data. It enabled me to keep a simple model for = Cassandra.
Cassandra will act as a "vault" where you keep all the data and t= hen you dispatch the data from Cassandra to the relational database or SolR= . When you want to query you query against SolR or the relational data the = key / column / supercolumn and you retrieve the complete data from Cassandr= a. The hard thing is to maintain the coherence between the query part and t= he Cassandra part.
I speak from personal experience but it was very hard for me to use only Ca= ssandra to do everything my (small amateur) website needed. Now I found an = alternative I use : Cassandra (data vault) + Redis (Sessions and other vola= tile data) + SolR (Search engine) + PostGreSQL ( for relational queries).
Best regards,
Victor Kabdebon
http://www.voxnucleus.fr

2011/4/13 = Edward Capriolo <edlinuxguru@gmail.com>
On Wed, Apr 13, 2011 at= 10:39 AM, Jean-Yves LEBLEU <jlebleu@gmail.com> wrote:
> Hi all,
>
> Just some thoughts and question I have about cassandra data modeling.<= br> >
> If I understand well, cassandra is better on writing than on reading.<= br> > So you have to think about your queries to design cassandra schema. We=
> are doing incremental design, and already have our system in
> production and we have to develop new queries.
> How do you usualy do when you have new queries, do you write a
> specific job to update data in the database to match the new query you=
> are writing ?
>
> Thanks for your help.
>
> Jean-Yves
>

Good point, Generally you will need to write some type of range=
scanning/map reduce application to process and back fill your data.

--00151747bdd0f8444a04a0ce6636--