私は、プロジェクトのDBソリューションとしてcassandraを検討するためにパフォーマンスベンチマークを取っています。私はプライマリキーとしていくつかの列を持つ28列のテーブルを作成しました。where句でプライマリ以外のキー列を使ってcassandraクエリを実行する方法
私は約250以上の何百万ものレコードのデータを持つテーブルを読み込みました。
where句の主キー列を使用してクエリを実行したとき、結果は非常に良好でした。 5つのスレッドでクエリを並列化すると、2.5分で100万件近くのクエリを処理できました。
ただし、where句でプライマリ以外のキー列を使用してクエリを実行しようとすると、1000回のクエリで約2時間かかりました。
私は、プライマリキーを持っていないことが大きな欠点であることを知っていましたが、それでもなお、私たちはそのような状況をどこかに持っているかもしれません。
2次インデックスを使用できるかどうかを確認しようとしましたが、1つの列のみに制限されているようです。
インデックスタイプのクラスが必要なため、カスタムインデックスの正しい例が見つかりませんでした。
プライマリキーのすべての列を使用した場合、少なくとも5%は役に立ちますか?
where句の主キー列がないクエリの状況がさらに増えると、cassandraは本当に良い解決策ですか?
誰かがこの状況に確実に直面している可能性があることを強く信じています。誰でも自分の経験を共有できれば幸いです。
正確な列ファミリのスキーマとクエリを更新することはできますか? –
こんにちはJaya、私はテーブルの作成に追加のパラメータがありません。これは通常のテーブルで、28のうちの2つの列が主キーとして、1つの他の列が順序付けに使用されます。すべての列+ PRIMARY KEY(( "col1"、 "col6")、 "col10")を持つテーブルの作成と同じです。 – Srini