2

次のようなカサンドラテーブル構造があります

create table demo (user_id text , comment_id text , timestamp timeuuid , PRIMARY KEY (user_id , comment_id , timestamp))

UI では、次のボタンをクリックすると、10 から 20、20 から 30 などの値を取得するようにページネーションが必要です。

カサンドラでクエリを開始できないことはわかっています

select * from demo limit 10,20 

したがって、次のようにクエリを作成すると

select * from demo where timestamp = 'sometimestampvalue' limit 10;

これにより、' sometimestampvalue' から次の 10 個の値までの 10 個の値が得られます。

次に、最後の行のタイムスタンプ値を変数 (X など) に格納し、次のクエリを次のように開始します。

select * from demo where timestamp = 'X' limit 10;

などなど、これでうまくいくでしょうか?または、テーブルの構造を変更する準備ができているので、カウンター列も追加する準備ができているので、基本的には任意の列に基づいてページネーションを行うことができるはずです。

4

2 に答える 2

1

この回答を参照してください: Cassandra Limit 10,20句

基本的に、アプリ コードで処理する必要があります。あなたの提案は、少し調整するだけでうまくいくようです。

于 2016-07-18T23:59:20.807 に答える
1

ページネーションは、フェッチ サイズを設定できるドライバーでより簡単に実行できます。たとえば、Java では次のようになります。

cluster.getConfiguration().getQueryOptions().setFetchSize(10);

DataStax Java Driver for Apache Cassandra、機能、ページングを参照してください

于 2016-07-20T00:34:52.973 に答える