2

最近、NoSQL (HBase) に慣れ始めました。私は間違いなく初心者です。

HBase で使用できる ORM と高レベルのクライアントについて調査していたところ、いくつか出くわしました。

Kundera などの一部の ORM ライブラリは、SQL のようなデータ クエリ機能を提供しています。これは少し直感に反するものだと思います。

全体の目的がそれから離れることだった場合、クエリのようなSQLが再び必要になる理由を理解するのに誰か助けてもらえますか?

また、HBase の ORM に関するあなたの経験について誰かコメントしてもらえますか? http://wiki.apache.org/hadoop/SupportingProjectsからそれらのいくつかを見て、Kundera を調べ始めました。

もう 1 つの関連する質問 - Kundera 実行マップを使用したデータ クエリは内部的にジョブを削減しますか?

4

2 に答える 2

4

kundera または Spring のデータは、NoSQL データベース上でユーザー フレンドリーな ORM レイヤーを提供する可能性がありますが、基礎となるエンティティ モデルは依然として NoSQL フレンドリーである必要があります。つまり、NoSQL ユーザーは RDBMS モデリング戦略にやみくもに従うべきではなく、すべての NoSQL 機能を使用できるように ORM エンティティを設計する必要があります。経験則として、kundera ORM エンティティは、主キーを作成するために最初にクエリを定義する必要があるクエリ ファースト戦略を使用して設計する必要があります。ランダムな列に対するクエリとフル スキャンは避ける必要があるため、複数のエンティティ ルックアップを減らすためにエンティティ間でデータを複製する必要がある場合があります。また、トランザクション管理を計画する必要があります。参考までに、kundera はトランザクションをサポートしていません (Hbase/Cassandra でサポートされている単一行の TX を超えて)。

于 2012-02-22T14:46:23.390 に答える
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 を提供するために、すぐに使用できる機能を備えていません。ただし、Kundera-2.0.6 では、Hive ネイティブ クエリのみのサポートを有効にすることで、そのようなサポートが提供されます。

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

SQL のようなクエリは、開発の容易さ、迅速な開発、エラーの発生を抑え、もちろん再利用性のためのものです!

-Vivek

于 2012-02-22T07:05:49.540 に答える