カサンドラに保存したい測定時系列データを生成する数千ものセンサーがあります。 現在、1日に5億件のレコードを保存していますが、次回は5〜10倍になります。Cassandraの時系列データ、1つのキースペースではなく月単位のキースペース?
ほとんどの場合、最新の測定データを使用しています。古い測定データはほとんど読み取られません。私たちは、主に(すなわち、1週齢)最新の測定結果から読み取る
- 、(月未満の年齢を持つすなわち、)
- 古い測定はまれにしか(10回読まれていません、)週
- 非常に古い測定(すなわち、非常にまれつまり、読んだことがない、6カ月以上前
- 測定が寒くなると想定されている、(月1回)読まれていない)1-6ヶ月の年齢を持ちます。
コンパクション戦略として、DTCSを使用します。 ttlの設定は、アーカイブ目的で測定データを保存する必要があるため、オプションではありません。
「古いデータはほとんど寒い」という事実にどう対処するかはまだわかりません。
アップデート:私は避けたい何 :すべてであれば18TBは、年に一度だけ、のは言わせて、使用されている私のカサンドラクラスタ、20 TBを持ちます。私は必要ではない18TBの支払いをしたくありません。 ttlの設定はオプションではありません。2013年3月などのデータを読み込めるようにする必要があります(このようなリクエストの追加費用は問題ありません)。 ttlを6ヵ月などに設定した場合、適切に設定することはできません。
我々は現在、2つの設計案を評価し、最もコスト効率を探しています:同じと月あたりのパーティションキー(sensor_id、measurement_date)と
- 一つの鍵空間、
- 一つの鍵空間、パーティションキー(sensor_id、measurement_date)
(両方のケースでは、我々は100Kよりも、主に以下の行あたり最大500Kの列、であります)
2の欠点は、<が1ではなく100のキースペースを持ち、データを読み込む際の複雑さが増すことです。 2の利点は、毎月スナップショット/バックアップ/削除/リストアができるということです。オプション1を使用すると、私の理解では簡単にはできません。この方法では、サイズを変更する必要はありません実際に寒いテラバイトのデータを保持するカッサンドラのクラスターです。
私の質問: 私たちのユースケースには合理的な選択肢か、これはカッサンドラの反パターンと考えられますか?
ありがとうございました!
> 1日あたりセンサーあたり最大500kの測定値があります。どのような種類の圧縮を使用するのだろうか。合計500mil/1センサーあたり500k = 1000 - これは現時点では1000個のセンサーに過ぎません。センサーごとに10個のメトリックを仮定します。したがって、各シリーズを圧縮できる場合は、キーに大きな名前空間は必要ありません。このデジタルデータ(0/1)かアナログかは、どんな種類の分散が見られるかです。あなたは正確な値(bigdecimal)を保つ必要がありますか? –