首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡桑德拉内部存储

卡桑德拉内部存储
EN

Stack Overflow用户
提问于 2020-01-28 11:25:17
回答 2查看 61关注 0票数 1

如果我在Cassandra中创建这样一个表

代码语言:javascript
复制
   CREATE TABLE example (  
   key1 text PRIMARY KEY,  
   map1 map<text,text>,  
   list1 list<text>,  
   set1 set<text>
);

然后插入这样的数据

代码语言:javascript
复制
INSERT INTO example (  
   key1,  
   map1,  
   list1,  
   set1  
) VALUES (  
   'john',  
   {'patricia':'555-4326','doug':'555-1579'},  
   ['doug','scott'],  
   {'patricia','scott'}  
);

看一下使用CLI的存储,我会看到

代码语言:javascript
复制
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输出中的第一行是什么?什么意思?为什么它没有任何列或值,而是有时间戳?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-28 17:08:06

“行标记”被引入1,所以当删除最后一列(将一列设置为空)时,行不会消失。与传统SQL实现的行为保持一致)

你还发现了卡桑德拉是如何代表罩下的集合的。记住这一点

  • 映射键应该是唯一的(已解决的)
  • 列表可以包含重复的(通过附加uuid解决)
  • 集合不应该包含重复的(已解决的)

1

票数 1
EN

Stack Overflow用户

发布于 2020-01-28 13:13:54

这是因为在使用cassandra时,可以得到行的节约表示。第一个信息用于主键,因为您只是一个分区键,所以它与行键相同。所以你有你的价值:作为rowKey (在你的例子中约翰),那么时间戳

如果您使用cqlsh,您将有更多可读性的结果集。您可以在这里找到更多的细节:https://thelastpickle.com/blog/2013/01/11/primary-keys-in-cql.html

我希望这能帮到你

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59947670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档