Hi,
BigTable is a NoSQL DB without join feature that you know in SQL.
So you manage relations manually and do join by issuing several request instead a single one and you join within your application context.
Basically you do more computation in your app than in the DB in this case.
But the DB is more versatile and less contrained which is a big advantage sometimes.
Generally, you don't create normalized models in DB such as BigTable because you can't join.
So you tend to denormalize your models (create join table) and use redundancy.
In GAE, a great feature is the entity grouping where you can associate a child to a parent by its key but it has its limitations also.
One thing to know is that, in the same transaction, you can target entities only in the same group of entities.
One other thing to know is that when you fetch multiple entities in a row, the maximum returned number of entities is 1000 but you can manage it with offsets or better with cursors (look at GAE docs).
There are a lot of other features but begin with that ;)
regards
Pascal
PS: I'm lead developer of siena project providing a simple mapping layer for NoSQL/SQL (
http://www.sienaproject.com)
Hi,
I'm pretty new to this GAE platffrom and the Google BigTable. Ive been
trying to search for tutorial (with example) on this subject but found
nothing to get me started (found handful of Python examples but my app
is to be written in Java). There are f in ew good examples which I have
tried and its working perfectly on GAE. As I come from RDBMS
background so im totally clueless on how "relationship" between tables
work as Google BigTable stores data differently. I also read
Programming Google App Engine book the example shown is not in-depth.
here is my scenario: If I have table department and employee, a
typical query will be select d.deptName, e.employee name, ... from
department d, employee e WHERE.... as far as my reading, this is not
supported in GQL. another thing, how do I do the data modelling? do I
need to use the mappedBy annotation? Any help will be appreciated.