Cassandra 和非结构化数据

标签 cassandra database-schema

我对 NoSQL 比较陌生,但我对关系数据库做了一些玩弄。

我们正在评估 Cassandra 在我们的数据模型可能需要相当积极地发展的环境中的使用。我已经看到它在多个地方写了 Cassandra 可以存储“结构化、半结构化和非结构化”数据的地方。

我理解结构化声明。很明显:一个表定义了列。

我想我理解半结构化声明。一行不需要填充所有列。

但我不清楚非结构化声明。当然,您可以将所有内容存储为键值 blob,但您无法按值(有效地)进行搜索。

我在网上找不到任何资源来描述使用 Cassandra 的非结构化数据的最佳实践。理想情况下,对于我们的应用程序,半结构化数据就足够了;但我想了解非结构化声明,因为它可以为我们增加值(value)。

谢谢。

最佳答案

Cassandra 最多可以搜索半结构化数据。这也是通过使用集群键和二级索引。聚类键绝对是搜索半结构化数据的有效方法。

在不指定分区键的情况下搜索二级索引数据效率不高。有一些解决方案在这里有帮助,即 DSE Search(Solr with Cassandr) 和 Stargate。如果其中一列是非结构化文本,这两种解决方案也可能有所帮助。

否则,使用 Cassandra 处理非结构化数据并不是一个好主意,因为如果没有 key ,它可能无法搜索。

关于Cassandra 和非结构化数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24806170/

相关文章:

php - 更新查询以反射(reflect)规范化数据库

postgresql - Sequelize 迁移工具找不到 config.json 中定义的架构

java - Apache Cassandra启动问题: Could not find the main class: Files\Apache

java - 从同一程序调用 cassandra 和 elastic search 时出现异常

cassandra - 客户端压缩需要哪些附加库?

cassandra - 删除 Cassandra 连接作为硬 Spring 启动依赖项

apache-spark - 我们如何在 Apache Spark 中使用多个 Cassandra 设置?

mysql - 如何在 MongoDB 中建模多对多关系(对于 MySQL 用户)

mongodb - 如何在 mongodb 中执行 'not-in' 操作?

mysql - 合并数据库中的两个表