2013-06-10 6 views
8

私はカサンドラ1.2.3を使用していますが、私は10から20にレコードをしたい場合は、私が「リミット10,20」を実行することはできませんリミット10カサンドラリミット10,20節

で選択クエリを実行することができます。

以下のクエリでエラーが表示されます。

select * from page_view_counts limit 10,20 

これはどのように達成できますか?

おかげ ニキル

答えて

10

あなたはCQLで、このようなスキップを行うことはできません。開始場所を指定してページングを行う必要があります。

select * from page_view_counts where field >= 'x' limit 10; 

xから始まる次の10個の要素を取得します。

私はこの回答の完全な例:Cassandra pagination: How to use get_slice to query a Cassandra 1.2 database from Python using the cql libraryを書きました。

+0

ありがとう..それは試してみる。 – user1058797

+0

結果の特定のページに行く方法はありますか?私はページ区切りにlimit句を使いたい。あなたのアプローチを使って、私は結果(限度40,10)の5ページに直接行くことはできません。ページ1、ページ2、ページ3、ページ4、ページ5の順に行かなければなりません。 – user1058797

+0

ジャンプすることはできますが、オフセットではなくページの最初の列を保存する必要があります。 – Richard

0

の場合は、最初にデータモデルを計画して、要件に応じてレコードを取得する必要があります。 どのような例で作業しているのかわかりますか? とhectorクライアントなどを使用していますか?複合キーとしてYYYYMMDDHH形式の行キーとして 使用時間スパン、その店の列名に:

+0

私はphpcassaを使用してフロントエンドのPHPクライアントを持っています。私はページデータ形式でログデータを表示したい。 – user1058797

0

ごめんチームメイトは、私はそれが私はこのようなデータモデルを計画することをお勧めすることができますヘクタークライアント& Javaを使用しますが、あなたの条件を見ていましたUTF8TypeとTimeUUID(例えばC1 + timeUUID)で構成されています。 注:ここでは最初のコンポジットキーはカウンター列ファミリの列名(C1など) これで、限定されたレコードのみがCFに格納され、このc1カウンタが20になります。キーC2 + timeUUIDを挿入するように今すぐuはカウンター列ファミリーc2を20レコードまで増やす

レコードをフェッチするには、C1、C2などの値を渡す必要があります.2013061116 のように、あなたはこれをプログラムで実装しなくてはなりません。