gpt4 book ai didi

database-design - Cassandra:列族与 super 列族

转载 作者:行者123 更新时间:2023-12-05 00:34:00 26 4
gpt4 key购买 nike

我有一个要求,我需要我的数据库来存储以下数据:

- For each build, store the results of 3 performance runs. The result includes tps and latency. 

阅读 cassandra 数据模型,这直接映射到以下格式的 super 列族:
BenchmarkSuperColumnFamily= {

build_1: {
Run1: {1000K, 0.5ms}
Run2: {1000K, 0.5ms}
Run3: {1000K, 0.5ms}
}

build_2: {
Run1: {1000K, 0.5ms}
Run2: {1000K, 0.5ms}
Run3: {1000K, 0.5ms}
}
...

}

但是,我在以下 answer 中读到不鼓励使用 super 列族。我想知道是否有更好的方法来为我的需求创建模型。

PS,我从以下 article 借用了 JSONish 符号

最佳答案

您链接到的 StackOverflow 答案是正确的。您不应该在新应用程序中使用 SuperColumns。然而,它们的存在是为了向后兼容。

通常,复合列可用于模拟 super 列提供的任何模型。基本上,它们允许您将列名分成多个部分。因此,如果您要指定“CompositeType(UTF8Type, UTF8Type)”的比较器,您的数据模型最终看起来像这样:

BenchmarkColumnFamily= {

build_1: {
(Run1, TPS) : 1000K
(Run1, Latency) : 0.5ms
(Run2, TPS) : 1000K
(Run2, Latency) : 0.5ms
(Run3, TPS) : 1000K
(Run3, Latency) : 0.5ms
}

build_2: {
...
}
...

}

使用上述模型,您可以使用单个查询来获取单次运行的单个数据点、单次运行的所有数据点或多次运行的所有数据点。

有关复合列的更多信息:
http://www.datastax.com/dev/blog/introduction-to-composite-columns-part-1

关于database-design - Cassandra:列族与 super 列族,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11198419/

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