2015-03-25 34 views
4

我想了解Cassandra數據模型的基礎知識。我正在使用CQL。據我所知,模式必須在任何人可以插入新列之前定義。如果有人需要添加任何列,可以使用ALTER TABLE,並可以將INSERT值添加到該新列。是否可以插入/寫入數據而不用在Cassandra中定義列?

但是在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. 

我感到困惑,沒有找到任何預期的答案。有人可以向我解釋或告訴我,如果我錯過了什麼?

在此先感謝。

回答

4

您正在閱讀「Cassandra,權威指南」:一本3/4年的舊書,告訴你一些很久以前已經改變的東西。現在您必須在能夠寫入數據之前定義表結構。

Here您可以找到CQL引入和無模式放棄背後的一些原因。

The official Datastax documentation應該是你的權威指南。

HTH,
卡羅

4

即使世界兩種不同API與卡桑德拉互動寫入數據。首先是節儉API,它總是允許動態創建列,但也支持爲列添加元數據。 接下來是最新的基於CQL的API。創建CQL是爲了提供另一個抽象層,使其與Cassandra一起工作更加方便用戶。在CQL中,您需要爲列名和數據類型預先定義模式。但是,這並不意味着它不可能使用使用CQL的動態列。

在這裏看到的差異: http://www.datastax.com/dev/blog/thrift-to-cql3

相關問題