我试图了解Cassandra数据模型的基本原理。我正在使用CQL。据我所知,必须先定义架构,然后才能插入新列。如果有人需要添加任何列,可以使用ALTER TABLE,并且可以将值INSERT到该新列。
但是在cassandra权威指南中写道,Cassandra的模式较少。
In Cassandra, you don’t define the columns up front; you just define the column families you want in the keyspace, and then you can start writing data without defining the columns anywhere. That’s because in Cassandra, all of a column’s names are supplied by the client.
我感到困惑,没有找到任何预期的答案。有人可以向我解释或告诉我,如果我错过了什么吗?
提前致谢。
答案 0 :(得分:5)
两个不同的API与Cassandra交互以编写数据。首先是thrift API,它总是允许动态创建列,但也支持为列添加元数据。 接下来是更新的基于CQL的API。创建CQL是为了提供另一个抽象层,使其更适合与Cassandra一起使用。使用CQL,您需要为列名和数据类型预先定义模式。但是,这并不意味着无法使用CQL来使用动态列。
答案 1 :(得分:3)
你正在阅读“Cassandra,权威指南”:一本3/4岁的书,它告诉你很久以前发生过变化的事情。现在,您必须在能够写入数据之前定义表结构。
Here你可以找到CQL引入和无模式放弃背后的一些原因。
The official Datastax documentation应该是您的权威指南。
HTH,
卡罗