【发布时间】:2016-10-04 12:59:56
【问题描述】:
我们正在尝试在基于 IoT 的应用程序中使用 Apache Cassandra。我们正计划创建一个设备抽象。任何用户都应该能够定义具有一系列属性的设备。对于每个属性,用户应该能够定义一系列属性,如名称、数据类型、最小值、最大值等
下面给出了一些设备示例
车辆
车辆可以具有以下属性
- 速度 [名称:- 速度,数据类型:- 双精度,最小值:- 0,最大值:-300]
- 纬度 [名称:- 速度,数据:- 双倍,最小值:- -90,最大值:-90]
- 经度[名称:- 经度,数据:- 双精度,最小值:- -180,最大值:- 180]
温度传感器
温度传感器可以有以下属性
- 当前温度[名称:- 当前温度,数据类型:- 双精度,最小值:- 0,最大值:-300]
- 单位[名称:-单位,数据类型:-字符串]
每个设备都将实时发送数据作为键值对。
例如:- 车辆可以发送以下数据
时间:- 6/4/2016 11:15:15.150,纬度:-1.256,经度:- -180.75,速度:- 50
时间:- 6/4/2016 11:15:16.150,纬度:-1.257,经度:- -181.75,速度:- 51
例如:- 温度传感器可以发送以下数据
时间:- 6/4/2016 11:15:15.150,当前温度:100,单位:华氏度
时间:- 6/4/2016 11:15:16.150,纬度:101,单位:华氏
由于不同设备的属性可能不同,我们对 cassandra 中的表格如何建模感到困惑......想到的一些选项是为设备创建表格,或创建单个表并将值存储在 Map 数据类型中......我们对应该采用哪种方法有点困惑...... 任何建议表示赞赏
【问题讨论】:
-
鉴于最终用户可以随意定义自己的设备类型,您可能不希望每个设备都有一个表,因为这会导致您根据用户请求按需创建表。
-
您可以创建一个抽象,比如说一个事物,一个目前在物联网领域流行的术语,它支持用户定义的标签,每个标签都由名称和值组成。每个标签将存储在单独的列中。
-
您可能想看看我的 IoT 项目,它是一个 IoT/Casandra 项目。 github.com/weaviate
-
谢谢鲍勃,我会看看然后回来
-
@BobvanLuijt 我查看了您的项目,但无法理解这些值是如何存储的...请您详细说明
标签: cassandra time-series device iot