Jon*_*ete 2 data-modeling cassandra nosql cql3 cassandra-2.0
我是Cassandra的新手,所以我读了十几篇关于它的文章,因此我了解了基础知识.所有教程都显示了1或2列和时间范围的高效数据检索.如果您有更多条件,我找不到的是如何正确建模您的数据.
我有一个大型事件规范化数据库,有很多列,说:
我需要能够按所有列进行查询.所以在RDBMS中我会查询:
SELECT email FROM table WHERE time > X AND user_age BETWEEN X AND X AND user_language = 'nl'
等等..
我知道我可以为每列创建一个单独的表,但是我仍然需要将结果组合起来.也许这不是一个坏方法,但我怀疑它,因为没有子查询.
我的问题显然是,如何在Cassandra中正确建模这种数据?
非常感谢!
我需要能够按所有列进行查询.
让我阻止你在那里.在Cassandra中,您可以根据预期的查询模式创建表,通常表支持单个查询.在您的情况下,您有"很多"列,您需要将该数据复制到一个旨在支持每个可能的查询的表中.这将变得非常大而且笨拙,很快.
我们可以将其余的作为二级索引添加吗?eventtype表+ merchant_id +时间选择中可能仍有数百万行.
二级索引旨在用于中间基数列.因此,极低和极高基数列都不利于二级索引.问题是,Cassandra必须选择一个节点作为协调器,扫描每个节点上的索引(产生大量网络时间),然后构建并返回结果集.这是表现不佳的处方,它与使用分布式数据库的最佳实践相悖.
简而言之,Cassandra对于像这样的用例来说不是一个好的解决方案.听起来您希望能够执行OLAP类型的查询,为此您应该使用更适合此目的的工具.
归档时间: |
|
查看次数: |
456 次 |
最近记录: |