1

假设我有一个超列族。还假设我有多个分区在不同的机器实例上运行。我的超列族数据如下所示(一行)

RowKey: 4818d991-9df5-4899-aa07-461f4ed19996
=> (super_column=4dddb83e-4096-428d-8d1b-8b0235ae772f,
     (column=1322847333862, value=, timestamp=1322847333863001)
     (column=1322847637237, value=, timestamp=1322847637237000)
     (column=1322847837206, value=, timestamp=1322847837206001)
     (column=1322848197819, value=, timestamp=1322848197819000))

现在我想知道,如果我对超列族进行查询以返回 {row, super_column} 的数据/子列,这些子列的所有值会从一台机器还是不同机器返回?基本上这是一个问题 - 分区是在行级别还是 super_column 级别还是子列级别发生?而且,即使只是从一台机器返回,每个子列的顺序是否会按原样返回,就像上面显示的那样?

4

1 回答 1

1

分区是在行级别完成的,即整行存储在单台机器上(可能与其他机器上的副本一起存储,具体取决于您的复制因子)。

子列根据列名按排序顺序存储 - 超级列可以在超级列名和子列名上指定一个比较器。请参阅http://www.datastax.com/docs/0.8/ddl/column_family

于 2011-12-02T22:42:47.283 回答