新闻中心
PRESS CENTEREG8200边缘计算网关插入SD卡,会自动安装influxDB数据库,并自动存储在SD卡内。如果未插入SD卡,则无法创建本地influxDB数据库,读写时序数据库节点自然也就无法使用。但是可以和远端的influxDB数据库通信,例如局域网内有influxDB数据库。
设备在读写SD卡过程中,请勿频繁断电,否则SD卡容易出现读写保护或者文件损坏的情况。
influDB是一个专为存储时间序列数据设计的高性能数据库,因此非常适合存储历史数据。influDB的特点和优势这里不过多讲解,大家有兴趣可以自行搜索相关资料学习,本章节着重讲解如何使用读写时序数据库节点来对influDB数据库进行操作。
influxDB和关系数据库(如:MySQL)区别:
influxDB | 传统数据库概念 | |
database | 数据库 | |
measurement | 数据库中的表 | |
points | time | 每行记录都有一列time,主索引,记录时间戳,单位纳秒 |
fields | 普通列,key-value结构,value数据支持多种数据类型(float、integer、string、boolean) | |
tags | 索引列,key-value结构,value数据类型只支持string | |
Retention policy | 数据保留策略,可以定义数据保留的时长,每个数据库可以有多个数据保留策略,但只能有一个默认策略 |
fields和tags的key严格区分大小写
msg.payload #如果数据类型是string|number|boolean,则msg.payload将作为单独的值写入指定的measurement中,此时没有fields和tags #如果是一个包含了多个属性的对象,那么将按fields写入到measurement中 #如果是一个包含了2个对象的数组,那么第一个对象作为fields写入,第二个对象作为tags写入 #如果是一个包含了多个数组的数组,那么将写入多条数据
msg.measurement #如果未在节点中配置measurement,那么需在发送的数据中携带msg.measurement属性来指定measurement |
#无输出口 功能 版本:本地influxDB版本1.6,请选择1.x HOST:127.0.0.1 Port:8086 Database:自定义 用户名:默认为空 密码:默认为空
Measurement:自定义 |
1. 如果msg.payload数据类型是string|number|boolean
msg.payload数据类型是string,存储的内容为"myvalue",多次点击注入将数据写入数据库。然后查询数据库,观察数据存储情况:只有time和value两个字段:
2. 如果msg.payload是一个包含了多个属性的对象
msg.payload是一个包含了多个属性的对象{"T":32,"H":54},T是温度,H是湿度。点击注入一次将数据写入数据库。然后查询数据库,观察数据存储情况:每条数据多了T和H两个KEY,之前已经存在的数据没有值。新增的T和H都属于fields,不建议使用索引。
3. 如果msg.payload是一个包含了2个对象的数组
msg.payload是一个包含了2个对象的数组[{"T":32,"H":54},{"model":"IOTRouter"}],第一个对象是fields,第二个对象是tags。点击注入一次将数据写入数据库。然后查询数据库,观察数据存储情况:
4. 如果msg.payload是一个包含了多个数组的数组
msg.payload是一个包含了多个数组的数组[[{"T":32,"H":54},{"model":"EG8000"}],[{"T":32,"H":54},{"model":"EG8100"}],[{"T":32,"H":54},{"model":"EG8200"}]],简单理解为一次注入多个示例3,即一次性写入多条数据。点击注入一次将数据写入数据库。然后查询数据库,观察数据存储情况:
源码/原文:https://iotrouter.yuque.com/zn3vdn/eg8000/mipo7daumu9ekxw5