Sachin Kulkarni
Sachin Kulkarni

Reputation: 1705

Java ORMs on NoSQL DB like HBase

I have recently started getting familiarized with NoSQL (HBase). I am definitely a noob.

I was investigating about ORMs and high level clients which can be used on HBase and came across a few.

Some ORM libraries like Kundera are providing SQL like data query functionality. I am finding this a little counter intuitive.

Can any one help me understand why we would again need SQL like querying if the whole objective was to move away from it?

Also can anyone comment on your experiences with ORMs for HBase? I looked at a few of them from http://wiki.apache.org/hadoop/SupportingProjects and started looking at Kundera.

Another related question - Does data query with Kundera run map reduce jobs internally?

Upvotes: 2

Views: 1048

Answers (2)

vivek mishra
vivek mishra

Reputation: 1162

Reason for using Kundera:

1) If looking for SQL like support over HBase. As it is build on top of HBase native API, so it simply transforms these SQL queries in to corresponding GET or PUT method calls. 2) Currently it support HBase-0.20.6 only. Kundera-2.0.6 will enable support for HBase 0-90.x versions. 3) Kundera does not do sometihng out of the box to provide map reduce over SQL like queries. However support for such thing will be provided in Kundera-2.0.6 by enabling support for Hive native queries only!

It is totally JPA compliant, so no need to learn something new. It simply hides complexity at developer level with very minimal effort.

SQL like querying is for developement ease, quick developement, less error prone and reusability ofcourse!

-Vivek

Upvotes: 3

indoos
indoos

Reputation: 179

kundera or Spring data might provide user friendly ORM layer over NoSQL databases, but the underlying entity model still has to be NoSQL friendly. This means that NoSQL users should not blindly follow RDBMS modeling strategies but design ORM entities in such a way so that all NoSQL capabilities can be used. As a thumb rule, the kundera ORM entities should be designed using query-first strategy where first the queries need to defined so as to create primary keys and also ensuring that relationship model is used as minimal as possible. Querying on random columns and full scans should be avoided and so data might have to be replicated across entities for reducing multiple entity look ups. Also, transactions management needs to be planned. FYI, kundera does not support transactions(beyond single row TX supported by Hbase/Cassandra).

Upvotes: 4

Related Questions