これは私がテーブルを作成するために使用されるクエリは次のとおりです。Cassandra CQLを使用してこのテーブルの最後の50行を取得するにはどうすればよいですか?
CREATE TABLE test.comments (msguuid timeuuid, page text, userid text, username text, msg text, timestamp int, PRIMARY KEY (msguuid));
は私が降順にタイムスタンプでソートされた最後の50行を取得したいです。私のような何かしようとした場合
:私は、クエリは可能な限り迅速になりたい、私はフィルタリングを許可し使用することを希望されない
Error from server: code=2200 [Invalid query] message="Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING"
:SELECT * FROM test.comments WHERE page = 'test' AND timestamp < 1496468332
を、私はこのエラーを取得します。
私はここに別のstackoverflow質問Cassandra cql: how to select the LAST n rows from a tableを見て、解決策を試してみた:
CREATE TABLE test.comments (msguuid timeuuid, page text, userid text, username text, msg text, timestamp int, PRIMARY KEY (msguuid)) WITH CLUSTERING ORDER BY (msguuid DESC);
しかし、その後、私はこのエラーを取得する:InvalidRequest: Error from server: code=2200 [Invalid query] message="Only clustering key columns can be defined in CLUSTERING ORDER directive"
私はカサンドラに新たなんだので、この場合は私を許して明らかな答えがある。私はちょうどそれを働かせるように見えない。
誰でも私を助けることができたら大変感謝します。代わりに、インデックスを使用しての
ページはインデックスフィールドですか? –
はい、ページはインデックスに登録されています –
どのcassandraバージョンを使用していますか? –