gpt4 book ai didi

cassandra - 我们可以使用 Cassandra 作为键值存储吗?

转载 作者:行者123 更新时间:2023-12-03 22:21:54 26 4
gpt4 key购买 nike

我有一个关于使用 Cassandra 作为键值数据存储的简单问题。
我对 Cassandra 的概念还是很陌生,我已经在几个地方搜索过这个问题的答案,但是,我找不到一个可靠的答案。

让我们考虑以下场景,其中我将一组传感器值存储在数据库中,其中传感器名称将在运行时确定。

在场景 1 中,我得到以下值

{"id": "001", "sensor1" : 25, "sensor2":15}

在场景 2 中,我得到以下值,
{"id": "002", "sensor1" : 25, "sensor3":30}

因此,在这些场景中,如果我使用键值数据存储(例如 AWS Dynamodb)来存储数据,那么它看起来如下所示,
+-----+---------+---------+---------+
| ID | sensor1 | sensor2 | sensor3 |
+-----+---------+---------+---------+
| 001 | 25 | 15 | |
| 002 | 25 | | 30 |
+-----+---------+---------+---------+

但是,我的问题是我们能否用 Cassandra 完成同样的事情,因为它不是完整的键值存储。

在 cassandra 中,我需要在开始将数据持久化之前定义表。所以在这种情况下,我需要在此之前知道我所有的传感器名称。

当我们通过“插入”cql 添加数据时,我不确定是否可以将列动态添加到 Cassandra 表中。

我知道我可以将数据作为映射存储在 cassandra 中定义的列之一中,但是,这不是我们对键值存储所做的。

最佳答案

您需要输入 ID作为分区键,传感器名称作为集群列,类似于:

create table sensors (
id int,
sensor text,
value int,
primary key(id, sensor));

那么您可以进行这样的查询(选择给定测量的所有数据):
select * from sensors where id = 001;

或他的(为给定的测量和传感器选择数据):
select * from sensors where id = 001 and sensor = 'sensor1';

关于cassandra - 我们可以使用 Cassandra 作为键值存储吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49280189/

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