如何使用cassandra和ignite对数据进行建模?

irtuqstp  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(397)

我正在研究如何将cassandra和ignite结合起来对数据进行建模。到目前为止,cassandra中数据建模的基本建议(来自本文)是明确的:“围绕您的查询建模数据”。作者给出了一个“用户查找”的例子。我们希望通过用户名或电子邮件查找用户,根据他的说法,最好的方法是有两个表:

CREATE TABLE users_by_username (
    username text PRIMARY KEY,
    email text,
    age int
)

CREATE TABLE users_by_email (
    email text PRIMARY KEY,
    username text,
    age int
)

然而,事情变得混乱与点燃Cassandra的顶部。不幸的是,我找不到任何有用的例子或以下问题的答案:
有多个存储用户信息的表是否意味着每个表都有ignite缓存?
拥有复合主键是否意味着为每个键引入新类型并将其用作ignite缓存键?
拥有ignite意味着没有来自cassandra的直接读取。按照nosql的最佳实践来建模数据是否会让人感到麻烦呢?如果只有一个用户表,让ignite通过用户名或电子邮件处理查询,可以吗。

CREATE TABLE users (
    id uuid PRIMARY KEY,
    username text,
    email text,
    age int
)
xiozqbni

xiozqbni1#

每个cassandra表应该有一个缓存。
如果你原来的钥匙是复合的,那么点火钥匙应该是复合的。
您将需要在ignite中使用辅助索引来按多个字段进行查询,这意味着您必须在ignite中保存所有数据(这对于纯缓存场景来说不是必需的)。这意味着启用 readThrough 以及 writeThrough ,正在做 loadCache 总是通过ignite进行所有更新。您必须在“ignite as cache for cassandra”(坚持cassandra的数据布局,可以保存部分数据)和“ignite as db backed by cassandra”(您可以对ignite、二级索引使用最佳布局)之间进行选择。

相关问题