前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2022年11月 influxDB数据库-.Net Core中的使用

【愚公系列】2022年11月 influxDB数据库-.Net Core中的使用

作者头像
愚公搬代码
发布2022-11-16 15:36:07
1K0
发布2022-11-16 15:36:07
举报
文章被收录于专栏:历史专栏

文章目录

前言

一、.Net Core中的使用

1.下载InfluxDB,并配置

2.执行InfluxDB

2 .Net Core中的使用InfluxDB

2.1 写入数据

2.1 查询数据

总结

前言

InfluxDB是一个开源的时间序列数据库。它在单个二进制文件中拥有时间序列平台所需的一切 - 多租户时间序列数据库、UI 和仪表板工具、后台处理和监视代理。所有这些都使部署和设置变得轻而易举且更易于保护。

InfluxDB平台还包括API,工具和生态系统,其中包括10个客户端和服务器库,Telegraf插件,与Grafana,Google Data Studio的可视化集成以及与Google Bigtable,BigQuery等的数据源集成。

influxDB的官网下载地址:https://portal.influxdata.com/downloads/

gitehub地址:https://github.com/influxdata/influxdb-client-csharp/tree/master/Client

一、.Net Core中的使用

1.下载InfluxDB,并配置

因为官网下载需要注册下面直接给出下载地址:https://dl.influxdata.com/influxdb/releases/influxdb2-2.5.1-windows-amd64.zip

2.执行InfluxDB

解压下载的文件夹在cmd中执行exe文件

在浏览器输入:http://127.0.0.1:8086/onboarding/

点击GET STARTED按钮来创建用户

选择快速开始

进入主页,可以看到它支持的客户端,包括C#,以及其他很多别的支持。说明还是比较强大了,支持的方案有很多,以及也可以支持从消息队列、系统日志、其他数据库等地方进行导入或写入数据。

找到API TOKENS选项,这里会生成用户的一个唯一token信息,用来写代码时候会用到。

我的Token如下:

代码语言:javascript
复制
5viT60tSrJuCQAWJ8HV1MRFuMnSgLPmZXNSUIT45zoMO3Htnr2SPgAXtK1x8MBhjkBlSHYjp66DvbWonUoQcpw==

2 .Net Core中的使用InfluxDB

引入nuget包 InfluxDB.Client

2.1 写入数据

代码语言:javascript
复制
using InfluxDB.Client;
using InfluxDB.Client.Api.Domain;
using InfluxDB.Client.Writes;

Console.WriteLine("Hello, World!"); 
const string token = "5viT60tSrJuCQAWJ8HV1MRFuMnSgLPmZXNSUIT45zoMO3Htnr2SPgAXtK1x8MBhjkBlSHYjp66DvbWonUoQcpw==";  // influxdb生成的token
const string org = "manager";//用户组
const string bucket = "test";//数据实例
// 生产环境下使用,可以使用单例来注册使用同一个客户端,减少创建次数
using (var client = InfluxDBClientFactory.Create("http://localhost:8086", token))  
{    
    using (var writeApi = client.GetWriteApi())
    {
        for (int i = 0; i <= 1000; i++)
        {
            var point = PointData.Measurement("mem")
                .Tag("host", "local")
                .Field("Field1", new Random().Next(0, 100))
                .Timestamp(DateTime.UtcNow, WritePrecision.Ns);

            writeApi.WritePoint(point, bucket, org);
            Thread.Sleep(10);
        }
    }
}

Console.WriteLine("Hello, World 2 !");

Console.ReadLine();

可视化面板里面,可以进行数据查询,以及数据可视化。Bucket就是咱们创建的数据库实例,mem就是对应上面的代码里面写的mem,可以当作是一个表,然后是一些标签、字段等。Field是字段,可以自己拓展其他字段等等。

2.1 查询数据

代码语言:javascript
复制
using InfluxDB.Client;

Console.WriteLine("Hello, World!");
const string Url = "http://localhost:8086";
const string Token = "5viT60tSrJuCQAWJ8HV1MRFuMnSgLPmZXNSUIT45zoMO3Htnr2SPgAXtK1x8MBhjkBlSHYjp66DvbWonUoQcpw==";  // influxdb生成的token
const string Org = "manager";//用户组
const string Bucket = "test";//数据实例
// 生产环境下使用,可以使用单例来注册使用同一个客户端,减少创建次数
var options = InfluxDBClientOptions.Builder
                .CreateNew()
                .Url(Url)
                .AuthenticateToken(Token)
                .Bucket(Bucket)
                .Org(Org)
                .Build();

using var client = InfluxDBClientFactory.Create(options);

Console.WriteLine("*** Query Points ***");

var query = "from(bucket: \"test\") |> range(start: 0)";

var tables = await client.GetQueryApi()
    .QueryAsync(query, "manager");

tables.ForEach(table =>
{
    table.Records.ForEach(record =>
    {
        if (record.GetMeasurement() == "mem")
        {
            Console.WriteLine(
                    $"{record.GetTime()} {record.GetMeasurement()}: {record.GetField()} {record.GetValue()}");
        }
    });
});

总结

时序数据库可以用于工业物联网环境下,特别是对设备数值进行监控,可以很直观看出每个时间区间的状态图、或者步行图等等。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档