私はcassandraの初心者です。私はcassandraの初心者ですが、私は "sort"に問題があります。
私のテーブルには、それそれのような、非常に簡単です:
CREATE TABLE test.user_daily_report (
stringdate bigint,
m_date date,
users int,
PRIMARY KEY (stringdate, m_date)
) WITH CLUSTERING ORDER BY (m_date DESC)
AND read_repair_chance = 0.0
AND dclocal_read_repair_chance = 0.1
AND gc_grace_seconds = 864000
AND bloom_filter_fp_chance = 0.01
AND caching = { 'keys' : 'ALL', 'rows_per_partition' : 'NONE' }
AND comment = ''
AND compaction = { 'class' : 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold' : 32, 'min_threshold' : 4 }
AND compression = { 'chunk_length_in_kb' : 64, 'class' : 'org.apache.cassandra.io.compress.LZ4Compressor' }
AND default_time_to_live = 0
AND speculative_retry = '99PERCENTILE'
AND min_index_interval = 128
AND max_index_interval = 2048
AND crc_check_chance = 1.0;
しかし、結果はソートのいずれかの効果を持っていない:私はm_dateで注文しようとすると
私はこれを満たします号:
私を助けてください、それは私がたくさん混乱させる。パーティションキー(あなたの例ではstringdate
)にWHERE
条件を指定する場合、すなわち、select * from table where stringdate = 'something' order by m_date desc
- - この場合にはデータがに関連する唯一のパーティション内部カサンドラORDER BY
作品に
おかげで、従来のリレーショナル・データベースとは対照的に
解決策は機能しません。 stringdateは一意のプライマリキーではないため、複合キーなので、フィルタリングが必要です。私はそれを試してエラーを得る。 私の仕事については、チャートをプロットするためにquerryデータが必要です。 UIから、私はstart_dateとend_date(例えば、2017-12-06)でバックエンドへのリクエストを投稿しています。そして、私はuser_daily_reportテーブルのuser(users)数をm_dateに従わせる必要があります。 m_dateで昇順/降順にソートする必要があります。私はすでに[start_date、end_date]の範囲内のすべてのレコードを選択しています。しかし、私はそれらを注文することはできません。助けてください –
申し訳ありませんが、私は少し質問を誤解しましたが、とにかく - 私の答えは正しい - あなたの状況では、データの並べ替えを実行することができますカサンドラは、実際には、すでに指定された注文です) –
親愛なるアレックス、私は私のデータベースにあなたのクエリを試みました。そしてそれはうまくいかなかった。それは補強を可能にする必要がある。私の仕事については、私は2つの主要なフィールド、日付とユーザーがあります。私は2つの異なる日付の間にリストのユーザーを取得する必要があります。そして、私はクエリresulが日付順にソートされたかった。それは私が必要とするものです。 Pls help me –