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

2022-06-30

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

 

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

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

 

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是版本号,可以通过修改这个版本号来下载你所需要的具体版本文件。

 

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

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

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

 

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

 

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

 

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

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

 

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

 

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

 

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

 

10、选择快速开始

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

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

 

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

 

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

 

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

 

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

 

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

 

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

 

有关最终的代码:

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】进行获取