Cassandra表同步
我刚刚阅读了DataStax帖子“
Basic Rules of Cassandra Data Modeling”,总而言之,我们应该通过查询而不是我们的关系/对象来建模我们的数据库模式.因此,许多表可以具有相同的重复数据,例如users_by_email和users_by_username,它们都具有相同的数据.
我该如何处理对象更新? 如果是UPDATE,我该如何处理数据同步?
在Cassadnra中,给定现有记录,使用相同主键的更新或插入将导致标记为删除的旧记录(使用墓碑)并且新记录变为“活动”.插入和更新之间的差异很少有细微差别,比如计数器和空值,但这些可能与问题无关.
在Cassandra 3.0中,维护同步数据的多个视图的责任在于客户端应用程序.是的,它意味着在需要它的所有不同表中插入/更新新数据. Cassandra 3.0引入了“Materialized Views”,它允许您维护数据的“主”表和几个视图,所有这些都由Cassandra管理.它需要仔细的数据建模,以便“主”表的主键包含创建所需的不同视图和相关查询所需的实体. 还有一个注意事项:如果您发现您的数据是高度关系的并且需要多个/多个视图才能使其可查询,那么Cassandra可能不适合问题空间,您可能应该考虑使用RDBMS. 为了扩展所提供的示例,可能用户信息是我们希望保留在关系数据库中的内容,而这些用户的大量操作可以在Cassandra中注册. (购买,点击,心率样本……) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |