ニュースレターのメーリング アプリのメールを Cassandra に保存しようとしています。
現在のスキーマは次のとおりです:
CREATE TABLE emails (
email varchar,
comment varchar,
PRIMARY KEY (email));
追加された時間で並べ替えられた電子メールを取得する方法がわかりません(したがって、電子メールは異なるノードで並行して処理できます)。
cassandra の PlayOrm は、データを分割してスケーリングできる限り、そのようなことをカバーの下で行うことができます。パーティションにクエリを実行できます。order by はまだありませんが、代わりに where time > 0 を使用して 1970 エポック以降のすべてを取得し、時間インデックスを使用するように強制し、カーソルを逆順 (または順順順) にトラバースすることをお勧めします。
Cassandra は、列コンパレータに基づいて書き込みを注文します。述語で任意の列を使用して結果を並べ替えることはできません。時間順に取得する場合は、タイムスタンプを列名 (または複合名の最初の要素) として挿入する必要があります。また、必要に応じて照会できる時間順のレコードを格納する 2 番目の CF を作成することもできます。残念ながら、CQL は RDBMS のようなクエリ機能の錯覚を与えますが、実際にはクエリ機能が関連付けられた列ストアのままです。私の提案は、CQL を回避する (代わりに Thrift ベースのクエリを使用する) か、その裏で何をしているのかを確実に理解することです。