Modeling Konto für Ruhe Kommunikation cassandra

8

Ich muss Konto (Vorname, Nachname, E-Mail als Benutzername usw.) in Cassandra zusammen mit dem derzeit aktiven Token modellieren.

Meine ursprüngliche Idee war, account_by_email zu erstellen, die eine dünne Zeile per E-Mail mit statischen Spalten partitioniert und Clustering nach access_token (und vielleicht TTL) hat und dann Zugriffstoken basierend auf der aktuellen E-Mail finden kann.

Aber wir haben die Anforderung, dass Clients nach dem Login nur access_token senden und basierend darauf der aktuelle Benutzer aus der DB gezogen werden muss.

Ich kann eine weitere Tabelle erstellen, in der E-Mails durch access_token partitioniert werden, aber das scheint mir ein Overhead und viele Partitionen zu sein. Dann könnte ich E-Mail von access_token bekommen und Benutzer immer per E-Mail bekommen.

Irgendwelche besseren Ideen und Ansätze, es scheint, dass dies ein häufiger Anwendungsfall ist, aber ich kann keine Modellierungsdetails finden, wenn Cassandra als Speicher verwendet wird?

    
Nenad Bozic 03.06.2015, 16:42
quelle

1 Antwort

3
  

Ich kann eine weitere Tabelle erstellen, in der E-Mails durch access_token partitioniert werden, aber das scheint mir ein Overhead und viele Partitionen.

Was ist falsch mit einer großen Anzahl von Partitionen es eine Tabelle? Es ist definitiv eine korrekte Cassandra-Art, Dinge zu tun:

%Vor%

Sie haben also separate Tabellen für Benutzer und die Tabelle tokens , die Token als Partitionsschlüssel hat. Mit diesem Modell können Sie:

  • Setzen Sie ein neues Token für einen Benutzer, indem Sie users.current_token mit TTL aktualisieren und eine neue Tokenzeile in tokens table einfügen.
  • Benutzer-E-Mail nach Token abrufen, auch wenn das Token abgelaufen ist.
  • Erhalte das aktive Token des aktuellen Benutzers.
  • hat einen vollständigen Tokenverlauf für einen Benutzer (aber keine Möglichkeit, effektive Abfragen für diesen Informationstyp auszuführen, Sie können dafür Spark / SparkSQL / Hive verwenden).
  • verfallen Token automatisch, indem Sie TTL für eine einzelne current_token -Spalte setzen.
shutty 04.06.2015, 08:46
quelle

Tags und Links