3

Cassandra でデータのバージョンを追跡する必要があります。バージョン # はスーパー列、エンティティ ID は行 ID、追跡する必要がある列は列になると考えていました。たとえば、エンティティのバージョン 1 は次のようになります。

  • スーパーコラム: v1
  • 行 ID: UUID
  • 列: タイムスタンプ、リクエスト ID、ユーザー ID、状態、データなど...

クエリを実行する場合、最も一般的なリクエストは次のとおりです。

  • レコード y のバージョン X を教えてください
  • レコード y のバージョン X - 1 と X + 1 を教えてください。

それほど重要ではありませんが、次のようなクエリがあります。

  • 状態 1 のすべての行を教えてください。
  • ユーザー ID x によって変更されたすべてのレコードを教えてください。
  • タイムスタンプが x と y の間にあるすべての行を教えてください。

スーパーカラムを使用した上記のアプローチが最善のアプローチであるか、または上記を達成するためのより良いスキーマがありますか。スーパーカラムの使用/クエリに関する注意事項はありますか?

4

1 に答える 1

4

まず、スーパーカラムを使用しないでください。それらは事実上非推奨であり、多くの欠点があります。モデルでは、複合キーを 2 つのコンポーネント (1 つ目は UUID、2 つ目はバージョン) で使用することにより、スーパーカラムを複合キーに簡単に置き換えることができます。すべてのクエリがこのモデルでサポートされます。 コンポジットの詳細については、こちらをご覧ください

于 2012-07-26T01:40:23.673 に答える