複合パーティションキーが提供できる利点を理解しようとしています。下の有名な気象観測所の例を見てください。表温度( 状態テキスト、 都市テキスト、 EVENT_TIMEのタイムスタンプ、 温度テキスト、 PRIMARY KEY((状態、都市)、EVENT_TIME) )を作成複合列のPartitionKeyがCassandraでどのように機能するか
。
今、ほとんどの時間は、一連の都市と日付の範囲で1つの単一の状態にクエリします。したがって、クエリは
SELECT * FROM temperature WHERE state = 'NY' AND city IN ('mahattan', 'brooklyn','queens') AND event_time > '2016-01-01'
のようになります。私はいくつかの州(#< 1000)を持っていますが、各状態のために、私は多くの多くの都市(#> 100M)を持っているという意味で、大規模なデータセットを持っていると仮定すると
。私はデータを複製し、それらを異なるノードに配布します。
質問:あなたは
PRIMARY KEY (**(state, city)**,event_time)
PRIMARY KEY (**(city, state)**,event_time)
PRIMARY KEY (state, city,event_time)
PRIMARY KEY (zipcode, event_time)
を使用しての違いはありがとうござい比較することができます!
PRIMARY KEY((state、city)、event_time)vs PRIMARY KEY(zipcode、event_time)どちらが良いですか?郵便番号は都市ごとにユニークであると仮定します。 2つの州があり、それぞれに3つの都市があるとすれば、合計で6つの郵便番号があるとします。だから私はより高い#パーティションを好むべきですか? – acai
ほとんどの場合、パーティションはもっとたくさんありますが、郵便番号は都市と同等の量のイベントを持つ可能性が高いと思います(郵便番号は私が考えるポップに基づいて正規化されているはずです) – RussS