Bea*_*ker 2 data-modeling cassandra
我是 Cassandra 的新手,我一直在尽可能地阅读和尝试。
我遇到过文档说如果你愿意,你可以为每个查询创建 1 个表。因此,如果我有一个“客户”记录,其中包含需要查询的 4 个不同字段,那么我可以创建 4 个不同的表来执行此操作。
然后我遇到了一个称为“批处理”的功能,它似乎说如果我将它们放入批处理中,我可以事务性地进行 4 次更新。
但是我在文档中找不到任何明确的内容将所有部分整合在一起并说“您应该为每个查询创建 1 个表,并且您应该使用 Batch 来保持所有这些查询表同步。这是最佳实践.”
这是最佳做法吗?对于新手,我可以少一点“可以”,多一点“应该”:)
您是否考虑过使用物化视图?这是 Cassandra 3.0 中的一项新功能,可以很好地满足您的用例,您可以拥有一个基表,然后为每个查询创建该表的视图。例如,以这篇博文为例:
CREATE TABLE users (
id uuid PRIMARY KEY,
username text,
email text,
age int
);
CREATE MATERIALIZED VIEW users_by_name AS
SELECT * FROM users
WHERE username IS NOT NULL
PRIMARY KEY (username, id);
Run Code Online (Sandbox Code Playgroud)
当您向用户插入数据时,数据也会传播到视图。然而,它并不完全是事务性的(获得写入的成功响应并不意味着它已经传播到视图,但它们最终会传播),但它可能会减少客户端的负担,并且应该注意任何关于表/视图同步。
| 归档时间: |
|
| 查看次数: |
181 次 |
| 最近记录: |