如果我在Cassandra中创建这样一个表
CREATE TABLE example (
key1 text PRIMARY KEY,
map1 map<text,text>,
list1 list<text>,
set1 set<text>
);然后插入这样的数据
INSERT INTO example (
key1,
map1,
list1,
set1
) VALUES (
'john',
{'patricia':'555-4326','doug':'555-1579'},
['doug','scott'],
{'patricia','scott'}
);看一下使用CLI的存储,我会看到
RowKey: john
=> (column=, value=, timestamp=1374683971220000)
=> (column=map1:doug, value='555-1579', timestamp=1374683971220000)
=> (column=map1:patricia, value='555-4326', timestamp=1374683971220000)
=> (column=list1:26017c10f48711e2801fdf9895e5d0f8, value='doug', timestamp=1374683971220000)
=> (column=list1:26017c12f48711e2801fdf9895e5d0f8, value='scott', timestamp=1374683971220000)
=> (column=set1:'patricia', value=, timestamp=1374683971220000)
=> (column=set1:'scott', value=, timestamp=1374683971220000)现在我的问题是: CLI输出中的第一行是什么?什么意思?为什么它没有任何列或值,而是有时间戳?
发布于 2020-01-28 17:08:06
“行标记”被引入1,所以当删除最后一列(将一列设置为空)时,行不会消失。与传统SQL实现的行为保持一致)
你还发现了卡桑德拉是如何代表罩下的集合的。记住这一点
发布于 2020-01-28 13:13:54
这是因为在使用cassandra时,可以得到行的节约表示。第一个信息用于主键,因为您只是一个分区键,所以它与行键相同。所以你有你的价值:作为rowKey (在你的例子中约翰),那么时间戳
如果您使用cqlsh,您将有更多可读性的结果集。您可以在这里找到更多的细节:https://thelastpickle.com/blog/2013/01/11/primary-keys-in-cql.html
我希望这能帮到你
https://stackoverflow.com/questions/59947670
复制相似问题