hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Spencer Gibb <spen...@livremed.com>
Subject Re: Google App Engine DataStore API on HBase in java
Date Sat, 07 Mar 2009 02:41:02 GMT
I got alot of information from this talk.

https://sites.google.com/site/io/under-the-covers-of-the-google-app-engine-datastore

On Fri, Mar 6, 2009 at 5:46 PM, Spencer Gibb <spencer@livremed.com> wrote:
> 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.
>
> --
> spencer@livremed.com
>
> 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
>

Mime
View raw message