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