Nen*_*zic 8 data-modeling cassandra
我需要在cassandra中为帐户(名字,姓氏,电子邮件作为用户名等)以及当前活动的令牌建模.
我最初的想法是创建account_by_email哪些将通过带有静态列的电子邮件分区的瘦行,并且通过access_token(可能是TTL)进行聚类,并且总是可以根据当前电子邮件找到访问令牌.
但是我们要求客户端仅在登录后发送,access_token并且基于它必须从DB中提取当前用户.
我可以创建一个表,其中电子邮件将被分区,access_token但是作为开销和许多分区的接口.然后我就可以收到电子邮件access_token并通过电子邮件获得用户.
任何更好的想法和方法,它接缝这是常见的用例但是当cassandra用作存储时我找不到任何建模细节?
我可以再创建一张表,其中电子邮件将按 access_token 进行分区,但这对我来说是开销和大量分区。
一个表有大量分区有什么问题?这绝对是正确的 Cassandra 做事方式:
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
);
Run Code Online (Sandbox Code Playgroud)
因此,您有一个单独的用户表,以及tokens以令牌作为分区键的表。使用此模型您可以:
tokens。current_token列设置 TTL 自动使令牌过期。