2013-04-18 5 views
16

私はCassandraで新しいプロジェクトを開始しています(最新の安定版(1.2.x)を使用する予定です)。私はHector,Astyanax、カザンドラjdbcのようないくつかの異なるJavaライブラリを試しました...新しいCassandraプロジェクト - AstyanaxまたはJava Driver?

私の選択はAstyanaxです。しかし、私はまた、新しいCQLバイナリプロトコルをサポートするDataStaxのJava Driverを見つけて試しました.CQLだけを使用しているなら、はるかにクリーンです。そして、バージョン1.0.0のGAが間もなくリリースされるようです。

どちらをお勧めしますか?ありがとう。

+2

1サンプル(/更新/削除を読む/作成)!素晴らしいapi! –

答えて

19

私はcql3ベースのドライバをお勧めします。いくつかの選択肢は、JDBC driver、さらには非同期接続をサポートするDatastax's driverです。 datastaxのドライバを自分で構築しなければならないかもしれませんが、これはmavenを使って簡単に行うことができます。上述したように、

スリフトは、そのが後方比較して、新しいプロジェクトのためのCQLベースのドライバを使用するには、ほとんどのC *コミュニティメンバーのアドバイスのために保存され、カサンドラに任意の新機能を取得する予定がありません私たちは、Cris3は、古典的なAPIよりもCassandraにとってよりシンプルで全体的に優れたAPIだと考えています。 source

またCQLのパフォーマンスは非常に迅速に良くなっている - は、したがって、新しいプロジェクト/アプリケーションがCQL3

を使用することをお勧めします。

<dependency> 
    <groupId>com.datastax.cassandra</groupId> 
    <artifactId>cassandra-driver-parent</artifactId> 
    <version>1.0.0</version> 
</dependency> 
9

私が個人的に使用している:ここで答えはmaven central repositoryはMavenのためにそれだけで依存関係を追加使用するので、今のドライバ用に作成された書かれていたので、いくつかの時代遅れのbenchmarks.
UPDATE

ですHector、Astyanax、Pelops、Fluent Cassandra、Datastax's Driver、Pycassaなど、多くのAPIを使用した結果、私はAstyanaxが私に最も適していることを認識しました。

リーグで他人からそれを区別私はアステュアナクスで見つかった機能が

  • レイテンシ
  • ドキュメントをプール

    • APIの使いやす
    • 複合列のサポート
    • 接続されています
  • +8

    Hectorとdatastaxのドライバは複合カラムをサポートしています(他のカラムについてはわかりません)、CQLはAstyanaxよりも使いやすくなっています。また、それは退屈ですので、CQL3を新しいプロジェクトに使用する必要があります。 –

    +2

    よく私は仲間を知っている、実際には私の配慮はアクセスの容易さにあった。はい、CQLはいつもより簡単なオプションで、よく知られている事実(RDBMSバックグラウンド)であり、Astyanaxユーザーの最大パーセンテージでもAPIからCQLステートメントを使用することが保証されます。 – abhi

    +9

    +1 Astyanaxの場合。 CQLは簡単ではありません。つまり、単純に実行されないクエリを作成してトラブルに遭遇することができます。これは、リレーショナルデータベースのようになり、nosqlストアのセマンティクスを実際に理解することを強制しません。 –

    6

    私はAstyanaxを使用しました。 CQLよりも5倍のコードを書いても問題がなければ、文書化されて使いやすいです。

    私はCQLを使用しています。なぜなら、彼らはAstyanaxコードを完全に理解していないので、なぜ列名用のクラスを書く必要があるのか​​ということです。 AstyanaxやHectorを使わないと、カサンドラの内部を正しく理解できないと思います。

    4

    新しいDataStax Java DriverとCassandra 1.2は、間もなく開始する新しいプロジェクトに間違いなく必要です。運転手はGAに向かいました。運転手とCassandra 1.2の両方が、あなたの新しいプロジェクトを開発していくうちに、今後数ヶ月にわたって安定します。

    1

    私はZanson/Valchkouに同意します。 DataStax Java Driverは未来です。 CassandraをSQLで操作するのは非常に便利です。一方、DataStax Java Driverという単純なラッパーのCassandraExecutorもお勧めします。 Javaドライバと比較して、CassandraExecutorは、以下の機能があります:SQL /エンティティと(同期/非同期)操作(CRUD)のための

    • 一貫性/統合/簡潔なAPIを。個別のサポート
    • DataSet、/マージ/ソート/ GROUPBY /参加/組合/ unionAll /除く/交差/のpaginate /フィルタリング/回数/ toJOSN/toXML/toCVS ...ここ

    があり、単純なCRUD

    Account account = createAccount(); 
    // create 
    String sql_insert = NE.insert(ID, GUI, FIRST_NAME, LAST_NAME, LAST_UPDATE_TIME, CREATE_TIME).into(Account.class).sql(); 
    cassandraExecutor.execute(sql_insert, account); 
    
    // read 
    String sql_selectByGUI = NE.select(ID, GUI, FIRST_NAME, LAST_NAME).from(Account._).where(L.eq(ID, L.QME)).sql(); 
    Account dbAccount = cassandraExecutor.queryForEntity(Account.class, sql_selectByGUI, account); 
    
    // update 
    String sql_updateByLastName = NE.update(Account.class).set(FIRST_NAME).where(L.eq(ID, L.QME)).sql(); 
    
    dbAccount.setFirstName("newFirstName"); 
    cassandraExecutor.execute(sql_updateByLastName, dbAccount); 
    
    // delete 
    String sql_deleteByFirstName = NE.deleteFrom(Account.class).where(L.eq(ID, L.QME)).sql(); 
    cassandraExecutor.execute(sql_deleteByFirstName, dbAccount); 
    

    (宣言:私はCassandraExecutorの開発者です)アステュアナクスため

    関連する問題