1

ただし、もう1つの状況があります。私の列ファミリーには、名前、給与、生年月日などの列を含む行があり、すべての列にインデックスが付けられています。dobで範囲ベースのインデックス検索を行いたいです。どうすればそれができるか教えていただければ幸いです。

4

1 に答える 1

0

astyanax から playOrm に移動して、

@NoSqlQuery(name="findByDate", query="PARTITIONS p(:partitionId) SELECT p FROM TABLE p where p.date > :date and p.date <= :data");

ただし、スケーリングする場合はパーティション分割できるスキーマが必要で、その単一のパーティションをクエリするだけです。顧客ごとに分割するものもあれば、時間ごとに分割するものもあります。スキーマを分割するには多くの方法があります。

または、本当に astyanax を使用したい場合、playOrm はバッチ範囲のクエリを実行し、毎回すべての列をバッチで取得します (メモリを使い果たすことはありません)。astyanax range builder をセットアップするためのコードは 326 行にあり、ビルダーを使用してクエリを作成するためのコードは 385 行にあります。

https://github.com/deanhiller/playorm/blob/8a4f3405631ad78e6822795633da8c59cb25bb29/input/javasrc/com/alvazan/orm/layer9z/spi/db/cassandra/Cas​​sandraSession.java

playOrm もバッチ処理を行っていることを認識してください。バッチ サイズも設定されていることがわかります。

後、ディーン

于 2012-09-14T19:51:40.663 に答える