新闻中心

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

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

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

概述

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严格区分大小写

在插入新数据时,tags、fields和time之间用空格分隔

输入

msg.query

#查询语句,如果配置页面没有设定查询语句,必须使用该属性携带查询语句

输出

msg.payload

#查询结果

示例

1. 保留策略

创建保留策略:CREATE RETENTION POLICY "<policy_name>" ON "<database_name>" DURATION <duration> REPLICATION <replication_factor> [SHARD DURATION <shard_duration>]

<policy_name>:保留策略的名称

<database_name>:要应用保留策略的数据库名称

<duration>:数据的保留期限,例如1d表示一天

<replication_factor>:数据的复制因子,指定数据在集群中的副本数量

<shard_duration>:可选,如果要自定义分片持续时间,则可以指定分片的持续时间

例如:CREATE RETENTION POLICY "2_hours" ON "mydb" DURATION 2h REPLICATION 1 DEFAULT

 

修改保留策略:ALTER RETENTION POLICY "<policy_name>" ON "<database_name>" DURATION <duration> REPLICATION <replication_factor> [SHARD DURATION <shard_duration>]

例如:ALTER RETENTION POLICY "2_hours" ON "mydb" DURATION 4h DEFAULT


删除保留策略:DROP RETENTION POLICY "<policy_name>" ON "<database_name>"

例如:DROP RETENTION POLICY "2_hours" ON "mydb"


查看保留策略:SHOW RETENTION POLICY ON "<database_name>"

例如:SHOW RETENTION POLICIES ON "mydb"

边缘计算网关/物联网平台/网关模块/纵横智控

源码:见文末

2. 常用指令

创建数据库:create database myTestDB

删除数据库:drop database myTestDB

查看所有的表:show measurements

创建表:influxDB中没有显式的新建表的语句,写入数据即建立新表,详见写时序数据库

删除表:drop measurement tableTset

查看某个表的数据:select * from tableTset

查看所有的tag:show tag keys from tableTset

查看所有的field:show field keys from tableTset

条件查询:select * from tableTset WHERE model = 'IOTRouter'

时间查询:select * from tableTset WHERE time > now() - 5m

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

 

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


热门产品