我有将近六个表,每个表在 Cassandra 中都有 20 到 60 列。我正在为此数据库设计架构。
查询的要求是所有的列必须是单独可查询的。
- 我知道如果数据具有高基数,则不鼓励使用二级索引。
- 物化 View 将在一定程度上解决我的目的,我也可以在其他列上进行查询。
我的问题是:
在这种情况下,如果每个表都有 30 到 50 多个物化 View ,这是可以遵循的模式还是完全错误的轨道。是否将此功能发挥到了极致。也许写入将开始在系统上变得昂贵(我知道它们最终会被写入,而不是立即写入实际表)。
最佳答案
您绝对不想要 30 到 50 个物化 View 。
听起来您要满足的用例是搜索,而不是特定查询。
如果可以预先定义要在每一列上执行的查询,那么您也可以走非规范化路线,以搜索的灵 active 换取更好的性能和更少的操作开销。
如果你对搜索路线感兴趣,我建议你看一下:
- SASI Indexes (取决于您使用的 Cassandra 版本)
- Elastic Search
- Solr
- DataStax Enterprise Search (免责声明我为 DataStax 工作)
- Elassandra
- Stratio
这些只是我脑海中浮现的那些。可能还有其他人(对不起,如果我想念你)。我提供了每个链接,这样您就可以根据自己的用例做出明智的决定。
关于cassandra - 查询所有列cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41799129/