我使用CassandraDB保存指标数据。
我创建了一个名为metrics
的列家庭:
CREATE TABLE metrics (
mbean text,
metricstime timestamp,
ftpconnectionstate int,
PRIMARY KEY (mbean, metricstime));
结果"表"在cqlsh中看起来像这样:
mbean | metricstime | ftpconnectionstate
-----------+--------------------------+--------------------
FtpOnline | 2016-10-10 14:38:45+0000 | 1
FtpOnline | 2016-10-10 14:38:50+0000 | 1
FtpOnline | 2016-10-10 14:38:55+0000 | 1
FtpOnline | 2016-10-10 14:39:00+0000 | 1
FtpOnline | 2016-10-10 14:39:05+0000 | 1
FtpOnline | 2016-10-10 14:39:10+0000 | 1
FtpOnline | 2016-10-10 14:39:15+0000 | 1
FtpOnline | 2016-10-10 14:39:20+0000 | 1
在引擎盖下,cassandra保存了这样的价值:
RowKey: FtpOnline
=> (name=2016-10-10 14\:38\:45+0000:, value=, timestamp=1476110327630000, ttl=604800)
=> (name=2016-10-10 14\:38\:45+0000:ftpconnectionstate, value=00000001, timestamp=1476110327630000, ttl=604800)
=> (name=2016-10-10 14\:38\:50+0000:, value=, timestamp=1476110331832000, ttl=604800)
=> (name=2016-10-10 14\:38\:50+0000:ftpconnectionstate, value=00000001, timestamp=1476110331832000, ttl=604800)
=> (name=2016-10-10 14\:38\:55+0000:, value=, timestamp=1476110336830000, ttl=604800)
=> (name=2016-10-10 14\:38\:55+0000:ftpconnectionstate, value=00000001, timestamp=1476110336830000, ttl=604800)
=> (name=2016-10-10 14\:39\:00+0000:, value=, timestamp=1476110341831000, ttl=604800)
=> (name=2016-10-10 14\:39\:00+0000:ftpconnectionstate, value=00000001, timestamp=1476110341831000, ttl=604800)
=> (name=2016-10-10 14\:39\:05+0000:, value=, timestamp=1476110346832000, ttl=604800)
=> (name=2016-10-10 14\:39\:05+0000:ftpconnectionstate, value=00000001, timestamp=1476110346832000, ttl=604800)
现在您可以看到列条目的值为空。 我的问题是:是否有可能摆脱它们?
答案 0 :(得分:1)
我相信你指的是每一行的值=。它们存在,因为该值实际存储为该字段的名称。这就是Cassandra存储群集密钥的方式。由于该值在名称中,因此将其包含在“值”字段中也没有意义。通常情况下,这种观点会分散注意力,因为这不是用户需要担心的事情。