InfluxDB 时序数据库学习笔记(V.2.4) -- InfluxDB笔记一

1. 存储与Mysql的区别

Mysql使用b+tree存储,写入性能受数据合并、磁盘分布影响;

InfluxDB使用LMS,写入性能更高,数据从内存合并到磁盘时,部分数据属性为只读,在内存中与写入部分分开。

InfluxDB 时序数据库学习笔记(V.2.4) -- InfluxDB笔记一_第1张图片 标题 InfluxDB 时序数据库学习笔记(V.2.4) -- InfluxDB笔记一_第2张图片 LSM

InfluxDB 时序数据库学习笔记(V.2.4) -- InfluxDB笔记一_第3张图片

 2. TICK技术栈(用于支持常见的业务应用场景)

T:Telegraf -数据采集组件,收集&发送数据到InfluxDB
I: InfluxDB -存储数据&发送数据到Chronograf
C: Chronograf -总的用户界面,起到总的管理功能(查询、聚合操作,通过Web UI、图表展示)
K:Kapacitor 后台处理报警信息

(V1.x使用InfluxQL语言,V2.x推出FLUX语言)

(单节点版开源免费,集群版是收费企业版。InfluxDB Cluster-非官方开源)

(host1:8086/)

3. Sources数据采集方式

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(无代码的方式,通过改配置文件)

4.Buckets存储桶

可以定时删除,0s表示never

5. InfluxDB行协议

选择存储桶(相当于数据库)后,输入格式为:

parking num=50 1691129530000

measurement (测量名称) parking 相当于表名

Tag Set (标签集) 相当于索引,为枚举类型,可能性过多会影响性能,与measurement用逗号分隔;标签集可以省略

parking,name=0 num=501691129530000

Field Set (字段集) num 相当于字段名,不可省略,至少一个

Timestamp (时间戳) 可以省略,为空的时候自动补填为插入时的时间戳;注意选择相同级别的时间戳(秒级、毫秒级、纳秒级)

InfluxDB 时序数据库学习笔记(V.2.4) -- InfluxDB笔记一_第4张图片

时序库的双索引结构 

测量名称+标签集 组成维度索引

时间戳是有序的时间索引

由空格分开

 6. 数据类型

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

 7.Telegraf

(是一个用Go语言编写的代理程序,可收集系统和服务的统计数据,并写入到InfluxDB数据库。内存占用小,通过插件系统可轻松添加支持其他服务的扩展。)

7.1. Prometheus

(通过配置路径,可以同时拉取多个路径的数据,都是主动的方式,不接收数据)

因为Prometheus的热度,所以InfluxDB兼容了对其格式数据的拉取。

InfluxDB 时序数据库学习笔记(V.2.4) -- InfluxDB笔记一_第5张图片

http://host1:9100/metrics

7.2. Prometheus的格式(一行只能一个值)

InfluxDB 时序数据库学习笔记(V.2.4) -- InfluxDB笔记一_第6张图片

(试图让这种格式成为一种暴露数据的标准,参见开源项目 OpenMetrics) 

 8. Scraper

通过Create Scraper配置上方的url,然后从url抓取数据(间隔10s,无法修改设置;若想设置间隔时间,可改用Telegraf抓取)

9. InfluxDB的数据展示

InfluxDB 时序数据库学习笔记(V.2.4) -- InfluxDB笔记一_第7张图片

 10. Data Explorer

通过操作页面下半部分的查询构造器来生成查询脚本

11. Notebooks

可以创建空白notebook:查询->可视化->报警

可以创建报警任务

可以创建定时任务

可以编写Flux脚本


FLUX

1. 基础概率理解

1.1 语序和MySQL不一样,像净水一样通过管道一层层过滤

 1.2 不同版本的FLuxDB语法也不太一样

你可能感兴趣的:(InfluxDB,时序数据库,学习,笔记)