NoSQL (ターゲットは Cassandra) を使用して、Java Web アプリケーションで作業しています。Astyanax は現在のところ Cassandra の最適なクライアントであると考えられているため、Cassandra クライアントとして Astyanax を使用しています。Cassandra にアプローチして 2 週間が経ちましたが、多くのことが私にとって非常に奇妙です。
仕事中にいくつかの問題に遭遇しましたが、解決方法がわかりません。
Thrift API によって作成された列ファミリーのように、CQL から作成されたテーブルはありますか? 似ているように感じますが、裏には違いがあるのかもしれません。例えば:
- CQL コマンドで作成されたテーブルは、Thrift API からアクセスできません
- Thrift ベースの API は CQL によって作成されたテーブルでは機能しませんが、CQL メソッドは Thrift API によって作成された列ファミリーにアクセスできます!
テーブルの主キーは列ファミリーの行キーに対応していますか?
- CQL では、コレクション/セット/マップを内部に含むテーブルを宣言できます。Thrift API で同じことを行うことはできますか?
- アプリケーションで両方 (列ファミリーとテーブル) が必要な場合、どのように相互に対処できますか?
- 私は 1 つのことを認識しています: Thrift API を使用して、CQL によって作成されたテーブルのデータを操作することはできません。正しい API を使用してデータを処理できるように、どのテーブル/列ファミリがどの方法で作成されたかをどのように記憶できるのでしょうか? 当分の間、それらのうちの2つを処理するための一般的な方法はありませんね. 私の知る限り、Thrift API と CQL には同じインターフェイスがないため、相互に理解できない?!
これらのことを説明するのを手伝ってくれませんか? どうもありがとう。