0

Cassandra ではデータを並べ替えることができないため、データを取得するときに「後入れ先出し形式」でデータを取得する必要があるような形式でデータを保存したかったのです。つまり、データを取得するときにユーザーがコメントを入力した場合は、最初にデータを取得する必要があります。最新のコメントが最初に表示され、次に古いコメントが表示されます。コンパレータと関係があると思います。

Cassandra を構成するときに次のように設定しました。

assume posts comparator as utf8;
assume posts validator as utf8;
assume posts keys as utf8;

助けてください-最新のデータが最初に保存されるように、データを時間形式で配置する列をどのように作成すればよいですか?

4

2 に答える 2

2

行内の列は常に並べ替えられ、行内の列を逆順に繰り返すことができます。これら 2 つの事実を考えると、行キーが投稿 ID であり、列が対応する投稿へのコメントを表す「コメント」と呼ばれる列ファミリーにコメントを格納することにより、説明している状況をモデル化できます。列はタイムスタンプ (ISO 形式の日付、UNIX タイムスタンプ、または時刻 UUID) で、値はコメント テキスト本文です。

行の列を取得し、それらを逆の順序で指定すると、必要なものが得られます。逆順を指定する方法はドライバーによって異なりますが、通常は、行または列スライスを取得するコマンドの単なるオプションです。

よりハックな別の方法は、投稿の UNIX タイムスタンプを取得し、2^31 などの大きな整数からそれを減算し、それを列キーとして使用することです。そうすれば、列はデフォルトで逆順でソートされます。それはきれいではなく、上記の方法はよりエレガントです。

2 つのコメントがまったく同時に投稿される衝突が発生する可能性があるため、タイムスタンプの使用が心配な場合は、Cassandra の時間 UUID タイプを使用してください。

于 2012-04-23T13:26:13.587 に答える
0

コンパレータがタイムスタンプになるようにデータを整理する必要があります。データを自然な順序で保存し、スライス クエリで逆順を指定します。

于 2012-04-21T14:31:35.230 に答える