22

HBase の適切な Java ORM 実装は誰でも知っています。これはRubyにとって本当に素敵に見えます

http://www.stanford.edu/~sqs/rhino/doc/

しかし、Java用のものは見つかりませんでした。

ありがとう。

4

7 に答える 7

12

最近、Hbase 上の ORM である kundera-2.0.4 の新しいリリース。インデックス作成、クロスデータストアの永続化など、非常に便利な他の多くのものを提供します.

試してみることをお勧めし ます https://github.com/impetus-opensource/Kundera

実行可能な jar は次の場所にあります。

https://github.com/impetus-opensource/Kundera

于 2011-12-15T10:14:05.817 に答える
4

HBase の強みは、動的な列を静的な列ファミリーに保持することです。HBase を使用してアプリケーションを開発した経験から、セルの修飾子と値を決定するのは SQL ほど簡単ではないことがわかりました。

たとえば、アクセス パターン、著者の編集、アプリ レイヤー キャッシュの実装に応じて、著者と同じ数の本を本テーブルに保存することを選択する場合があります (つまり、著者は 2 つのテーブル、著者テーブル、および本テーブルに存在します)。 ) または著者 ID のみ。さらに、作成者のコレクションを XML/JSON として 1 つのセルに保存することも、個々の作成者の個別のセルに保存することもできます。

このことを理解した上で、Hibernate などの本格的な ORM を作成することは非常に難しいだけでなく、実際には決定的ではない可能性があると結論付けました。そこで私は、iBatis が Hibernate を行うのと同じように、別のアプローチを取りました。

それがどのように機能するかを説明してみましょう。このために、ここここのソース コードを使用します。

  1. 最初の最も重要なタスクは、ObjectRowConverter インターフェイス (この場合は SessionDataObjectConverter) を実装することです。抽象クラスは、HBase コミュニティで議論され、学んだ基本的なベスト プラクティスをカプセル化します。この拡張機能により、基本的に、オブジェクトを HBase 行に、またはその逆に変換する方法を 100% 制御できます。API からのこの唯一の制限は、ドメイン オブジェクトがインターフェース PersistentDTO を実装する必要があることです。これは、Put、Delete、do byte[] を id オブジェクトに、またはその逆を作成するために内部的に使用されます。
  2. 次のタスクは、HBaseImplModule で行ったように依存関係を接続することです。依存関係の注入を行いますので、興味があればお知らせください。

以上です。それらの使用方法については、こちらをご覧ください。基本的に、CommonReadDao、CommonWriteDao を使用して、HBase との間でデータを読み書きします。共通の read dao は、マルチスレッドの行からオブジェクトへの変換をクエリで実装し、マルチスレッドの ID による取得、ID による取得を実装し、Hibernate Criteria のような API を使用して Scan 経由で HBase にクエリを実行します (集計関数は使用できません)。Common write dao は、楽観的/悲観的ロック、セル オーバーライド/マージ チェック エンティティ (非) 保存、更新、削除などの存在を確認するなど、いくつかの追加機能を備えた一般的な書き込み関連コードを実装します。

この ORM は内部目的のために開発されたものであり、私は首をかしげていたため、まだいくつかのドキュメントを作成できません。しかし、もし興味があれば、私に知らせてください

于 2010-11-30T10:40:48.600 に答える
4

Hibernate OGM は、SQL データベース以外の優れたソリューションです。やってみて。

http://www.hibernate.org/subprojects/ogm.html

于 2012-06-07T05:54:05.683 に答える
3

datanucleus について: JPA または JDO を API として使用し、hbase をバックエンド ストアとして使用できます: http://www.datanucleus.org/plugins/store.hbase.html

于 2011-08-27T22:28:46.943 に答える
3

これを試すことができます: http://code.google.com/p/hbase-ormlite/。これは Java の HBase の orm です。

于 2012-07-13T07:01:25.623 に答える
2

ピギパヒーリーがありますが、私はそれらのどれも使用していません。IMO HBase は高速なキー/バリュー ストア エンジンですが、抽象化の別のレイヤーが必要な場合は、チェックアウトする必要があります。

于 2010-08-05T15:56:05.703 に答える
2

HBase ORM - Surus を使用してい ます https://github.com/mushkevych/surus/wiki

おそらく言及する価値がある

  • Hadoop map/reduce で多用しています
  • JSONストリームからHBaseデータに送り込むことができる追加のモジュールがあります(私たちの場合はPythonコードから来ています)
于 2011-10-28T19:09:47.080 に答える