C#使用时序数据库InfluxDB的教程详解

 更新时间:2023年11月15日 09:47:50   作者:qibao16  
InfluxDB是一个开源的时序数据库,可以自动处理时间序列数据,这篇文章主要为大家详细介绍了C#如何使用InfluxDB,感兴趣的小伙伴可以跟随小编一起了解下

一、安装

https://docs.influxdata.com/influxdb/v2/install/?t=Windows

解压后使用cmd运行

访问 localhost:8086

配置

第一次登入会初始化

配置登入账号

保存TOKEN

这个TOKEN用于后期代码链接访问数据库,忘记了只能删除重新生成

点击QUCK START进入管理页面

默认配置文件

windows:在用户文件夹下 C:\Users\Administrator.influxdbv2linux: /etc/influxdb/influxdb.conf

二、C#调用

Load Data>Sources 选择c# 查看配置示例

创建一个控制台程序

安装InfluxDB客户端

创建链接

using System.Linq;
using System.Threading.Tasks;
using InfluxDB.Client;
using InfluxDB.Client.Api.Domain;
using InfluxDB.Client.Core;
using InfluxDB.Client.Writes;

namespace Examples
{
  public class Examples
  {
    public static async Task Main(string[] args)
    {
      // You can generate an API token from the "API Tokens Tab" in the UI
      var token = Environment.GetEnvironmentVariable("INFLUX_TOKEN")!;
      const string bucket = "Test";
      const string org = "CC";

      using var client = new InfluxDBClient("http://127.0.0.1:8086", token);
    }
  }
}

写入数据

//方式一、使用WriteRecord
const string data = "mem,host=host1 used_percent=23.43234543";
using (var writeApi = client.GetWriteApi())
{
  writeApi.WriteRecord(data,bucket, org, WritePrecision.Ns );
}

//方式二、使用WritePoint
var point = PointData
  .Measurement("mem")
  .Tag("host", "host1")
  .Field("used_percent", 23.43234543)
  .Timestamp(DateTime.UtcNow, WritePrecision.Ns);

using (var writeApi = client.GetWriteApi())
{
  writeApi.WritePoint(point,bucket, org);
}

//方式三、使用实体类
var mem = new Mem { Host = "host1", UsedPercent = 23.43234543, Time = DateTime.UtcNow };

using (var writeApi = client.GetWriteApi())
{
  writeApi.WriteMeasurement( mem,bucket, org, WritePrecision.Ns);
}


[Measurement("mem")]
private class Mem
{
  [Column("host", IsTag = true)] public string Host { get; set; }
  [Column("used_percent")] public double? UsedPercent { get; set; }
  [Column(IsTimestamp = true)] public DateTime Time { get; set; }
}

最终测试代码

// See https://aka.ms/new-console-template for more information
using InfluxDB.Client;
using InfluxDB.Client.Api.Domain;
using InfluxDB.Client.Writes;

Console.WriteLine("Hello, World!");
Environment.SetEnvironmentVariable("INFLUX_TOKEN", "O9I2Kpeg...kLPSrQLWhTiJCQPWy6HJFjN9hK33UoLnG34vfFdqZ5KmoDLS-kkw==");

var token = Environment.GetEnvironmentVariable("INFLUX_TOKEN")!;
const string bucket = "Test";
const string org = "CC";

using (var client = new InfluxDBClient("http://localhost", token))
{
    using (var writeApi = client.GetWriteApi())
    {
       while (true)
        {
            var randon = new Random();
            var point = PointData
                           .Measurement("mem")
                           .Tag("host", "host1")
                           .Field("used_percent", randon.Next(10, 100)) //可以添加多个字段
                           .Field("memory_percent",randon.Next(0,10))
                           .Timestamp(DateTime.UtcNow, WritePrecision.Ns);

            writeApi.WritePoint(point, bucket, org);

            Thread.Sleep(2000);
        }
    }
}

在管理页面查看数据

到此这篇关于C#使用时序数据库InfluxDB的教程详解的文章就介绍到这了,更多相关C# InfluxDB内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#通过rabbitmq实现定时任务(延时队列)

    C#通过rabbitmq实现定时任务(延时队列)

    工作中经常会有定时任务的需求,常见的做法可以使用Timer、Quartz、Hangfire等组件,本文使用C#通过rabbitmq实现定时任务(延时队列),感兴趣的可以了解一下
    2021-05-05
  • C#影院售票系统毕业设计(4)

    C#影院售票系统毕业设计(4)

    这篇文章主要介绍了C#影院售票系统毕业设计,学习内容是总结销售信息的保存以及加载销售信息,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • c# AES字节数组加密解密流程及代码实现

    c# AES字节数组加密解密流程及代码实现

    这篇文章主要介绍了c# AES字节数组加密解密流程及代码实现,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-11-11
  • 如何在C#中使用注册表

    如何在C#中使用注册表

    这篇文章主要介绍了如何在C# 使用注册表,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-12-12
  • Unity屏幕雪花另类实现方式示例

    Unity屏幕雪花另类实现方式示例

    这篇文章主要介绍了Unity屏幕雪花另类实现方式示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • C#中is与As运算符号的使用详解

    C#中is与As运算符号的使用详解

    本篇文章是对C#中is与As运算符号的使用进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • c# 基于GMap.NET实现电子围栏功能(WPF版)

    c# 基于GMap.NET实现电子围栏功能(WPF版)

    这篇文章主要介绍了c# 基于GMap.NET实现电子围栏功能(WPF版),帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C#中this指针的用法示例

    C#中this指针的用法示例

    这篇文章主要介绍了C#中this指针的用法,对初学者而言是非常重要的概念,必须加以熟练掌握,需要的朋友可以参考下
    2014-08-08
  • OpenCvSharp图像的修改和保存以及掩膜操作

    OpenCvSharp图像的修改和保存以及掩膜操作

    这篇文章主要介绍了OpenCvSharp图像的修改和保存以及掩膜操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • C# 预处理器指令的用法

    C# 预处理器指令的用法

    本文主要介绍了C# 预处理器指令的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04

最新评论