influxdb的基本概念
- influxdb的介绍
InfluxDB是领先的开源时间序列数据库(TSDB)。
InfluxDB使用Go语言编写,适用于各类时间序列数据的高效存储与检索。
InfluxDB的特点:
- 每条记录都必须有时间戳字段(不设置会自动生成,类似关系型数据库的主键)
- 提供海量数据的写入和读取能力
- 提供针对时序的聚合函数,方便查询数据的聚合
- 它天生就是为特定场景业务而生的;主要针对那些写多读少、大量数据写入需求、按时间维度进行聚合查询的业务场景,比如:数据监控
- 配合Telegraf服务(Telegraf可以监控系统CPU、内存、网络等数据)
- 配合Grafana服务(数据展现的图像界面,将influxdb中的数据可视化)
- influxdb中的database、measurement、point介绍
database:数据库,等同MySQL等关系型数据库中的数据库database
measurement:数据表,相当于关系型数据库中的表table
point:数据点,表示单条数据记录,相当于关系型数据库中的一行数据row
retention policy(保留策略):单个measurement可以有不同的retention policy,measurement默认有一个autogen的保留策略。influxdb没有删除数据操作,规定数据的保留时间达到清除数据的目的
- point的介绍
point由时间戳(time)、数据(field)、标签(tags)三类字段组成
time:代表每条数据的时间字段,是measurement中的数据主键,因此time字段具有索引属性。一条point只能有一个time
field:代表各种数据的字段,例如气温、压力、股价等。field字段没有索引属性,一条point可以包括多个field
tag:代表各类非数据字段,例如设备编码、地区、姓名等。tag字段有索引属性,一条point可以包括多个tag(tag只能为字符串类型)
- 举例说明
两位科学家langstroth和perpetua于2015年8月18日在两个不同位置进行一项计算蝴蝶和蜜蜂数量的统计实验。假设他们使用同一个database,并使用同一个名为census的measurement录入数据。以下表示某一个point的样例数据:
其中time为time字段。butterflies和honeybees分别代表蝴蝶和蜜蜂的数量,因此他们是field字段。location和scientist代表科学家的位置和名字,因此他们是tag字段。