In an interview with InfoQ[1] the hbase project leads said: "...an implementation of the Google App Engine DataStore API that went against HBase and that parsed GQL, etc., is a contribution we wouldn't say no to."
I've been looking at doing a project using hbase (it seems the closest to bigtable I can find). I've also done some work on google appengine and really like their datastore. I've looked at some of the ORM'ish things linked from the wiki but found none of them came close to datastore. With that said, I've started implementing the Google App Engine DataStore API in java. You can find the source here: http://code.google.com/p/datastore/source/browse/ It is rough at this point. Current capabilities: - get/put/delete Model objects. - query for all of one kind of Model - parse simple gql (SELECT * FROM Person LIMIT 20, 100) Future capabilities: - be as close as possible (within java's limits) to the datasore api [2] - be compatible with index.yaml [3] - have different implementations (such as hypertable) Differences: Python's dynamic nature means there will be differences with a java api. Here are some of them. -overriding static methods python: Person.all() java: Datastore.all(Person.class) -keyword arguments python: s = Story(title="The Three Little Pigs") java: Store s = new Story(); s.setTitle("...") python: Story.get_by_id(123, parent=parentStory) java: Datastore.getById(parentStory, 123); -dynamic properties python: name = db.StringProperty(required=True) java: @StringProperty(required=true) String name; And probably more I can't think of right now. Anyway, browse the code, let me know what you think. -- [email protected] References: [1] http://www.infoq.com/news/2008/04/hbase-interview [2] http://code.google.com/appengine/docs/python/datastore/ [3] http://code.google.com/appengine/docs/python/datastore/queriesandindexes.html#Defining_Indexes_With_index_yaml
