You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Charles Mason <ch...@gmail.com> on 2009/01/16 13:13:31 UTC

Announcing OHM a new Client Interface Tool for HBase

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

Re: Announcing OHM a new Client Interface Tool for HBase

Posted by stack <st...@duboce.net>.
Charles Mason wrote:
>> P.P.S Perhaps remove the spaces in filenames and directories?
>>     
> Do you mean inside the zip file of the download?
>
> Charlie M
>   

Yes. I just haven't seen that much.  But my horizon is short so problem 
may be that I just need to travel more.
St.Ack

Re: Announcing OHM a new Client Interface Tool for HBase

Posted by Charles Mason <ch...@gmail.com>.
On Fri, Jan 16, 2009 at 6:03 PM, stack <st...@duboce.net> wrote:
> Thats excellent Charles.  Please be sure to add it to this page:
> http://wiki.apache.org/hadoop/SupportingProjects
> St.Ack

Thanks for the suggestion, I have added it to the supporting projects page.

> P.S. Misspelling of hadoop on ohm home page.
Thanks for spotting the typo, fixed it now.

> P.P.S Perhaps remove the spaces in filenames and directories?
Do you mean inside the zip file of the download?

Charlie M

Re: Announcing OHM a new Client Interface Tool for HBase

Posted by stack <st...@duboce.net>.
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
>