によって選択:私は頻繁にレコードを更新していますカサンドラスキーマ - テーブルを考えると、頻繁に更新された列
CREATE TABLE T (
a int,
last_modification_time timestamp,
b int,
PRIMARY KEY (a)
);
を。各更新でlast_modification_time
はnow()
に設定され、他のフィールドも設定されます。
last_modification_time
の範囲でクエリできるようにするには、適切なキャッサンドラアプローチは何ですか?
select * from .. where a=Z and last_modification_time < X and last_modification_time > Y;
一つの方法は、作成することですPRIMARY KEY (a, last_modification_time)
でのマテリアライズド・ビューが、私はは、マテリアライズド・ビューをするので、これを回避したい3.Xのカサンドラのバージョンでバギーです:私はこのようなクエリを実行する必要があります。
last_modification_time
のクエリの代替方法は何ですか?last_modification_time
は頻繁に更新されますか?
あなたのスキーマが広い行になります...あなたができない場合データモデルを変更し、常にセカンダリインデックスを使用するパーティションキーを使用します... https://stackoverflow.com/questions/35719985/range-query-on-secondary-index-in-cassandra –
@undefined_variableあなたは「ワイド行」の意味ですか? –
あなたの最善の選択肢は、おそらくこのようなクエリモデルをサポートするためにPostgresを使用することです。 – Aaron