Thats excellent Charles. Please be sure to add it to this page: http://wiki.apache.org/hadoop/SupportingProjects
St.Ack

P.S. Misspelling of hadoop on ohm home page.
P.P.S Perhaps remove the spaces in filenames and directories?


Charles Mason wrote:
Hi All,

I wanted to let everyone know about a new tool I have created for
HBase. I mentioned it on this list a few months back, we have now
released the first version. My company are going to be using HBase in
an upcoming project and in the process we built an interface tool for
HBase. We have dicided to open source it under the Apache 2.0 license
in the hope it will be useful to others.

OHM stands for the Object HBase Mapper. Its basically a lightweight
weakly relational ORM for HBase. The developer sets out the structure
of their DB tables in one or more OHM Spec files. These have straight
forward C like syntax which describes the tables, column families and
column data types.

These OHM Spec files are fed into the OHM Compiler which then
generates a Syntax Tree and from that it generates code in the
programing language of choice. At present we only have code generation
support for CSharp, although we will need to implement Java for this
project as well, so Java support should be added soon.

Its relatively simple to add support for other languages. The compiler
is written in Java and each language generator simply walks the Syntax
Tree creating useful bean like objects which are then added to a
Velocity context and exposed to the Velocity template, which generates
the code. We have used the Thrift API for interacting with HBase in
the CSharp generated code.

We have just launched a site for the project at the address below. The
site also contains some tutorials which show the basics of using OHM
and provide a good way to get a feel for that it does. We also have a
public Git repo so people can track the project easily.

http://belowdeck.kissintelligentsystems.com/ohm

Currently OHM provides the below features:

        * Efficient CRUD operations on rows and their columns.

        * Type conversion in to the languages native
          types e.g. float, int, string.

        * Indexing of additional Column Family Fields.

        * Scanners to access multiple rows.


I would really like to get everyone thoughts and feedback. We would of
course welcome any code contributions if anyone is interested.

Charlie M

Reply via email to