0

100 000 のソース/センサー/シンボルがあります。それぞれから、毎日値を読み取ります。

これらの毎日のデータ/値をデータベース テーブルにロードします。値 AND 記号ごとに 1 行、つまり 1 日あたり 100,000 行です。

クエリ 1:

すべてのシンボルについて毎日のデータを分析したいので、データベースを年、月、週、日で分割します。

クエリ 2:

しかし、シンボルごとに最大 24 か月前のデータを読み取ることで、各シンボルの経時的な傾向/統計も分析したいと考えています。

Query2 は別の次元 (時間軸) に沿っており、query1 用に最適化された複数のパーティション (y、m、w、d) に対してクエリを実行したくありません。

どんなデザインを提案しますか?

4

1 に答える 1

0

1 日あたり 10 万行は多すぎません。1 年間に 1 つのパーティションのみを作成します。ただし、単一のパーティションのみで作業してクエリのパフォーマンスを最適化したい場合は、月ごとにパーティション化すると仮定しましょう。

さらに、3 つのノード クラスタを想定してみましょう。したがって、おそらく 6 つのシャードを含むテーブルを作成すると、年間で合計 6*12 のシャードが得られます。1 つのレプリカ (6*12*2 シャード) が構成されている場合、これは見栄えがします。

where 句でパーティションを指定すると、crate はこれらのシャードのみを自動的に起動します。しかし、まだデータ全体が表示されています。

ところで: 時間によるパーティショニングへの便利なリンクは次のとおりです: https://crate.io/a/generated-columns-in-crate/

于 2016-04-14T21:22:42.720 に答える