新闻中心

PRESS CENTER 纵横智控
你的位置: 首页 新闻 技术应用
纵横智控

网关存储节点之如何写时序数据库?-EG网关

2025-09-15 11:00:17 阅读: 发布人:纵横智控

概述

EG8200边缘计算网关插入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两个字段:

网关存储节点之如何写时序数据库?-EG网关

2. 如果msg.payload是一个包含了多个属性的对象

msg.payload是一个包含了多个属性的对象{"T":32,"H":54},T是温度,H是湿度。点击注入一次将数据写入数据库。然后查询数据库,观察数据存储情况:每条数据多了T和H两个KEY,之前已经存在的数据没有值。新增的T和H都属于fields,不建议使用索引。

网关存储节点之如何写时序数据库?-EG网关

3. 如果msg.payload是一个包含了2个对象的数组

msg.payload是一个包含了2个对象的数组[{"T":32,"H":54},{"model":"IOTRouter"}],第一个对象是fields,第二个对象是tags。点击注入一次将数据写入数据库。然后查询数据库,观察数据存储情况:

网关存储节点之如何写时序数据库?-EG网关

4. 如果msg.payload是一个包含了多个数组的数组

msg.payload是一个包含了多个数组的数组[[{"T":32,"H":54},{"model":"EG8000"}],[{"T":32,"H":54},{"model":"EG8100"}],[{"T":32,"H":54},{"model":"EG8200"}]],简单理解为一次注入多个示例3,即一次性写入多条数据。点击注入一次将数据写入数据库。然后查询数据库,观察数据存储情况:

网关存储节点之如何写时序数据库?-EG网关

源码/原文:https://iotrouter.yuque.com/zn3vdn/eg8000/mipo7daumu9ekxw5

热门产品