You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by bujji <si...@gmail.com> on 2010/07/20 06:03:51 UTC

Data from multiple tables (Join Data)

Hi all,

I am new to Cassandra...

I want to use to cassandra for a billing system.

As I saw in many places that Joins won't work in BigTable implementation but
i feel i needed it for my App.

I am unable to get the data from multiple tables (columnFamilies) like
products and inventory

As I am trying to do some joins implementation but fails....

Can I do it without joins ?

Can anybody give me some good model to use for my application or any
standard example
please help me folks,

Thanks ,
Bujji

Re: Data from multiple tables (Join Data)

Posted by aaron morton <aa...@thelastpickle.com>.
I'm not sure what your overload concern is. You either need to make multiple requests or de-normalise so that your query can be resolved from one CF. There are no joins. 

Try it and see would be the best advice. You can always add more nodes to the cluster. 

Aaron



On 20 Jul 2010, at 19:19, bujji wrote:

> hi Aaron,
> 
> Thanks for your reply
> I can integrate some transaction mechanism with Cassandra so that i can do the transactions.
> 
> but is it possible to get data from more than one table without much overload and in an efficient way ?
> give me some good example if possible...
> 
> Thanks,
> Visu
> 
> 
> On Tue, Jul 20, 2010 at 10:45 AM, Aaron Morton <aa...@thelastpickle.com> wrote:
> Cassandra may not be the best fit for a billing system. I'm guessing the lack of transactions would be a problem if you want to update inventory levels.
> 
> If you want to get data from multiple column families you will need to make multiple calls, or de-normalise the data so you can get all the data you need from one column family for a single key. Such as storing the inventory data in the same column family as the product info. Perhaps using a Super Column Family with a super column for the ProductData, another for the Inventory etc. You could then read all the colums in the CF for one product and get all the data you want without doing a join.
> 
> In general do-normalise to remove the need for joins. Also be aware of the transaction guarantees you are giving up. 
> 
> Hope that helps. 
> Aaron
> 
> 
> On 20 Jul, 2010,at 04:03 PM, bujji <si...@gmail.com> wrote:
> 
>> Hi all,
>> 
>> I am new to Cassandra...
>> 
>> I want to use to cassandra for a billing system.
>> 
>> As I saw in many places that Joins won't work in BigTable implementation but i feel i needed it for my App.
>> 
>> I am unable to get the data from multiple tables (columnFamilies) like products and inventory
>> 
>> As I am trying to do some joins implementation but fails....
>> 
>> Can I do it without joins ?
>> 
>> Can anybody give me some good model to use for my application or any standard example 
>> please help me folks,
>> 
>> Thanks ,
>> Bujji
> 


Re: Data from multiple tables (Join Data)

Posted by bujji <si...@gmail.com>.
hi Aaron,

Thanks for your reply
I can integrate some transaction mechanism with Cassandra so that i can do
the transactions.

but is it possible to get data from more than one table without much
overload and in an efficient way ?
give me some good example if possible...

Thanks,
Visu


On Tue, Jul 20, 2010 at 10:45 AM, Aaron Morton <aa...@thelastpickle.com>wrote:

> Cassandra may not be the best fit for a billing system. I'm guessing the
> lack of transactions would be a problem if you want to update inventory
> levels.
>
> If you want to get data from multiple column families you will need to make
> multiple calls, or de-normalise the data so you can get all the data you
> need from one column family for a single key. Such as storing the inventory
> data in the same column family as the product info. Perhaps using a Super
> Column Family with a super column for the ProductData, another for the
> Inventory etc. You could then read all the colums in the CF for one product
> and get all the data you want without doing a join.
>
> In general do-normalise to remove the need for joins. Also be aware of the
> transaction guarantees you are giving up.
>
> Hope that helps.
> Aaron
>
>
> On 20 Jul, 2010,at 04:03 PM, bujji <si...@gmail.com> wrote:
>
> Hi all,
>
> I am new to Cassandra...
>
> I want to use to cassandra for a billing system.
>
> As I saw in many places that Joins won't work in BigTable implementation
> but i feel i needed it for my App.
>
> I am unable to get the data from multiple tables (columnFamilies) like
> products and inventory
>
> As I am trying to do some joins implementation but fails....
>
>  Can I do it without joins ?
>
> Can anybody give me some good model to use for my application or any
> standard example
> please help me folks,
>
> Thanks ,
> Bujji
>
>

Re: Data from multiple tables (Join Data)

Posted by Aaron Morton <aa...@thelastpickle.com>.
Cassandra may not be the best fit for a billing system. I'm guessing the lack of transactions would be a problem if you want to update inventory levels.

If you want to get data from multiple column families you will need to make multiple calls, or de-normalise the data so you can get all the data you need from one column family for a single key. Such as storing the inventory data in the same column family as the product info. Perhaps using a Super Column Family with a super column for the ProductData, another for the Inventory etc. You could then read all the colums in the CF for one product and get all the data you want without doing a join.

In general do-normalise to remove the need for joins. Also be aware of the transaction guarantees you are giving up.

Hope that helps.
Aaron

On 20 Jul, 2010,at 04:03 PM, bujji <si...@gmail.com> wrote:

> Hi all,
>
> I am new to Cassandra...
>
> I want to use to cassandra for a billing system.
>
> As I saw in many places that Joins won't work in BigTable implementation but i feel i needed it for my App.
>
> I am unable to get the data from multiple tables (columnFamilies) like products and inventory
>
> As I am trying to do some joins implementation but fails....
>
> Can I do it without joins ?
>
> Can anybody give me some good model to use for my application or any standard example 
> please help me folks,
>
> Thanks ,
> Bujji