传感器数据的图形数据库 - 如何建立关系模型?

时间:2016-06-25 19:01:46

标签: graph-databases

我目前正在为我的用例评估可能的NoSQL技术。 我有很多传感器数据日志(几个TB),并希望以可扩展,高效的方式分析数据。

我的传感器数据包含时间戳,位置和传感器属性名称列表(例如“温度”)和传感器属性值(例如12.9°C)。但是,该位置不存在于我的所有数据条目中。此外,每个条目的属性列表也各不相同。 因此,一个日志条目可能包含如下数据:

  • sensor_id:1
  • location:lat / lon(注意:但每个条目中不包含始终
  • datetime:timestamp_of_log_date
  • attribute_name1:“attribute_value1”
  • attribute_name2:123123
  • attribute_name3:0.933
  • attribute_nameN:“attribute_valueN”

我最近遇到了图形数据库,并发现这个概念很有趣。我不确定我的用例是否应该应用于图形数据库,因为(可能)我的数据之间缺乏关系。

有一些方法可以模拟我的传感器数据之间的关系,但现在我只能想到以下关系:

  • 年份的日期/时间 - >月 - >日 - >小时 - >分钟 - >秒
  • 条目的位置到Continent-> Country-> State-> City-> Street / PoI
  • 传感器ID->属性名称

我使用地理空间查询,时间查询和“普通”属性查询(field_x< = 1000)来查询我的数据。

还有一点需要注意:当我运行地理空间查询时,我通常希望根据空间查询中找到的记录的时间戳读出更多记录。所以基本上,当我的地理空间查询完成并返回时间戳为“25.06.2016-20:40:30”的记录时,我还想读出在地理空间查询中找到的每条记录在一分钟内有时间戳的所有其他记录。

Neo4j例如擅长处理地理空间查询,这是我的用例非常常见的查询类型。但是我如何建模我的数据呢?我的节点如何连接到其他节点?他们甚至需要连接吗?

1 个答案:

答案 0 :(得分:2)

虽然你当然可以找到模拟与这些数据的关系的方法,但问题是你会对这些关系做些什么?如果您的数据中的关系没有多大价值,那么为了空间查询,使用Neo4j(即使它是一个很棒的图形数据库!)是没有意义的。

当你连接数据时,Neo4j真的很闪耀,并且从这些连接中获得了值。