我想知道 Cassandra 的二级索引与 DSE 放在 CF 上的 solr 索引的性能差异。
我们有一些没有放置二级索引的 CF,因为我们的印象是二级索引会(最终)导致重读/写 CF 的重大性能问题。我们正试图转向 Solr 以允许搜索这些 CF,但看起来加载索引模式会修改 CF 以在感兴趣的列上具有二级索引。
想知道 Solr 索引是否不同于 Cassandra 的二级索引?并且,它最终是否会导致带有大型数据集和大量读/写的 CF 的缓慢查询(插入/读取)?如果是这样,您会建议自定义索引(我们想避免)吗?顺便说一句——我们也在使用(尝试使用)Solr 进行空间搜索。
感谢您提供的任何建议/链接。
更新:为了更好地理解我为什么要问这些问题,并看看我是否在问正确的问题——我们用例的描述:
我们正在收集传感器事件——很多!我们将它们存储在时间序列 CF (EventTL) 和瘦 CF (Event) 中。因为我们在 Event CF 中大量写入(插入和更新),所以我们没有放置任何二级索引。我们现在的查询仅限于通过 Event 的单个事件或通过 EventTL 的事件时间范围(除非我们创建额外的胖 CF 以允许对事件的其他属性进行范围查询)。
这就是 DSE (Solr+Cassandra) 可以帮助我们的地方。我们认为利用 Solr 搜索将允许我们避免创建额外的胖 CF 以允许搜索事件的其他属性,并允许我们一次搜索多个属性(位置 + 文本/属性)。但是,通过 Solr 添加 Event 的索引模式后,查看 Event CF 的定义如何变化表明二级索引已创建。这导致了这些索引是否会为在 Event 中插入/更新行(最终)产生问题的问题。我们需要能够“快速”插入新事件——因为事件可能以每秒 1000+ 的速度进入。