0

我目前在 Cassandra 中设计了一个模式,但我想知道是否有更好的方法来做事。基本上,问题在于大多数(如果不是全部)读取都是动态的。我已经构建了一个分段系统作为读取动态自定义查询的应用程序服务(与 Ca​​ssandra 完全无关,但查询是严格的并且仅限于应用程序),它会继续查询 cassandra 并合并结果。

我已经将大多数列族设置为我认为好的那样宽,并且因为数据是非常密集的写入,所以使用复合键来划分负载。

这基本上是在 Cassandra 之上实现一个特定于应用程序的查询层,包括进行某种连接或合并操作。

此布局或流程是否有任何限制?

4

2 回答 2

1

一种选择是用于 cassandra 的 PlayOrm(实际上是一个非关系的对象 nosql 映射,因为它遵循许多 nosql 模式)。它确实有自己的 S-SQL 语言来连接分区。虽然它不会将你的十亿行表与十亿行连接起来,但如果你的分区低于一百万行,它可以帮助你。

nosql 偶尔会根据上下文进行客户端连接,而 PlayOrm 可以做到这一点,因此当您确实需要在 nosql 中连接时,您不必做太多工作,尽管这种情况非常罕见.....很多时候非规范化是更好的。

playorm 中的模式也与 hibernate 不同,例如一对多,许多的 FK 嵌入在行中,因为这就是你在 nosql 中的操作方式。

后来,迪恩

于 2013-07-03T12:30:26.277 回答
1

如果您尝试使用 Cassandra 作为后端来执行某种 OLAP,我认为您会遇到问题。我在设计 Cassandra 表时看到的建议是从您希望运行的查询开始,然后设计非规范化表以使您的查询快速。所以你需要知道查询是什么;听起来您的应用程序并非如此。也许 RDBMS 会更好?

于 2013-07-03T10:54:50.487 回答