更新后保持cassandra数据模型同步

更新后保持cassandra数据模型同步,cassandra,data-modeling,datastax,Cassandra,Data Modeling,Datastax,我在一个SQL Server数据库中有几个表,正在艰难地过渡到 卡桑德拉的概念和极端非规范化我认为是一个伟大的想法,值得付出代价。我也看过了几乎所有我能找到的关于卡桑德拉的资料,我认为我对这个概念有着非常坚定的理解 我面临的主要问题是如何保持一切同步的概念。 例如,如果我有以下表格,那么更新所有内容似乎是一件非常痛苦的事情。老实说,试图记录所有事情是一场噩梦。我敢肯定,在某个地方会有一些孤立的数据,只是为了引起人们的注意 TableA, TableAByX, TableAByY, TableAB

我在一个SQL Server数据库中有几个表,正在艰难地过渡到

卡桑德拉的概念和极端非规范化我认为是一个伟大的想法,值得付出代价。我也看过了几乎所有我能找到的关于卡桑德拉的资料,我认为我对这个概念有着非常坚定的理解

我面临的主要问题是如何保持一切同步的概念。 例如,如果我有以下表格,那么更新所有内容似乎是一件非常痛苦的事情。老实说,试图记录所有事情是一场噩梦。我敢肯定,在某个地方会有一些孤立的数据,只是为了引起人们的注意

TableA, TableAByX, TableAByY, TableAByZ

TableX, TableXByY, TableXByZ.
如果我更新TableA,我当然必须更新ByX、ByY和ByZ表。 然而,在极端情况下,如果所有的表都有一个共同的名字,比如用户的名字,并且这个名字已经更新了,我怎么能轻松准确地确保所有的内容都得到了更新呢

users firstname可以位于20个表中,所有表都具有不同的分区键。 我需要进行一些读取,以便获得分区键来更新表


是否有任何系统或设计模式可以让这变得更简单?

您的编写过程将处理这些问题。最可能的情况是,您首先希望将更新写入Kafka之类的持久性日志(以便您可以快速向用户确认更改),然后订阅更新的各种用户将修复依赖的视图

图案名称为

如果出于某种原因,您将为一个用户拥有多个分区键,那么您仍然需要某种方式来计算/从他的用户键检索这些分区键(如果保持这些多个表的同步对您很重要的话)

--

与您的问题无关,但您会发现,随着数据库的增长,模式迁移变得越来越棘手-您可以迁移一些行/其他行,因此对它们进行版本化,并让应用程序代码了解如何处理模式的多个版本是很酷的


此外,为了让这些方法表现良好,您可能需要使用Hadoop或某种方式来运行分布式查询/更新。

基本上,我正在尝试用crud类型的方法更新所有内容。然而,订阅更改通知听起来可能更容易、更符合逻辑。