私は巨大なデータを持つ3ノードdatastax cassandra(コミュニティ)クラスタを持っています。私はそれらに3-50億レコードを含むいくつかのテーブルを持っています。これらのテーブルから90日以上経過したデータを削除したいとします。Cassandraタイムアウトなしのクエリを選択
問題は、タイムアウトなしで実行される選択クエリを実行する方法です。私は現在、クエリの下に実行しています
NOW = $(日付-d "-3ヶ月" + "%Y-%M-%D")minute_tsは< '$今すぐ' LIMIT 100000が認めTABLE_NAMEから
選択day_tsフィルタリング;
私が選択したクエリの結果を制限しても、30〜50億レコード全体を解析してからデータをフィルタリングします。
これを効率的に行う方法を提案してください。
@ xmas79と合意して、あなたはholw dataserverをフィルタリングし、それを別のモデルに転送する必要があります。新しいモデルでTTL(Time to live)が正しく設定されていることを確認して、今後この問題が発生しないようにしてください。 –
ここに私のテーブル構造があります。 –
CREATE TABLE TABLE_NAME(ログIDのASC、ID ASC)とキャッシュ= '{"キー": "ALL"、 "rows_per_partition" : "NONE"} 'AND' = 'AND default_time_to_live = 0 AND gc_grace_seconds = 864000 AND read_repair_chance = 0.0 AND speculative_retry = '99 .0PERCENTILE'; –