小编its*_*ata的帖子

Apache Cassandra 替代时间序列模型,一行中有许多列

我们成功地使用瘦行方法在 cassandra 中存储时间序列(包括分桶)。尽管如此,我正在为我们寻找高效的存储模型(例如,更少的存储消耗......)。一个用例是将每个值的每一秒存储到一个表中。

最后一种方法(宽行多列)对我来说就像一个完整的反模式(不是理论上,而是在实践中)。有人有这种方法的经验并且可以证实我对此的看法吗?

1) Skinny Row宽行(灵活,可以过滤时间戳)

CREATE TABLE timeseries (
    id int,
    date date,
    timestamp timestamp,    
    value decimal,
    PRIMARY KEY ((id, date), timestamp)
) WITH CLUSTERING ORDER BY (timestamp DESC)
Run Code Online (Sandbox Code Playgroud)

2) 包含一天所有值的 Blob/JSON(更少的存储消耗,没有对节点上的时间戳进行过滤)

CREATE TABLE timeseries(
    id int,
    date date,
    json text, -- [{'secondOfDay': 0, 'value': 12.34}, {...} or BLOB
    PRIMARY KEY ((id, date))
) 
Run Code Online (Sandbox Code Playgroud)

3)宽行窄行多列

CREATE TABLE timeseries(
    id int,
    date date,
    "0" decimal, "1" decimal,"2" decimal, -- ... 86400 decimal …
Run Code Online (Sandbox Code Playgroud)

time-series cassandra

4
推荐指数
1
解决办法
499
查看次数

确定Cassandra中分区的节点

这可能是一个特殊的问题,但是可以确定分区键的节点吗?

示例:我有一个分区键id(int),我使用默认的分区程序(Murmur3Partitioner),其中包含3个节点和复制因子"1".我可以确定id = 3的一个节点吗?

CREATE TABLE example_table (
    id int,    
    content text,
    PRIMARY KEY (id, content)
) 
Run Code Online (Sandbox Code Playgroud)

cassandra cql3 cassandra-3.0

2
推荐指数
1
解决办法
446
查看次数

标签 统计

cassandra ×2

cassandra-3.0 ×1

cql3 ×1

time-series ×1