tutorial para modelo mac historia descargar datos crear consultas comandos capacidades cassandra data-modeling

modelo - Cuenta de modelado para comunicación de descanso cassandra



historia de cassandra db (1)

Puedo crear una tabla más donde el correo electrónico será particionado por access_token, pero eso me parece una sobrecarga y muchas particiones.

¿Qué pasa con una gran cantidad de particiones en una tabla? Definitivamente es una forma correcta de hacer las cosas en Casandra:

create table users ( email text primary key, first_name text, last_name text, current_token text ); create table tokens ( auth_token text primary key, valid_until timestamp, email text );

Por lo tanto, tiene tablas separadas para los usuarios y la tabla de tokens que tiene token como clave de partición. Con este modelo puedes:

  • establecer un nuevo token para un usuario actualizando users.current_token con TTL e insertando una nueva fila de tokens tabla de tokens .
  • obtener el correo electrónico del usuario por token, incluso si el token ha caducado.
  • obtener el token activo del usuario actual
  • tener un historial completo de tokens para un usuario (pero no hay manera de ejecutar consultas efectivas para ese tipo de información, puedes usar Spark / SparkSQL / Hive para eso).
  • expiran automáticamente los tokens configurando TTL para una sola columna current_token .

Necesito modelar la cuenta (nombre, apellido, correo electrónico como nombre de usuario, etc.) en cassandra junto con el token actualmente activo.

Mi idea inicial fue crear account_by_email que tendrá una fila flaca dividida por correo electrónico con columnas estáticas y tendrá clustering por access_token (y quizás TTL) y que siempre podrá encontrar el token de acceso basado en el correo electrónico actual.

Pero tenemos un requisito que los clientes envíen después de iniciar sesión solo access_token y, en base a él, el usuario actual debe extraerse de DB.

Puedo crear una tabla más donde el correo electrónico será particionado por access_token pero eso me parece una sobrecarga y muchas particiones. Luego podría obtener el correo electrónico de access_token y obtener el usuario por correo electrónico siempre.

¿Alguna idea y enfoque mejores, ve que este es un caso de uso común pero no puedo encontrar ningún detalle de modelado cuando cassandra se usa como almacenamiento?