【发布时间】:2013-07-03 20:30:26
【问题描述】:
我目前在 Cassandra 中设计了一个模式,但我想知道是否有更好的方法来做事。基本上,问题在于大多数(如果不是全部)读取都是动态的。我已经构建了一个分段系统作为读取动态自定义查询的应用程序服务(与 Cassandra 完全无关,但查询是严格的并且仅限于应用程序),它会继续查询 cassandra 并合并结果。
我已将大多数列族设置为我认为合适的宽度,并且由于数据的写入非常密集,因此使用复合键来划分负载。
这基本上是在 Cassandra 之上实现特定于应用程序的查询层,包括进行某种连接或合并操作。
此布局或流程是否有任何限制?
【问题讨论】:
-
我认为您必须更加具体。 “动态读取”是什么意思?为什么要分段然后合并?
-
@Raedwald 基本上,应用层公开了一个查询服务A。它的任务是充当数据分段。分段与 cassandra 完全无关(尽管数据存储在其中)。我们没有直接接触 Cassandra,而是公开了一层间接层以提供更强大的分段。例如,有人可以请求“查找所有来自加拿大且浏览器为 Firefox 且登录后在首页搜索 5 次的用户”的数据集。这就是我所说的数据分割。
-
服务层负责执行这个分割。我试图产生非常大的行(按列)以允许快速读取,但考虑到一些数据是计数器而另一些是其他类型,数据需要自动拆分到两个列族。
-
尽管查询既不清晰也不用英文供参考。只是一个例子
标签: java service cassandra cql3