C#使用時(shí)序數(shù)據(jù)庫InfluxDB的教程詳解
一、安裝
https://docs.influxdata.com/influxdb/v2/install/?t=Windows

解壓后使用cmd運(yùn)行

訪問 localhost:8086
配置
第一次登入會(huì)初始化

配置登入賬號(hào)

保存TOKEN
這個(gè)TOKEN用于后期代碼鏈接訪問數(shù)據(jù)庫,忘記了只能刪除重新生成

點(diǎn)擊QUCK START進(jìn)入管理頁面


默認(rèn)配置文件
windows:在用戶文件夾下 C:\Users\Administrator.influxdbv2linux: /etc/influxdb/influxdb.conf
二、C#調(diào)用
Load Data>Sources 選擇c# 查看配置示例

創(chuàng)建一個(gè)控制臺(tái)程序
安裝InfluxDB客戶端

創(chuàng)建鏈接
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);
}
}
}
寫入數(shù)據(jù)

//方式一、使用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);
}
//方式三、使用實(shí)體類
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)) //可以添加多個(gè)字段
.Field("memory_percent",randon.Next(0,10))
.Timestamp(DateTime.UtcNow, WritePrecision.Ns);
writeApi.WritePoint(point, bucket, org);
Thread.Sleep(2000);
}
}
}
在管理頁面查看數(shù)據(jù)


到此這篇關(guān)于C#使用時(shí)序數(shù)據(jù)庫InfluxDB的教程詳解的文章就介紹到這了,更多相關(guān)C# InfluxDB內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#通過rabbitmq實(shí)現(xiàn)定時(shí)任務(wù)(延時(shí)隊(duì)列)
工作中經(jīng)常會(huì)有定時(shí)任務(wù)的需求,常見的做法可以使用Timer、Quartz、Hangfire等組件,本文使用C#通過rabbitmq實(shí)現(xiàn)定時(shí)任務(wù)(延時(shí)隊(duì)列),感興趣的可以了解一下2021-05-05
C#影院售票系統(tǒng)畢業(yè)設(shè)計(jì)(4)
這篇文章主要介紹了C#影院售票系統(tǒng)畢業(yè)設(shè)計(jì),學(xué)習(xí)內(nèi)容是總結(jié)銷售信息的保存以及加載銷售信息,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-11-11
c# AES字節(jié)數(shù)組加密解密流程及代碼實(shí)現(xiàn)
這篇文章主要介紹了c# AES字節(jié)數(shù)組加密解密流程及代碼實(shí)現(xiàn),幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2020-11-11
c# 基于GMap.NET實(shí)現(xiàn)電子圍欄功能(WPF版)
這篇文章主要介紹了c# 基于GMap.NET實(shí)現(xiàn)電子圍欄功能(WPF版),幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03

