私は、ソフトウェアの特定のポイントに、大規模なテーブルから情報を取得したいプライマリキーのリストを持っています。これを行うの。これは私のテーブル構造とするCassandra CQLはプライマリキーのリストからさまざまな行を取得します
:
CREATE TABLE table_a(
name text,
date datetime,
key int,
information1 text,
information2 text,
PRIMARY KEY ((name, date), key)
)
は、私は主キーのリストを持っていると言う:私が説明しましょう
list = [['Jack', '2015-01-01 00:00:00', 1],
['Jack', '2015-01-01 00:00:00', 2],
['Richard', '2015-02-14 00:00:00', 5],
['David', '2015-01-01 00:00:00', 9],
...
['Last', '2014-08-13 00:00:00', 12]]
このリストは巨大な(数十万の)であると言うとありませんいかなる方法でも注文されます。リストのすべてのキーについて、information
列の値を取得したいとします。
今のところ、この問題を解決する方法は、各キーの選択クエリを実行することです。これまでは十分でした。しかし、キーのリストが大きすぎると実行時間が心配です。キーごとに1つのクエリを実行せずに主キーを知っている行のリストに対してcassandraを照会するより現実的な方法はありますか?
キーが1つのフィールドだった場合は、select * from table where key in (1,2,6,3,2,4,8)
の構文を使用して1つのクエリで必要なすべてのキーを取得できますが、複合プライマリキーではこれを行う方法はわかりません。
ケース上のライトはご了承ください。
こんにちはアダム、提案ありがとう!私は実際にこれを考えていましたが、問題を解決しましたが、テーブルの主キー列を変更することはできません。すべてのデータをダンプしないで新しいテーブルを作成し、新しい構造に再度ダンプする必要はありません。また、新しい構造に準拠するために、このテーブルと対話するすべてのコードを変更する必要があります。私は本当にありがとう、助けていただきありがとうございます。 –