nodejs 简单使用InfluxDB 时序数据库

本文介绍InfluxDB时序数据库的安装、使用及与Node.js的集成方法。探讨了InfluxDB作为资源数据监控存储解决方案的潜力,通过实际操作展示了数据插入与查询流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

我之前的节点数据是全都存到mongoDB中的。偶然的机会,发现了InfluxDB这种时序数据库。于是花了点时间简单使用一下,看看是否能替换mongoDB存储历史数据。

InfluxDB简介

InfluxDB是一个开源时序数据库。适合处理分析资源数据监控相关数据。

docs.influxdata.com/influxdb/v1…

安装

目前最新版本为v1.6。

安装InfluxDB的方式很简单(Ubuntu)

curl -sL <https://repos.influxdata.com/influxdb.key> | sudo apt-key add -
source /etc/lsb-release
echo "deb <https://repos.influxdata.com/${DISTRIB_ID,,}> ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt-get update && sudo apt-get install influxdb
sudo service influxdb start
复制代码

完成。?

然后就可以在命令行里输入influx愉快的玩耍了。

使用命令行创建一些数据

   create database 'mydb'
   use mydb
   insert test,tag1=111,tag2=222 field1=111111,field2=222222
复制代码

然后就可以查询数据。由于是新手,当然是使用工具啦。

以前的版本自带一个web管理界面。现在的版本没有了~

附上可视化工具一枚github.com/CymaticLabs…

插入成功?可以看到里面除了我们自己加的两个tag,两个field,还包括一个自动添加的time。毕竟是时序数据库嘛!

除了使用InfluxDBStudio以外,还可以使用另一个工具 Grafana。grafana.com 感兴趣的可以自己去查查。嗯,很炫。

Nodejs使用

npm 包 www.npmjs.com/package/inf…

安装

    npm install --save influx@next
复制代码

第一步 插入数据

const Influx = require('influx'); //导包
    // 定义数据库连接和数据格式,创建client
    const client = new Influx.InfluxDB({
      database: 'mydb',
      username: 'root',
      password: 'root',
      hosts: [{ host: 'xx.xx.xx.xxx' }],
      schema: [
        {
          measurement: 'test', //类似于数据表的概念
          fields: { //数据表的字段,定义类型,FLOAT/INTEGER/STRING/BOOLEAN
            field1:Influx.FieldType.INTEGER,
            field2:Influx.FieldType.INTEGER,
          }, // tag 也是里面的字段,是自带索引光环。查询速度杠杠的。
          tags: ['tag1','tag2']
        }
      ]
    });
    // 插入数据
    client.writePoints([
            {
                measurement: 'test',
                fields: {
                    field1:1231123,
                    field2:44233,
                },
                tags: {
                    tag1:14233,
                    tag2:41122
                }
              }
            ])

复制代码

第二步 查询数据

const Influx = require('influx');
// 和上边一样。
const client = new Influx.InfluxDB({
  database: 'mydb',
  username: 'root',
  password: 'root',
  hosts: [{ host: 'xx.xx.xx.xxx' }],
  schema: [
    {
      measurement: 'test', //类似于数据表的概念
      fields: { //数据表的字段,定义类型,FLOAT/INTEGER/STRING/BOOLEAN
            field1:Influx.FieldType.INTEGER,
            field2:Influx.FieldType.INTEGER,
      }, // tag 也是里面的字段,是自带索引光环。查询速度杠杠的。
      tags: ['tag1','tag2']
    }
  ]
});
// 获取5分钟内的数据
// 至于Influx的查询语法,据说和mysql有点类似。还没有具体研究。现在就简单查一个吧
client
  .query(
    `
    SELECT * FROM "test" WHERE time > now() - 5m
  `
  )
  .then(res => {
    console.log(res); //输出一个数组。
  });
复制代码

总结

到目前为止,已经基本满足项目需求。接下来就是各种花式查询而已。

各种链接?

转载于:https://juejin.im/post/5bc9c4acf265da0aac7013d0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值