2012-02-22 10 views
2

私は最近、NoSQL(HBase)に慣れ始めました。私は間違いなくノブです。HBaseのようなNoSQL DB上のJava ORM

私はHBaseで使用できるORMと高水準のクライアントについて調査していましたが、いくつかのことがありました。

KunderaのようないくつかのORMライブラリは、SQLのようなデータクエリ機能を提供しています。私はこれをちょっと直感的なものにしています。

目的全体がそれから離れようとしていたのであれば、質問をするようにSQLが再び必要な理由を理解するのに役立つ人はいますか?

また、HBaseのORMに関するご意見はありますか?私はhttp://wiki.apache.org/hadoop/SupportingProjectsからそれらのいくつかを見て、Kunderaを見始めた。

関連するもう1つの質問 - Kunderaのマップを使ってデータクエリを実行すると、内部的にジョブが削減されますか?

答えて

4

クンデラやSpringのデータは、NoSQLのデータベース上でユーザーフレンドリーなORM層を提供するかもしれないが、基礎となるエンティティモデルはまだNoSQLの友好的である必要があります。つまり、NoSQLユーザーは、RDBMSモデリング戦略に盲目的に従うのではなく、ORMエンティティを設計してNoSQLのすべての機能を使用できるようにする必要があります。 kundera ORMエンティティは、最初に主キーを作成するようにクエリを定義する必要があるクエリファースト戦略を使用して設計し、リレーションシップモデルを可能な限り最小限にするように設計する必要があります。ランダムな列とフルスキャンのクエリは避ける必要があります。したがって、複数のエンティティの検索を減らすために、エンティティ間でデータを複製する必要があります。また、取引管理を計画する必要があります。 FYI、kunderaはトランザクションをサポートしていません(Hbase/Cassandraでサポートされている単一行TXを超えて)。

3

クンデラを使用する理由:

1)のHBaseを超えるサポートのようなSQLを探している場合。これはHBaseネイティブAPIの上に構築されるため、これらのSQLクエリを対応するGETまたはPUTメソッド呼び出しに変換するだけです。 2)現在はHBase-0.20.6のみをサポートしています。 Kundera-2.0.6では、HBase 0-90.xバージョンのサポートが有効になります。 3)Kunderaは、SQLのようなクエリに対してmap reduceを提供するために、箱から離れていません。しかし、Hiveネイティブクエリのみのサポートを有効にすることによって、Kundera-2.0.6でそのようなことのサポートが提供されます!

これは完全にJPAに準拠しているので、何か新しいことを学ぶ必要はありません。最小限の労力で開発者レベルで複雑さを隠すだけです。

SQLのようなクエリーは、開発の容易さ、迅速な開発、エラーの発生が少なく、再利用性が向上します。

-Vivek

+0

返信いただきありがとうございます。 2.0.6をいつリリースする予定ですか? HBase 0.9を使用しています。 –

+0

2.0.6をリリースしました。ダウンロードが可能です:https://github.com/impetus-opensource/Kundera –

関連する問題