【influxDB】学习笔记
InfluxDB行协议(Line Protocol)
measurement(测量名称)
Tag Set(标签集)
Field Set(字段集):可指定类型,float, int, Boolean, timestamp, 注释#
TimeStamp(时间戳)
e.g. parking, name=0 num=50 timeStamp(可省略,当前时间)
parking num=50
Prometheus数据格式:
open Metris数据格式
如何查询? 双索引设计,指定时间范围--》 设置measurement + 设置tag
时间线膨胀:枚举--有限的数据
算术表达式: 加减乘除
谓词表达式: == <= >= and or not =~ [匹配标识符:以xx开头 或 以xx结尾],例如 "abc" =~ /^a/
控制语句:三元运算符
嵌套:
转化为bool:
打印字节序列:bytes序列化
duration和time
duration( ):将某个字符串/整型(1纳秒,1秒=10^9纳秒)等转化为时间
正则表达式匹配:a是一个字符串,b 将字符串转化为一个正则表达式【regexp.compile】,匹配c中是否含有正则表达式b
````````
类型转化:int(v: 12.5),截断
整数int -- 无符号整数uint
浮点数float:正无穷a = float(v: “+Inf”) 非数字a = float(v: “Nan”)
复合数据类型(一):记录Record
类似于json数据,b = {"name":"tony", age:18, "x,y":"20,40"}
返回结果即为Record
访问Record中的属性:禁止使用变量对属性进行访问
a=b.name
a=b[“name”]
判断Record是否相等,依次判断每个字段是否一致,不用管字段的排列顺序
拓展with:用b生成c,如果有则替换,无则增加
嵌套的Record:
复合数据类型(二):字典:[ ],字典中能够使用变量对属性访问
字典相关操作dict
插入insert,删除remove,取值get,从列表中创建一个字典fromList
复合数据类型(三):数组Array
a = ["a","b","c","d"]
类型相同,泛型相同 record1 {name: string, age: int} 不等于 record2 {name:string}
数组的比较:不仅内容需要相同,顺序也需要相同
相关操作:len, contains, arrays.from(rows: [{ }])
定义函数
使用一个代码块{ },必须要有return
表 -- 表流 -- 序列
measurement + tag标签集 + field字段名 🡪 确定一个序列
car,code=01 rate=30
car,code=01 temp=26
默认是按照字段名进行分组,, _field
自定义管道函数
table<- 表流,表示一个输入
传入自定义参数
查询和性能分析:使用profiler分析性能
set(key: “hello”, value: ”world”):字段名hello,值为world