1
是否可以在Cassandra(使用CQL)中存儲具有相同列數但具有一個不同列的一列家族中的兩行?事情是這樣的:CQL - 具有不同列的行
// column family
'users' : {
// row 1
'john' : {
name: 'John',
lastname: 'Smith',
email: '[email protected]'
}
// row 2
'jack' : {
name: 'Jack',
lastname: 'Sparrow',
age: 33
}
}
我目前的CQL代碼:
CREATE KEYSPACE people WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
USE people;
CREATE COLUMNFAMILY users (
username varchar PRIMARY KEY,
name varchar,
lastname varchar,
email varchar
);
INSERT INTO users (username, name, lastname, email) VALUES ('john', 'John', 'Smith', '[email protected]');
ALTER TABLE users DROP email;
ALTER TABLE users ADD age int;
INSERT INTO users (username, name, lastname, age) VALUES ('jack', 'Jack', 'Sparrow', 33);
SELECT * FROM users;
OUTPUT:
username | age | lastname | name
----------+------+----------+------
john | null | Smith | John
jack | 33 | Sparrow | Jack
我不明白你的問題。 「相同的色譜柱數量,但有一個不同的色譜柱是什麼意思?」也許閱讀cassandra的稀疏數據模型。基本上,如果不爲給定的cql行插入值,我們將不會在底層sstable中創建單元。 I.E.如果你沒有說DROP電子郵件,除非你故意插入空白/墓碑,否則傑克不會有空單元格的電子郵件。 – phact
所以,如果我跳過'ALTER TABLE用戶DROP電子郵件;'我會得到傑克的電子郵件空值,但在物理上「這一列不會創建這一行,我是對的? – Bakus123
是的,使用sstable2json來內省。請記住,您必須刷新以查看錶格。 – phact