2013-06-28 85 views
2

我在cql3中定義了一個表。描述它返回如下:添加到cassandra-cli中的列新列不可見從cqlsh(cql3)

CREATE TABLE結果(
ID UUID PRIMARY KEY,
casename文本,
結果文本,
運行INT,
用戶文本
)WITH ...

我嘗試使用這樣一個事實,即不應該限制列家族並添加一個新的列值對:

insert into results (id, sogginess) values(3d6f63a4-c1e0-4dd8-b043-8e0754122f23, 'high') ; 

但這不起作用。如果我使用cassandra-cli,我可以用標準設置語法添加sogginess的值,並且該行通常保持不變。即使切換回cql3,select *查詢也不會返回這個新列,並且這兩個描述都不會顯示新列sogginess。

這意味着您不能將任意數據添加到cql3中的行,並且您被定義的模式綁定了?如果不是,我該怎麼做?

回答

4

TL; DR;
沒有,但你可以使用集合:phonenumbers set<text>

CQL 3預計在元數據中定義的所有列,所以是您綁定到架構。

如果不是,我該怎麼辦?

那麼,你不能。你可以做的是使用集合並構建你的數據模型。通過節儉添加任意列被認爲是不好的練習。我的建議是閱讀datastax關於wide row support in CQL3的文章。此外,這些問題是相關的(如果不是重複...),所以來看看他們:

  1. Does cql3 require a schema for cassandra now
  2. Create a table in Cassandra 1.2 with CQL3 where column names will be created at runtime