On Tue, Jun 23, 2009 at 12:13 AM, Ian Holsman<[email protected]> wrote: > any chance of using hypertable's or hbase's query language as a base? > > http://code.google.com/p/hypertable/wiki/HQLTutorial > http://wiki.apache.org/hadoop/Hbase/HbaseShell. > > both of these are column-oriented DB's which would have similar semantics to > ours.
HQL is just a simple wrapper around the existing APIs. So you can only search by key or ranges of keys, as well as constrain by timestamp. There's no indexing going on at all. > I want to avoid yet another query language which is specific to a tool from > creeping up if possible. I agree. Perhaps Google App Engine's GQL language is a better template: http://code.google.com/appengine/docs/python/datastore/gqlreference.html GQL relies on indexes being created for seachable columns, most of which must be predefined by the user. However, GQL works with the App Engine's high-level object database abstraction, which deals with "data models" (similar to classes) that are instantiated as "entities" (ie., instances). Objects can reference each other to form graphs, and the high-level database layer takes care of the details of loading and saving objects. In my opinion a generic query/indexing system in Cassandra should work with Cassandra's elementary key/column/value model rather than invent an "entity" model on top of it. Such a high-level abstraction can be implemented on top of the query/indexing system in the client's native language. A.
