1

Astyanax を使用して Cassandra で行を取得するにはどうすればよいですか?

サーバー側でページネーションを行う必要がある Web アプリケーションがあります。db は cassandra です。行キーは UUID であり、行内に列がほとんどないため、行キーでページネーションを実行しようとしています。

私は完全に満足していない解決策をまとめました。問題は、UI から取得した検索フィルターに基づいて最初の検索を行うときに、最初の行の UUID がわからないため、最初の 6 つのレコードを取得するクエリを準備し、そのキーを保存することです。 MAP の 6 番目のレコードをセッションに入れるため、ユーザーが UI から 2 ページ目を要求すると、このキー (UUID) を取得し、次の一連のレコードを取得するための開始として使用します。私はよりクリーンなアプローチを見つけようとしていました。

4

1 に答える 1

3

EDIT in response to question changes...

In that case, sounds like you are doing it just fine. Also sounds like you are using OOP then as otherwise the rows are not in order. While playOrm's solution is more elegant returning you a cursor that you store in the session, I think what you have is just fine.

EDIT since our code changed line 74 in this link is how we do it(you can drill down into that cursor class basically to see what we do).

https://github.com/deanhiller/playorm/blob/master/src/main/java/com/alvazan/orm/layer9z/spi/db/cassandra/CassandraSession.java

which if you have 10 row keys you just pass in the list of keys.

I am not sure what you mean by pagination???? Are you saying you have a from and to row key and want the rows between them? Are you using order the cluster by row key then?

Another completely different direction to go for ordering is playOrm though which can do S-SQL and if things are partitioned, you can do joins and other such(that link above is to one of the files in playOrm actually).

I am really not sure what you mean "you don't have the row key with you"

later, Dean

于 2012-09-10T01:55:27.563 に答える