Mysql使用b+tree存储,写入性能受数据合并、磁盘分布影响;
InfluxDB使用LMS,写入性能更高,数据从内存合并到磁盘时,部分数据属性为只读,在内存中与写入部分分开。
标题 LSMT:Telegraf -数据采集组件,收集&发送数据到InfluxDB
I: InfluxDB -存储数据&发送数据到Chronograf
C: Chronograf -总的用户界面,起到总的管理功能(查询、聚合操作,通过Web UI、图表展示)
K:Kapacitor 后台处理报警信息
(V1.x使用InfluxQL语言,V2.x推出FLUX语言)
(单节点版开源免费,集群版是收费企业版。InfluxDB Cluster-非官方开源)
(host1:8086/)
3.1 文件上传(CSV Data、Flux Annotated CSV、Line Protocol-行协议)
3.2 各种编程语言的客户端库(Arduino、C#、GO、JAVA、js/node、Kotlin、PHP、Python、R、Ruby、Scala、Swift)
3.3 Telegraf Plugins(无代码的方式,通过改配置文件)
可以定时删除,0s表示never
选择存储桶(相当于数据库)后,输入格式为:
parking num=50 1691129530000
measurement (测量名称) parking 相当于表名
Tag Set (标签集) 相当于索引,为枚举类型,可能性过多会影响性能,与measurement用逗号分隔;标签集可以省略
parking,name=0 num=501691129530000
Field Set (字段集) num 相当于字段名,不可省略,至少一个
Timestamp (时间戳) 可以省略,为空的时候自动补填为插入时的时间戳;注意选择相同级别的时间戳(秒级、毫秒级、纳秒级)
时序库的双索引结构 :
测量名称+标签集 组成维度索引
时间戳是有序的时间索引
由空格分开
6.1 Float (浮点数) 默认的数据类型
6.2 Integer (整型) 有符号64位整数,尾部加i
UInteger (无符号整数) 尾部加u
-9223372036854775808i ~ 9223372036854775807i
0u ~ 18446744073709551615u
6.3 String (字符串) 长度小于64kb("this is a string")
6.4 Boolean (布尔值)
True t,T,True,TRUE
False f,F,False,FALSE
(是一个用Go语言编写的代理程序,可收集系统和服务的统计数据,并写入到InfluxDB数据库。内存占用小,通过插件系统可轻松添加支持其他服务的扩展。)
(通过配置路径,可以同时拉取多个路径的数据,都是主动的方式,不接收数据)
因为Prometheus的热度,所以InfluxDB兼容了对其格式数据的拉取。
http://host1:9100/metrics
(试图让这种格式成为一种暴露数据的标准,参见开源项目 OpenMetrics)
通过Create Scraper配置上方的url,然后从url抓取数据(间隔10s,无法修改设置;若想设置间隔时间,可改用Telegraf抓取)
通过操作页面下半部分的查询构造器来生成查询脚本
可以创建空白notebook:查询->可视化->报警
可以创建报警任务
可以创建定时任务
可以编写Flux脚本
1.1 语序和MySQL不一样,像净水一样通过管道一层层过滤
1.2 不同版本的FLuxDB语法也不太一样