gpt4 book ai didi

cassandra如何组织sstable中的值

转载 作者:行者123 更新时间:2023-12-02 23:22:04 24 4
gpt4 key购买 nike

我很好奇 cassandra 如何组织 sstable 中行的值。
它是否存储每一行​​的列键?

例如

table  
c1 int primary key,
c2 int,
c3 int,

insert into table(c1,c2,c3) values(1,2,3)

cassandra如何存储它?像这样:c1 -> 2,3

或者像这样:c1 -> c2:2,c3:3

最佳答案

这很大程度上取决于您使用的 Cassandra 版本,因为 Cassandra 组织 C* 2.2 和 C* 3.0 之间数据更改的方式。您可以阅读有关这些更改的信息 here 。在 C* 3.0 之前,SSTable 由分区键及其单元组成;在 3.0 中,SSTables 由分区及其行(包含单元格)组成。

了解数据如何组织的最佳方法是使用像 sstabledump 这样的工具。 (C* 3.0+) 或 sstable2json观察执行一些更新并刷新到磁盘后数据在磁盘上的组织方式。

The following article概述如何使用 sstabledump。

对于您建议的架构和插入,以下是显示方式的示例:

[
{
"partition" : {
"key" : [ "1" ],
"position" : 0
},
"rows" : [
{
"type" : "row",
"position" : 32,
"liveness_info" : { "tstamp" : "2018-09-06T00:03:38.558182Z" },
"cells" : [
{ "name" : "c2", "value" : 2 },
{ "name" : "c3", "value" : 3 }
]
}
]
}
]

正如您所看到的,数据是按分区组织的,然后分区内有行。每行内都有单元格,每个单元格代表一个列值。

还有其他元数据可以存在于分区、行和单元级别。 C* 3 存储引擎还通过不在每个单元中存储每列的名称(C* 2 所做的)来优化空间。

关于cassandra如何组织sstable中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52194664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com