Cassandra 2.1.3 で時系列アプリケーションのデータモデルを作成しています。システムのユーザーごとに X 量のデータを保存する予定ですが、この要件に合わせて設計するための最良のアプローチは何か疑問に思っています。
オプション1:
パーティション キーで「バケット」を使用して、X 期間のデータが同じ行に入るようにします。このようなもの:
((id, bucket), timestamp) -> data
このバケットの概念を維持することを犠牲にして、一度に 1 つの行を削除できます。また、クエリできる範囲も制限さtimestamp
れるため、複数のクエリが発生する可能性があります。
オプション 2:
すべてのデータを同じ行に格納します。N 個の削除は列ごとです。
(id, timestamp) -> data
範囲クエリも簡単です。しかし、多くの列を削除した後のパフォーマンスはどうでしょうか?
TTL を使用してデータを期限切れにすることを計画している場合、2 つのモデルのどちらが最高のパフォーマンスを発揮しますか? Option1 << Option2 の墓石のオーバーヘッドですか、それとも両方のモデルで列ごとに墓石がありますか?
墓石墓地に埋葬されるのを避けようとしている。