Cassandra - 我必须做这么多写入吗?

标签 cassandra

我有 5 个表:

users_by_id
users_by_username
users_by_email
users_by_likes
users_by_followers

如果用户注册,我每次都必须写 5 条声明。是不是很贵或者很差?

INSERT INTO users_by_id (...) values (..)
INSERT INTO users_by_email (...) values (..)
INSERT INTO users_by_username (...) values (..)
INSERT INTO users_by_likes (...) values (..)
INSERT INTO users_by_followers (...) values (..)

第二个问题:也许我更新users_by_id我必须写5个Update语句。还有其他解决方案吗?或者说这并没有那么糟糕?

最佳答案

Cassandra 提倡对数据进行非规范化并根据您的查询创建数据模型。您必须编写数据模型,使其能够以良好的性能满足所有查询。为了性能(由于其架构和设计)Cassandra 要求使用分区键进行写入和读取。

在 5 个不同的表中为同一组数据写入 5 次插入并不昂贵。您的读取性能将会更好,并且随着数据大小增加到网络规模,您将感谢您创建 5 个表并向其写入数据的决定。

您可以探索物化 View (Materialized ViewDatastax Link for Materialized View,但请记住它是一个实验性功能。因此您必须正确理解它,并识别物化 View 的未解决问题。

我建议您学习 Cassandra 数据模型,这将使​​事情更容易掌握。

关于Cassandra - 我必须做这么多写入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68171646/

相关文章:

mongodb - 那里有什么好的大数据演示/示例应用程序吗?

apache-spark - 如何在 Spark 和 Cassandra 之间配置 SSL?

Cassandra:内存表失败

java - 更改Groovy使用的JVM版本在Drone.io中构建

elasticsearch - 在SOLR或Elasticsearch中排除记录的好方法

java - Cassandra Java Driver : How are insert,更新、删除结果报错?

java - 如何将 Cassandra (>2.0) JVM 堆大小设置为 8GB?

cassandra - 使用 Cassandra 进行数据建模

mongodb - 在谈论 MongoDB 和 Cassandra 时, "Document-oriented"vs. Key-Value 是什么意思?

java - 使用 datastax java 驱动程序 2.0 的多线程