3

【时序数据库InfluxDB】Windows环境下配置InfluxDB+数据可视化,以及使用 C#进行简单...

 1 year ago
source link: https://www.cnblogs.com/weskynet/p/16426297.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【时序数据库InfluxDB】Windows环境下配置InfluxDB+数据可视化,以及使用 C#进行简单操作的代码实例

前言:如题。直接上手撸,附带各种截图,就不做介绍了。

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

打开以后,如下图所示,可以选择版本号,以及平台。此处咱们选择windows平台。不过此处没有实际的可以下载的地方,着实比较过分,不过咱们可以另辟蹊径。

1995789-20220630093304626-1672545821.png

2、直接下载。具体地址如下,2.3.0是版本号:

https://dl.influxdata.com/influxdb/releases/influxdb2-2.3.0-windows-amd64.zip

链接说明:该链接是下载windows版本的influxDB的链接,其中 influxdb2-2.3.0-windows-amd64.zip 里面,2.3.0是版本号,可以通过修改这个版本号来下载你所需要的具体版本文件。

1995789-20220630102507972-1016885297.png

3、或者通过这个地址进行下载:

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

其中,/v2.1是版本号,把2.1改成2.3就可以下载2.3的版本了。此处仅做个实验,例如下载2.1版本。

1995789-20220630102911025-5233506.png

4、可以对比下真实的下载链接地址,与上面的2.3.0版本地址只差了一个版本号信息,其他都一样。

1995789-20220630103113361-547033261.png

5、此处使用2.3.0版本,解压以后进行使用。

1995789-20220630103205426-663319704.png

6、CMD到解压的根目录下,直接执行influxdb.exe文件(cmd命令执行,不会闪退,直接点有可能会一闪而过)

备注:也可以通过nssm工具进行部署成Windows服务,部署方法可以参考我的其他博客内容,有相关信息,此处不再重复写。

1995789-20220630104513005-1451222642.png

7、启动以后,在cmd窗口也可以看到默认端口号8086,所以在地址栏输入 htp://127.0.0.1:8086/onboarding/  就可以打开起始监控面板,然后进行一些初始化操作了。

1995789-20220630104708225-1132009029.png

8、打开初始页面,可以用来创建初始用户信息

1995789-20220630104846926-1914689363.png

9、例如,我此处创建一个用户 wesky,以及有关的组和实例,如图备注的信息。然后执行下一步(CONTINUE)

1995789-20220630105533604-32954253.png

10、选择快速开始

1995789-20220630105638107-1097624723.png

11、创建完成以后,进入到主页。

1995789-20220630105705813-539089093.png

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

1995789-20220630105845384-541827006.png

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

1995789-20220630110013497-1147552134.png

14、点击用户's Token,可以打开具体的token信息

1995789-20220630110227024-701539414.png

15、找到token信息,可以先拷贝下来备用。或者等下需要的时候,知道在这里寻找也可以。

1995789-20220630110307611-1258396913.png

16、接下来开始写个代码进行演示一下基础操作,当作入个门。创建一个控制台项目,叫InfluxDbTest

1995789-20220630110348284-1300906153.png

17、此处选择.net 6版本环境,当然,大佬们也可以选择其他环境,问题不大的。

1995789-20220630110516063-299014502.png

18、创建完成以后,引入nuget包 InfluxDB.Client

1995789-20220630110610843-39909442.png

19、写点代码测试一下(源码会附录在文末),此处先创建客户端,然后定义组织、以及实例(Bucket),然后通过写入一个数据进行进行测试(此处手抖了一下,我运行了两次,所以实际写入了两个数据)

备注:写入数据或者读写或者其他操作,也可以参考上面influxdb面板里面提供C#功能的案例里面,点击进去可以看到一些例子。

1995789-20220630110654005-163554890.png

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

1995789-20220630111010462-2093340723.png

21、写个循环,累加测试一下,改造一下代码,然后继续运行。

1995789-20220630111229016-1629301280.png

22、可以看到数据一直往上飘,因为值是累加的,所以效果和预期一致。

1995789-20220630111301162-925416993.png

23、来点刺激一点的测试,搞个随机数,可能效果会好玩一点。此处弄个写入0-100的随机数,然后间隔10msx写入一次。

1995789-20220630111356879-1003423527.png

24、让显示的按照10ms为单位进行显示,效果如图,数值都是随机的,所以走势就很花里胡哨了。

1995789-20220630111556700-1405535951.png

25、展示效果选择表格样式,如图,也是可以的。

1995789-20220630111658622-927556194.png

有关最终的代码:

using InfluxDB.Client;
using InfluxDB.Client.Api.Domain;
using InfluxDB.Client.Writes;

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

const string token = "mOGqO3m23KHOAnsByiEAS6rJGEZEl0iuhZNGn0QNbg_vs4P_Rqa9_eWmnuYb_ovS7dy2G19xA-SqR6RMlQ3iXw==";  // influxdb生成的token

const string org = "Organization";
const string bucket = "Bucket";


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();

以上就是该文章的全部内容,时序数据库可以用于工业物联网环境下,特别是对设备数值进行监控,可以很直观看出每个时间区间的状态图、或者步行图等等。欢迎大佬们自行去拓展更加风骚的玩法,此处仅用于入门教程。

如果对你有帮助,欢迎点赞、推荐、或留言。如果对.net 技术感兴趣或比较有想法,也欢迎点击下发QQ群链接加入群组,一起吹牛一起嗨。当然也可以扫下方二维码加我私人微信,我还可以拉你到微信群一起吹牛一起聊技术,也是可以的。如图没找到Q群和微信二维码,说明URL不是最原始的,可以点击原文链接【https://www.cnblogs.com/weskynet/p/16426297.html】进行获取

1995789-20220630113008374-462110546.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK