Frage

Ich versuche eine folgende Hierarchie zu erstellen:Benutzerkennung als Zeilenschlüssel, Stündliche Zeitreihen als Spalten und in jeder stündlichen Spalte möchte ich eine haben benutzerspezifische Informationen wie stündliche Aktivität.

{
   UserId:long
   {
      Timestamp:datetime{
         pageview: integer,
         clicks:integer
      }
   }

Ich habe gelesen, dass es möglich ist, es zu erreichen mit supercolumns aber gleichzeitig wurde erwähnt, dass supercolumns sind im Moment veraltet.Wenn es wahr ist, welche Alternativen kann ich verwenden?

Könnten Sie mir bitte ein CQL / Java-Sparsamkeitsbeispiel geben, wie ich eine solche Struktur in Cassandra erstellen und einfügen soll?

Danke!

War es hilfreich?

Lösung

Sie können dafür einen zusammengesetzten Primärschlüssel verwenden.Ich füge eine CQL-Abfrage zur Tabellenerstellung für die Tabelle hinzu.Und Sie können die Zählerspalte für Klicks verwenden.

CREATE TABLE user_click_by_hour(
userid long,
time_stamp timestamp,
clicks int,
pageview int,
PRIMARY KEY(userid,time_stamp)

)

Andere Tipps

Wenn Ihre Informationen einem bestimmten Zweck unterliegen, werden sie gemeinsam verwendet und abgerufen .Wenn Sie beispielsweise jederzeit sowohl Klicks als auch Seitenaufrufe benötigen, würde ich Ihnen empfehlen, diese als JSON-Speicher zu verwenden

CREATE TABLE user_click_by_hour(
userid long,
time_stamp timestamp,
val text,
PRIMARY KEY(userid,time_stamp)
)

val ist ein JSON-Objekt, das Klicks, Seitenaufrufe usw. enthält.

Vorteil

1.Sie müssen sich keine Gedanken darüber machen, die Tabelle zum Hinzufügen zusätzlicher Spalten zu ändern, wodurch für jeden vorherigen Eintrag ein Nullwert hinzugefügt wird

  1. Wenn diese Daten wachsen sollen, müssen Sie viel Platz sparen, da in jedem Knoten eine Spaltenmetadaten weniger vorhanden sind
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top