博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
InfluxDB 2.0 之Flux语法篇
阅读量:4033 次
发布时间:2019-05-24

本文共 1713 字,大约阅读时间需要 5 分钟。

由于项目 IoTSharp 需要支持 InfluxDB  , 因此进行了初步尝试, 虽然 Flux 语法初次学习, 但查询语句却似曾相识, 如果改一下 标点符号, 你会完全认为他是 C#的拉姆达表达式, 

首先看一下写入数据:

using (var writeApi = influxDBClient.GetWriteApi())            {                //                // Write by Point                //                var point = PointData.Measurement("temperature")                    .Tag("location", "west")                    .Field("value", 55D)                    .Timestamp(DateTime.UtcNow.AddSeconds(-10), WritePrecision.Ns);                                writeApi.WritePoint("bucket_name", "org_id", point);                                //                // Write by LineProtocol                //                writeApi.WriteRecord("bucket_name", "org_id", WritePrecision.Ns, "temperature,location=north value=60.0");                                //                // Write by POCO                //                var temperature = new Temperature {Location = "south", Value = 62D, Time = DateTime.UtcNow};                writeApi.WriteMeasurement("bucket_name", "org_id", WritePrecision.Ns, temperature);            }

写入数据看起来类似于 1.0 但是 增加了 bucket 和org这些信息。 

新版本的查询则更有意思:

from(bucket: "iotsharp-bucket")  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)  |> filter(fn: (r) => r["_measurement"] == "TelemetryData")  |> filter(fn: (r) => r["DeviceId"] == "a649a429-e82c-406b-8b8e-a3ba48c868fb")  |> yield()

_measurement 相当于表名  

DeviceId 其实类似 涛思时序数据库中的 tags 字段, 

同时 , 也有类似group之类的语句, 比如

|> group(columns: [""_field""])

如果你想只要 年龄或者 用户名之类的字段 可以使用 类似下面的用法

  |> filter(fn: (r) => r["_field"] == "age" or r["_field"] == "username" ) 

欲了解更多C#中访问 InfluxDB 2.0 的方法, 可以参考我们的代码:

https://gitee.com/IoTSharp/IoTSharp/blob/master/IoTSharp/Storage/InfluxDBStorage.cs 

转载地址:http://cpkdi.baihongyu.com/

你可能感兴趣的文章
自己动手写GC
查看>>
Java 8新特性终极指南
查看>>
logback高级特性使用(二) 自定义Pattern模板
查看>>
JVM并发机制探讨—内存模型、内存可见性和指令重排序
查看>>
可扩展、高可用服务网络设计方案
查看>>
如何构建高扩展性网站
查看>>
微服务架构的设计模式
查看>>
持续可用与CAP理论 – 一个系统开发者的观点
查看>>
nginx+tomcat+memcached (msm)实现 session同步复制
查看>>
c++字符数组和字符指针区别以及str***函数
查看>>
c++类的操作符重载注意事项
查看>>
c++模板与泛型编程
查看>>
STL::deque以及由其实现的queue和stack
查看>>
WAV文件解析
查看>>
DAC输出音乐2-解决pu pu 声
查看>>
WPF中PATH使用AI导出SVG的方法
查看>>
WPF UI&控件免费开源库
查看>>
QT打开项目提示no valid settings file could be found
查看>>
Win10+VS+ESP32环境搭建
查看>>
Ubuntu+win10远程桌面
查看>>