3

私はカサンドラが初めてです。Cassandra を使用するアプリケーションを作成する必要があります。今後あまり問題に直面しないように、どちらが自分に適しているかを知りたかったのです。アプリケーションにどの API を使用する必要がありますか。

4

2 に答える 2

6

Sunil、あなたは合理的な質問に取り組んでいます。問題をコーディングする前に質問したことはまったく適切だと思います。「これら 2 つのアプローチのどちらを選択するかを決定するために、これら 2 つのアプローチの長所と短所を探す必要がありますか?」のようなフレーズを使用すると、より広く受け入れられる聴衆にリーチできる可能性があります。

Hector クライアントは、Cassanda と通信するためのプログラム インターフェイスと、CQL ステートメントを解析する方法をサポートしているため、必ずしも Hector と CQL の間で選択する必要はありませんが、プログラムと CQL のどちらか、または 2 つの組み合わせのいずれかを選択する必要があります。Hector と Astyanax のどちらのクライアントを選択したとしても、同じ質問に直面する可能性があります。

CQL を選択する理由:

  • CQL は、リビジョンの保存、取得、比較が簡単です。
  • CQL は、特に DDL として読みやすく、レビューも簡単です。
  • CQL は、トラブルシューティングと監査の目的で簡単にログに記録できます。
  • RDBMS の歴史を持つ開発者は、より早く CQL に順応し、トレーニング時間を短縮したり、雇用する候補者のプールを増やしたりする可能性があります。
  • コミュニティ開発は、JDBC のような CQL の処理に向かう傾向にあります。

プログラマティックを選択する理由:

[修正]

私の知識の一部が古くなっているようです。jbellis のコメント ( Jonathan Ellis だと思います)基づくと、CQL は現在、倹約よりもパフォーマンスが高く、準備済みステートメントもサポートしています。CQLベースのアプローチに対する適切な議論に途方に暮れています。

于 2012-09-02T22:57:51.803 に答える
0

もう 1 つの完全に異なるオプションは playOrm で、制限なしで結合を行うことができます。playOrm を使用すると、以下のような「スケーラブルな JQL」を実行できます。データを分割する方法を決定するだけで済みます。

@NoSqlQuery(name="findJoinOnNullPartition", query="PARTITIONS t(:partId) select t FROM TABLE as t INNER JOIN t.security as s where s.securityType = :type and t.numShares = :shares")

于 2012-09-05T12:36:32.593 に答える