17

Hiveをデータベースとして使用してアプリケーションを開発しようとしていますが、それに代わるものとしてnoSQLソリューションも見つかりました。

Cassandraを使用して開発することにしました。次の問題は、どのクライアントを使用する必要があるかということです。どちらが優れているか、Hector-純粋なJavaソリューション、または開発のようなJPAを備えたKundera?

私はヘクターが好きですが、クンデラに興味があります。クンデラを使っている人はいますか?どちらが良いですか?


CQL(Cassandra Query Language)に興味があります。Hectorと統合できますか?

4

11 に答える 11

13

Hector は CQL 統合に向けてゆっくりと動いています。最初のステップは完了しましたが、API が不安定だったため、開発者は新しいリリースを延期したようです。CQL API はかなり新しいもので、SQL 構文とほぼ同等である必要があります。CRUD 操作を使用していくつかの基本的な手順を実行し、CQL を介してデータを読み書きできることを確認しました。

それにもかかわらず、CQL JAR は、現時点では標準の JDBC ドライバーのようにすぐに使用できるわけではなく、いくつかの重要な機能面が欠けています。多かれ少なかれ理解しにくいthrift APIとそれほど単純ではないhector APIを見てみると、CQLはバージョン0.8.1と1.0でCassandraの最先端のアクセスAPIとして確立されると確信しています。 、倹約はしばらくの間、ネイティブの生のアクセスのままです。

両方の API 間の競合は、Hector の決定とは何の関係もありません。Hector 自体は、クラスターでの障害や接続処理などの追加サービスを提供します。これらは、thrift でも CQL でも対処されていない機能です。

私は他のすべての O/R マッパーを本当に信じているわけではなく、本格的な JPA を提供すると主張している人たちでさえも信じていません。これがどのように機能するか想像できません。

于 2011-05-30T20:14:33.863 に答える
7

クライアントに関する質問への回答 - Hector は基本的に Cassandra ネイティブ API (列、列ファミリー、行など) へのアクセスを提供しますが、Kundera はこれらの詳細を隠してオブジェクト データベース マッピングを提供することを目的としています。

したがって、Kundera を使用すると、さまざまな Java オブジェクトを Cassandra に迅速に永続化することがおそらく容易になりますが、効率的なマッピングが提供されず、noSQL アプローチが提供するパフォーマンスの一部が失われる可能性があります。

Hector は、あなたが Cassandra データ モデルに適応することを期待しています。これは大変な作業ですが、パフォーマンスが向上する可能性があります。

于 2011-05-27T19:38:16.130 に答える
6

2012 年 1 月に Netflix からリリースされた新しいクライアントAstyanaxがあります。

「Astyanax は Java Cassandra クライアントです。Hector から多くの概念を借用していますが、接続プールの実装とクライアント API で分岐しています。主な設計上の考慮事項の 1 つは、接続プールと Cassandra API の間で明確な抽象化を提供することでした。 Astyanax は流暢なスタイルの API を提供し、呼び出し元がクエリをキーから列に絞り込むようにガイドするだけでなく、私たちが遭遇したより複雑なユース ケースのクエリを提供します. Hector に対する Astyanax の運用上の利点には、低レイテンシが含まれます、レイテンシの変動が減少し、エラー処理が改善されました。」

Astyanax のソース コードは Github でホストされています: https://github.com/Netflix/astyanax

于 2012-02-09T14:06:51.667 に答える
4

Cassandra および Hector で CQL を使用する方法の詳細については、 https ://github.com/rantav/hector/wiki/Using-CQL を参照してください。

次のメーリング リスト スレッドは、 CQLを API として使用する方向性についての良い議論です。

于 2011-06-14T18:07:26.373 に答える
4

完全を期すために、 Pelopsライブラリについても言及する必要があると思います。Hector が最も使用されているようですが、Pelops はより単純な API を備えています。Pelops は CQL をサポートしていません。

ただし、Ruby から来て、どちらも非常に冗長で命令的であることがわかりました。

于 2011-07-02T19:14:57.107 に答える
3

Kundera はインデックス作成のアプローチを Solandra に依存しなくなりました。これにより、Cassandra が提供するセカンダリ インデックス サポートを使用できるようになり、OPP を介して jpa クエリ (範囲クエリなど) を実行する方法も提供されます。ネイティブ CQL サポートの有効化に取り組んでいます。

見てみましょう: http://mevivs.wordpress.com/2012/02/13/how-to-crud-and-jpa-association-handling-using-kundera/

詳細については。

-Vivek

于 2012-02-20T06:08:45.370 に答える
2

hectorと同じレベルのJavaクライアントはありません。hectorが最適であり、cqlをサポートするためにhector側で進行中の作業があります。今月、githubでcqlがhectorにコミットするのを見ましたが、それが最終的な状態かどうかはわかりません。あなたはそれをヘクターユーザーグループhttp://groups.google.com/group/hector-usersに頼むことができます

また、hectorには非常に単純なオブジェクトマッパーがあり ますhttps://github.com/rantav/hector/wiki/Hector-Object-Mapper-%28HOM%29

私のベスト、

Serdar Irmak

于 2011-05-28T17:39:20.030 に答える
2

Kundera 2.0.4がリリースされました:

このリリースでの主な変更点:

  • クロスデータストアの永続性(nosqlを介して既存のmysqlアプリを簡単に移行できます)
  • リレーショナルデータベースのサポート(例:Mysqlなど)
  • solandraをluceneベースのインデックスに置き換えます。
  • 双方向アソシエーションのサポートが追加されました。
  • パフォーマンスの改善が修正されました。

テストしたところ、適切なインデックスが付けられた100万回の挿入が6分で行われました。

ヴィヴェック

于 2011-12-12T07:52:27.460 に答える
1

Astyanax API は人間が読めるコードを生成し、接続プーリングを含みます。

于 2012-05-03T18:40:05.150 に答える
1

私はまだ Hector を試していませんが、最新の Kundera 2.0.1 リリースに関わっています。試してみることをお勧めします。当初から大幅な変更が行われており、多くの新機能が追加され、バグが修正されていることがわかります。現在、JPA 1.0 と Cassandra 0.7.6 をサポートしていますが、近いうちに Cassandra 0.8 と JPA 2.0 のサポートを追加する予定です。ここにかなり良い例があります: https://github.com/impetus-opensource/Kundera/wiki/Getting-startedは、始めるのに役立つかもしれません。

于 2011-07-17T19:15:57.497 に答える
0

cassandra での CQL サポートは、kundera 2.0.6 (まだリリースされていません) に統合されました。CQL をネイティブクエリとして実行できるようになりました。

-Vivek

于 2012-03-29T12:42:07.210 に答える