時系列データをカサンドラに毎日保存しています。2 日以上経過したデータを毎日アーカイブ/パージしたいと考えています。Hector API を使用してデータを保存しています。データが 2 日以上経過している cassandra データを毎日削除する方法を教えてもらえますか? データを削除する日数は構成可能であるため、cassandra 行に TTL アプローチを使用することは現実的ではありません。現在、テーブルにタイムスタンプ列はありません。タイムスタンプ列を追加する予定です。しかし問題は、この新しい列は主キーの一部ではないため、timestamp だけを where 句で使用できないことです。ご提案をお願いします。
1885 次
3 に答える
0
TTL アプローチの使用を妨げているものはわかりません。
TTL は、スキーマを定義するときだけでなく、datastax cassandra ドライバーを使用してテーブルにデータを保存するときにも使用できます。
したがって、実際には、Java コードで構成された行ごとに個別の TTL を持つことができます。
また、Chris が既に述べたように、TTL はこれに内部タイムスタンプを使用します。
于 2016-01-28T18:19:58.277 に答える
0
あなたの説明に厳密に基づいて、唯一の解決策はそのtimestamp
列を追加し、それにセカンダリインデックスを追加することだと思います。
ただし、これは、データ モデルが状況に適応するには程遠いことを示す大きな指標です。
私の最初のコメントを強調します。
あなたのモデルは他のものに適応/設計されていますか? これは、Cassandra の時系列データのようには見えないためです。タイムスタンプのような列は、クラスタリング キーの一部である必要があります。
于 2016-01-28T22:56:14.883 に答える