Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id AC11910815 for ; Thu, 27 Jun 2013 03:41:21 +0000 (UTC) Received: (qmail 38546 invoked by uid 500); 27 Jun 2013 03:41:19 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 38241 invoked by uid 500); 27 Jun 2013 03:41:13 -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 38231 invoked by uid 99); 27 Jun 2013 03:41:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Jun 2013 03:41:12 +0000 X-ASF-Spam-Status: No, hits=4.9 required=5.0 tests=HTML_MESSAGE,RCVD_IN_PSBL,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of arthur.zubarev@aol.com designates 64.12.237.10 as permitted sender) Received: from [64.12.237.10] (HELO oms-ma03.r1000.mx.aol.com) (64.12.237.10) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Jun 2013 03:41:07 +0000 Received: from mtaout-mb02.r1000.mx.aol.com (mtaout-mb02.r1000.mx.aol.com [172.29.41.66]) by oms-ma03.r1000.mx.aol.com (AOL Outbound OMS Interface) with ESMTP id 16935380000E4; Wed, 26 Jun 2013 23:40:46 -0400 (EDT) Received: from [192.168.0.90] (CPE185933f3db5c-CM185933f3db59.cpe.net.cable.rogers.com [99.238.22.30]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mtaout-mb02.r1000.mx.aol.com (MUA/Third Party Client Interface) with ESMTPSA id 4DEFBE0000A2; Wed, 26 Jun 2013 23:40:45 -0400 (EDT) Message-ID: <51CBB43C.7080402@aol.com> Date: Wed, 26 Jun 2013 23:40:44 -0400 From: Arthur Zubarev Reply-To: arthur.zubarev@aol.com User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130623 Thunderbird/17.0.7 MIME-Version: 1.0 To: Tony Anecito CC: Robert Coli , Users-Cassandra Subject: Re: Creating an "Index" column... References: <1372264767.85242.YahooMailNeo@web121805.mail.ne1.yahoo.com> <1372267240.54860.YahooMailNeo@web121806.mail.ne1.yahoo.com> <1372269336.582.YahooMailNeo@web121805.mail.ne1.yahoo.com> <0A14ED78871B49B3B3805B67FE99142E@vig.local> <1372281703.13985.YahooMailNeo@web121805.mail.ne1.yahoo.com> In-Reply-To: <1372281703.13985.YahooMailNeo@web121805.mail.ne1.yahoo.com> Content-Type: multipart/alternative; boundary="------------030101000600000109040003" x-aol-global-disposition: S DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mx.aol.com; s=20121107; t=1372304446; bh=1LPfoLPi/ULRO+mnbMC3NF7s0+nqOTxKimzhHmatJBs=; h=From:To:Subject:Message-ID:Date:MIME-Version:Content-Type; b=sINHMfwcPQGk6EuWCKAYb4O0jh6dOzSIl5RsPiqDOc5fz4Rcuq/+Ik3XQnTj2KBAx 97+rnQxrkrVh5XGzAp+Q24SX5wZLNP3VRPuheE1TmsJrdCsJaaslTPfhfSChdnWTcq yg2M/tSkwzEu7mCNmwgXgHkznrH0AsPcGoPV5qRk= X-AOL-SCOLL-SCORE: 0:2:510909024:93952408 X-AOL-SCOLL-URL_COUNT: 0 X-AOL-REROUTE: YES x-aol-sid: 3039ac1d294251cbb43d3643 X-AOL-IP: 99.238.22.30 X-Virus-Checked: Checked by ClamAV on apache.org X-Old-Spam-Flag: YES This is a multi-part message in MIME format. --------------030101000600000109040003 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Appreciate your thoughts Tony, in our DW there are composite keys, 500K of them say per customer to produce a report for which the client program needs to page through the entire set collecting data as it pages through yet to probably another desktop db. At this point the purpose of having a NoSQL has been defeated. On 06/26/2013 05:21 PM, Tony Anecito wrote: > Thanks Arthur. > > Interesting you think NoSQL does not fit into large volumes of data, > That is what it is touted to do. > I have heard PK's are needed but remember that is what the "key" > column is for I thought and composite key support is there also. > > The only issue I see is the all that duplicate data and a need to keep > it in sync. So for example if the movie title "Superman" changed to > "Superman the Man of Steel" you have to go change all those duplicate > values. An easy problem to solve but the data modeler has to get past > that. lol > > Acid transactions is the other but I think then the supplier of info > has to think about that one. > > I have response times in my RDMS of several hundred microseconds which > is the really important requirement for me to keep that the same or > better. > > Just some thoughts on the matter. > -Tony > > ------------------------------------------------------------------------ > *From:* Arthur Zubarev > *To:* Tony Anecito ; Robert Coli > ; Users-Cassandra > *Sent:* Wednesday, June 26, 2013 3:08 PM > *Subject:* Re: Creating an "Index" column... > > Tony hi, > Yes, in some scenarios (e.g. a DW), e.g. absence of proper PKs or > indexes (just too hard to envision, you need to think of future > queries 1st) getting thru large volumes of data makes NoSQL IMHO hard > to fit in. > But you have other choices: > 1) pagination or > 2) slice queries. > Both of that is covered here: > http://pkghosh.wordpress.com/2012/03/04/cassandra-range-query-made-simple/ > Hope that helps. > /Arthur > *From:* Tony Anecito > *Sent:* Wednesday, June 26, 2013 1:55 PM > *To:* Robert Coli ; Users-Cassandra > > *Subject:* Re: Creating an "Index" column... > Hi Robert, > > Actually that is what I did. I did that in my RDMS data model. In > Cassandra or NOSQL without join or nested selects I have to do two > queries. Also, since batching is not supported on the server side > which makes the performance worse. > > I just started learning Cassandra but I am learning fast and there are > some challenges when moving to a new data model driven by these factors. > > Regards, > -Tony > > ------------------------------------------------------------------------ > *From:* Robert Coli > *To:* user@cassandra.apache.org; Tony Anecito > *Sent:* Wednesday, June 26, 2013 11:32 AM > *Subject:* Re: Creating an "Index" column... > > On Wed, Jun 26, 2013 at 10:20 AM, Tony Anecito > wrote: > > Never mind I figured it out. I found it via a search for Secondary > indexes. > > In general unless you actually need atomic update of the row and its > secondary index, you are probably better off creating your own pseudo > secondary index column family. > > =Rob > > > > -- Regards, Arthur --------------030101000600000109040003 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit
Appreciate your thoughts Tony,

in our DW there are composite keys, 500K of them say per customer to produce a report for which the client program needs to page through the entire set collecting data as it pages through yet to probably another desktop db.

At this point the purpose of having a NoSQL has been defeated.

On 06/26/2013 05:21 PM, Tony Anecito wrote:
Thanks Arthur.

Interesting you think NoSQL does not fit into large volumes of data, That is what it is touted to do.
I have heard PK's are needed but remember that is what the "key" column is for I thought and composite key support is there also.

The only issue I see is the all that duplicate data and a need to keep it in sync. So for example if the movie title "Superman" changed to "Superman the Man of Steel" you have to go change all those duplicate values. An easy problem to solve but the data modeler has to get past that. lol

Acid transactions is the other but I think then the supplier of info has to think about that one.

I have response times in my RDMS of several hundred microseconds which is the really important requirement for me to keep that the same or better.

Just some thoughts on the matter.
-Tony


From: Arthur Zubarev <Arthur.Zubarev@Aol.com>
To: Tony Anecito <adanecito@yahoo.com>; Robert Coli <rcoli@eventbrite.com>; Users-Cassandra <user@cassandra.apache.org>
Sent: Wednesday, June 26, 2013 3:08 PM
Subject: Re: Creating an "Index" column...

Tony hi,
 
Yes, in some scenarios (e.g. a DW), e.g. absence of proper PKs or indexes (just too hard to envision, you need to think of future queries 1st) getting thru large volumes of data makes NoSQL IMHO hard to fit in.
 
But you have other choices:
 
1) pagination or
2) slice queries.
 
Both of that is covered here:
 
 
Hope that helps.
 
/Arthur
 
Sent: Wednesday, June 26, 2013 1:55 PM
Subject: Re: Creating an "Index" column...
 
Hi Robert,

Actually that is what I did. I did that in my RDMS data model. In Cassandra or NOSQL without join or nested selects I have to do two queries. Also, since batching is not supported on the server side which makes the performance worse.

I just started learning Cassandra but I am learning fast and there are some challenges when moving to a new data model driven by these factors.

Regards,
-Tony

 

From: Robert Coli <rcoli@eventbrite.com>
To: user@cassandra.apache.org; Tony Anecito <adanecito@yahoo.com>
Sent: Wednesday, June 26, 2013 11:32 AM
Subject: Re: Creating an "Index" column...

On Wed, Jun 26, 2013 at 10:20 AM, Tony Anecito <adanecito@yahoo.com> wrote:
> Never mind I figured it out. I found it via a search for Secondary indexes.

In general unless you actually need atomic update of the row and its
secondary index, you are probably better off creating your own pseudo
secondary index column family.

=Rob






-- 

Regards,

Arthur
--------------030101000600000109040003--