1

ニュースレターのメーリング アプリのメールを Cassandra に保存しようとしています。

現在のスキーマは次のとおりです:

CREATE TABLE emails (
    email varchar,
    comment varchar,
    PRIMARY KEY (email));

追加された時間で並べ替えられた電子メールを取得する方法がわかりません(したがって、電子メールは異なるノードで並行して処理できます)。

4

2 に答える 2

1

cassandra の PlayOrm は、データを分割してスケーリングできる限り、そのようなことをカバーの下で行うことができます。パーティションにクエリを実行できます。order by はまだありませんが、代わりに where time > 0 を使用して 1970 エポック以降のすべてを取得し、時間インデックスを使用するように強制し、カーソルを逆順 (または順順順) にトラバースすることをお勧めします。

于 2013-02-26T13:53:49.460 に答える
0

Cassandra は、列コンパレータに基づいて書き込みを注文します。述語で任意の列を使用して結果を並べ替えることはできません。時間順に取得する場合は、タイムスタンプを列名 (または複合名の最初の要素) として挿入する必要があります。また、必要に応じて照会できる時間順のレコードを格納する 2 番目の CF を作成することもできます。残念ながら、CQL は RDBMS のようなクエリ機能の錯覚を与えますが、実際にはクエリ機能が関連付けられた列ストアのままです。私の提案は、CQL を回避する (代わりに Thrift ベースのクエリを使用する) か、その裏で何をしているのかを確実に理解することです。

于 2013-02-23T17:54:11.233 に答える