hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pavel Lysov <pavli...@gmail.com>
Subject table design questions
Date Mon, 14 Jul 2008 16:16:28 GMT
Hi all,

I found that I can not stop thinking in RDBM way while designing  
tables for the application I am working on, so that I need your help.  
Can you please take a look at the tables below and advice what  
approach you think is doable and good enough?

There's should be USERS table I think, something simple for now:

USER_ID:
   profile:
     email
     first_name
     last_name

Then we need to store a huge list of user's orders, here's where I am  
starting to doubt. Can it have many orders in the same USERS table?  
Does HBase (bigtable) allow us to have schema like the following:
USER_ID:
   profile:
     first_name
     last_name
   orders:
     order_1:
       date
       details
       product
       price
     order_2:
       date
       details
       product
       price
			
If idea above is bad (I couldn't find API that creates nested column  
families and assume that is not possible), it probably could be  
another table for orders:
ORDER_ID:
   user:
     id
     first_name
     last_name
   order:
     date
     details
     product
     price
		
This way it will require additional work getting orders for certain  
user, so the third variant would have composite row key, composed of  
USER_ID and ORDER_ID:
USER_ID__ORDER_ID:
   order:
     date
     details
     product
     price
   profile:
     first_name
     last_name
		
The last table variant will be scanned using HScannerInterface, so  
it's relatively easy to get all orders for given user I think. How do  
you think is it fine to create such kind of composite row keys?

Here's where I am. What am I missing? Can you please share your  
thoughts on tables design, you would probably design them in other way?

Thank you!
Pavel





Mime
View raw message