InfluxDB和Grafana实现传感器数据的存储和可视化

时间:2022-07-25
本文章向大家介绍InfluxDB和Grafana实现传感器数据的存储和可视化,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

InfluxDB介绍

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

物联网应用

可以将物联网传感器数据保存在InfluxDB中,利用InfluxDB高性能地查询与存储时序型数据的优点,达到对传感器实时监控的目的。对于之前未使用InfluxDB的历史数据,转存到InfluxDB中。

下面例子历史数据按照日期存储在不同的pkl文件中,转存代码如下:

# -*- coding:utf-8 -*-

import pandas as pd
import os
from influxdb import  InfluxDBClient


def getPoint(x):
	result={'tags':{'DevID': x['DevID']}, 'fields':{'DevData': x['DevData'],  'voltage': x['voltage'] },'time': x['RecDateTime']}
	result['measurement']='monitor'
	return result

baseDir='E:/t'
pkls=os.listdir(baseDir)

client=InfluxDBClient()
client.switch_database('monitor')


for pkl in pkls[1:]:
    
    df=pd.read_pickle(os.path.join(baseDir,pkl))
    size=df.shape[0]
    index=0
    while(index< size):
        print(index,index+100)
        points=df[index:index+100].apply(getPoint,axis=1).to_list()
        client.write_points(points)
        print(points)
        index=index+100

使用Grafana来可视化InfluxDB中的时间序列数据。