我目前在Cassandra设计了一个架构,但我想知道是否有更好的方法来做事。基本上,问题是大多数(如果不是全部)读取都是动态的。我已经构建了一个分段系统作为应用程序服务,它读取动态自定义查询(与Cassandra完全无关,但查询严格且仅限于应用程序),它继续查询cassandra并合并结果。
我已经将大多数列系列扩展到我认为会很好的范围,因为数据非常密集,所以使用复合键来划分负载。
这基本上是在Cassandra上实现一个特定于应用程序的查询层,包括进行某种连接或合并操作。
此布局或流程是否有任何限制?
答案 0 :(得分:1)
如果您尝试使用Cassandra作为后端进行某种OLAP,我认为您会遇到问题。我在设计Cassandra表时看到的建议是start with the queries you expect to run,然后设计非规范化表,使您的查询更快。所以你需要知道查询是什么;听起来你的申请并非如此。也许RDBMS会更好?
答案 1 :(得分:1)
一个选项是PlayOrm for cassandra(实际上是一个对象nosql映射而不是关系,因为它遵循许多nosql模式)。它确实拥有自己的S-SQL语言,可以连接分区。它不会加入十亿行的十亿行表,但如果您的分区说不到一百万行,它可以帮助你。
nosql偶尔会有客户端连接,具体取决于上下文和PlayOrm,因此当你需要在nosql中进行连接时,你不需要做那么多的工作,这可能是非常罕见的.....很多时间非规范化更好。
playorm中的模式也不同于hibernate,就像一对多,fK中的许多都嵌入到行中,因为这是你在nosql中的方式。
后, 迪安