Cassandra 静态列设计
Cassandra Static Column design
静态列如何存储在 cassandra 内部?有人可以post举个例子讨论cassandra中静态列的设计实现吗?
我们为什么不看一下磁盘上带有静态列的 table 的结构并找出答案?
cqlsh:test> CREATE TABLE test (k int, v int, s int static, d int, PRIMARY KEY(k,v))
cqlsh:test> INSERT INTO test (k, v, s, d) VALUES ( 1, 1 ,20, 1 );
cqlsh:test> INSERT INTO test (k, v, s, d) VALUES ( 1, 3 ,21, 2 );
cqlsh:test> INSERT INTO test (k, v, s, d) VALUES ( 1, 2 ,21, 2 );
退出 C* 和 运行 nodetool flush
使我们的 sstables。 运行 sstable2json
在数据目录中创建的 .db 文件上。
[
{"key": "1", <--- K=1 Partition
"cells": [[":s","21",1425050917842350], <---- Our Static Column
["1:","",1425050906896717], < --- C=1 row
["1:d","1",1425050906896717], < --- C=1, D=1 value
["2:","",1425050917842350], < --- C=2 row
["2:d","2",1425050917842350], < --- C=2, D=2 value
["3:","",1425050912874025], <--- C=3 Row
["3:d","2",1425050912874025]]} <--- C=3, D=2 Value
]
您可以看到,在 Cassandra 中,这个静态列保存在我们分区最开始的标题为 "Blank:ColumnName" 的单元格中。与所有其他单元格不同,单元格名称中没有关于 c(我们的聚类列)的信息,因此 c 的所有值仍将修改相同的静态列 s
有关原因的更多详细信息,请查看 JIRA,网址为
https://issues.apache.org/jira/browse/CASSANDRA-6561
和博客 post 位于
http://www.datastax.com/dev/blog/cql-in-2-0-6
静态列如何存储在 cassandra 内部?有人可以post举个例子讨论cassandra中静态列的设计实现吗?
我们为什么不看一下磁盘上带有静态列的 table 的结构并找出答案?
cqlsh:test> CREATE TABLE test (k int, v int, s int static, d int, PRIMARY KEY(k,v))
cqlsh:test> INSERT INTO test (k, v, s, d) VALUES ( 1, 1 ,20, 1 );
cqlsh:test> INSERT INTO test (k, v, s, d) VALUES ( 1, 3 ,21, 2 );
cqlsh:test> INSERT INTO test (k, v, s, d) VALUES ( 1, 2 ,21, 2 );
退出 C* 和 运行 nodetool flush
使我们的 sstables。 运行 sstable2json
在数据目录中创建的 .db 文件上。
[
{"key": "1", <--- K=1 Partition
"cells": [[":s","21",1425050917842350], <---- Our Static Column
["1:","",1425050906896717], < --- C=1 row
["1:d","1",1425050906896717], < --- C=1, D=1 value
["2:","",1425050917842350], < --- C=2 row
["2:d","2",1425050917842350], < --- C=2, D=2 value
["3:","",1425050912874025], <--- C=3 Row
["3:d","2",1425050912874025]]} <--- C=3, D=2 Value
]
您可以看到,在 Cassandra 中,这个静态列保存在我们分区最开始的标题为 "Blank:ColumnName" 的单元格中。与所有其他单元格不同,单元格名称中没有关于 c(我们的聚类列)的信息,因此 c 的所有值仍将修改相同的静态列 s
有关原因的更多详细信息,请查看 JIRA,网址为 https://issues.apache.org/jira/browse/CASSANDRA-6561 和博客 post 位于 http://www.datastax.com/dev/blog/cql-in-2-0-6