博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
influx 操作_Matlab操作InfluxDB数据库
阅读量:6503 次
发布时间:2019-06-24

本文共 3080 字,大约阅读时间需要 10 分钟。

InfluxDB是一个基于Go语言开发的开源时序数据库,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据、IoT行业的实时数据等场景。

这里介绍Matlab如何操作InfluxDB。

1、下载InfluxDB

官网地址:https://portal.influxdata.com/downloads/(同时下载Chronograf,后面介绍使用方法)

469c3f0b81a67d102c04c83fa55899b2.png

下载后无需安装,直接解压到合适位置:

95424e2807a9525c4ffdf25a99c54625.png

其中influxd.exe为服务端,influx.exe为客户端。

2、InfluxDB简单使用

命令行分别打开服务端和客户端:

4d69bacecabbf9f25a4f3718e5fe2408.png

influxdb的数据结构分3层:

  • database:数据库;
  • measurement:数据库中的表;
  • points:表里的一行数据。

客户端的常用操作如下:

# 显示所有数据库show databases# 创建数据库create database test# 删除数据库drop database test# 使用数据库use test# 显示表,需要先use数据库show measurements# 插入数据insert devops-idc-sz,host=server01 cpu=23.1,mem=0.63 # 显示表里所有tag keysshow tag keys# 显示表里所有field keysshow field keys# 显示seriesshow series from devops-idc-sz# 查询数据select * from devops-idc-sz# 删除一行数据delete from devops-idc-sz where "host"='server01' and time=1567158293s# 删除时序数据序列drop series from devops-idc-sz where "host"='server01'# 删除表drop measurement devops-idc-sz# 改变时间显示格式precision rfc3339

其中,插入操作详细参数如下:

insert 
[,
=
...]
=
[,
=
...] [unix-nano-timestamp]

measurement为表名,后跟tag键值对,再跟field键值对,最后可以指定时间。

InfluxDB的详细使用方法可以看网上博客介绍。

3、使用Matlab操作InfluxDB

先下载接口工具:

EnricSala/influxdb-matlab​github.com
fd0c3870427d7d97aaf6ec1d791b36c3.png

Github上详细介绍了接口的使用方法,这里只做简单测试。

先将接口文件夹添加到Matlab路径:

9ade045970eaa57d5c71f3d924df6286.png

测试插入数据:

%% 测试Influxdbclcclearclose all%% 连接URL = 'http://localhost:8086';USER = '';PASS = '';DATABASE = 'test';influxdb = InfluxDB(URL, USER, PASS, DATABASE);% 检查是否可以连接[ok, ping] = influxdb.ping();if ok    fprintf('连接成功!n');else    fprintf('连接失败!n');end% 显示数据库fprintf('已有数据库:n');disp(influxdb.databases())%% 插入% 使用数据库influxdb.use('test');% 准备数据N = 100;temperature = 30 + randn(N, 1)*5;humidity = 50 + randn(N, 1)*10;tim = datetime('now', 'TimeZone', 'local') - (1:N) / 24;% 写入数据series = Series('weather') ...    .tags('city', 'Shanghai', 'country', 'China') ...    .fields('temperature', temperature, 'humidity', humidity) ...    .time(tim);influxdb.writer() ...    .append(series) ...    .execute();

读取:

%% 测试Influxdbclcclearclose all%% 连接URL = 'http://localhost:8086';USER = '';PASS = '';DATABASE = 'test';influxdb = InfluxDB(URL, USER, PASS, DATABASE);% 检查是否可以连接[ok, ping] = influxdb.ping();if ok    fprintf('连接成功!n');else    fprintf('连接失败!n');end%% 查询influxdb.use('test');str = 'SELECT temperature, humidity FROM weather WHERE humidity > 30 LIMIT 100';result = influxdb.runQuery(str);% 显示信息names = result.names();weather = result.series('weather');fields = weather.fields();fprintf('表名:%sn', names{
1})fprintf('域名:%sn', fields{
1})% 显示数据if 1 time = weather.time('Europe/Paris'); temperature = weather.field('temperature'); humidity = weather.field('humidity'); figure subplot(211) plot(time, temperature) grid on title('temperature') subplot(212) plot(time, humidity) grid on title('humidity')else % 还可以以table格式获取 mytable = weather.table(); mytable = weather.timetable('Europe/Paris');end

数据显示如下

7d70ec65c8952ea319b5da4864f350ac.png

测试成功!

4、使用Web显示数据

如果插入的数据量巨大,读取显示并不方便。对此可以使用InfluxDB提供的工具Chronograf进行数据展示。

该工具下载后,解压并启动chronograf.exe,然后访问http://localhost:8888,按步骤连接数据库:

5e5f6a692f1f8003eb8e979e476ab973.png

按如下图形操作后,即可观察到数据

4f7ffb3998c3a4f5bc58b2da28e9679e.png

OK!Matlab数据库又添利器!

转载地址:http://wllyo.baihongyu.com/

你可能感兴趣的文章
Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务
查看>>
Python之递归函数
查看>>
小程序客服消息
查看>>
一个简单的Golang实现的HTTP Proxy
查看>>
配置openssh实现sftp远程文件上传
查看>>
Java9 新特性 详解
查看>>
杂项-模板
查看>>
sqlite多表关联update
查看>>
内联元素空隙问题
查看>>
python数据分析及展示(二)
查看>>
VS2008设置快捷键Ctrl+W关闭当前打开的文本编辑器窗口
查看>>
详解MySQL数据类型
查看>>
2018网易在线笔试题
查看>>
【laravel5.4】重定向带参数
查看>>
PHP array_walk() 函数
查看>>
java基础-数组的折半查找原理
查看>>
mybatis标签之——<trim>
查看>>
【laravel5.4】 Composer移除依赖
查看>>
第7章 高级分组
查看>>
常见错误及细小知识点锦集
查看>>