cassandra - 是否可以在 Cassandra 中不定义列的情况下插入/写入数据?

标签 cassandra cql cassandra-2.0 cql3

我试图了解 Cassandra 数据模型的基础知识。我正在使用 CQL。据我所知,在任何人都可以插入新列之前,必须先定义架构。如果有人需要添加任何列可以使用 ALTER TABLE 并且可以将值插入到该新列中。

但是在 cassandra 权威指南中,写到 Cassandra 的模式更少。

在 Cassandra 中,您不需要预先定义列;你只需定义列
键空间中你想要的族,然后你就可以开始写数据而不用定义
任何地方的列。那是因为在 Cassandra 中,所有列的名称都是
由客户提供。

我很困惑,没有找到任何预期的答案。有人可以向我解释一下或告诉我我是否遗漏了什么吗?

提前致谢。

最佳答案

有两种不同的 API 可以与 Cassandra 交互以写入数据。首先是 thrift API,它总是允许动态创建列,但也支持为您的列添加元数据。
接下来是更新的基于 CQL 的 API。创建 CQL 是为了提供另一个抽象层,使与 Cassandra 的工作更加用户友好。使用 CQL,您需要预先为列名和数据类型定义架构。但是,这并不意味着不能使用 CQL 使用动态列。

请参阅此处了解差异:
http://www.datastax.com/dev/blog/thrift-to-cql3

关于cassandra - 是否可以在 Cassandra 中不定义列的情况下插入/写入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29250463/

相关文章:

cassandra - 从 cassandra 数据文件夹中恢复所有键空间和表

cassandra-2.0 - Cassandra 2.2.1 不会启动使用 cassandra -f

node.js - 从 NodeJS 使用 UUID 查询 Cassandra

cassandra - 使用 dsbulk 在 cassandra 中加载数据时出现问题

cassandra - 使用 MAX() 和 GROUP BY() 的选择是有效的还是会读取所有行

Cassandra 和 <=, => 日期运算符,不允许过滤

java - 如何将xml文件中的数据直接导入cassandra

apache-spark - 写语句失败

linux - Cassandra - 删除旧版本的表和备份数据库

javascript - 获取刚刚插入的行的id