购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 InfluxDB的特性

作为一个开源系统,InfluxDB究竟有什么魅力吸引了如此多的用户,从而在时序型数据库DB-Engines Ranking上排名第一呢?

1.3.1 InfluxDB的特点

InfluxDB是支持时序数据高效读写、压缩存储、实时计算能力的数据库服务,除了具有成本优势的高性能读、高性能写、高存储率,InfluxDB还具有如下特点:

·无系统环境依赖,部署方便。

·无模式(schema-less)的数据模型,灵活强大。

·原生HTTP管理接口,免插件配置和免第三方依赖。

·强大的类SQL查询语句,学习成本低,上手快。

·丰富的权限管理功能:精细到“表”级别。

·丰富的时效管理功能:自动删除过期数据,自定义删除指标数据。

·低成本存储,采样时序数据,压缩存储。

·丰富的聚合函数,支持AVG、SUM、MAX、MIN等聚合函数。

1.3.2 核心概念

InfluxDB实现了类SQL的接口,尽管与传统关系型数据库(如MySQL)语法相似,但InfluxDB在语义体系上有些差别,接下来将以一条CPU利用率的时序数据为例介绍相关的核心概念,如代码清单1-3所示。

代码清单1-3 一条CPU利率的时序数据


> insert cpu_usage,host=server01,location=cn-sz user=23.0,system=57.0
> select * from cpu_usage
name: cpu_usage
time             host     location system user
----             ----     -------- ------ ----
1557834774258860710 server01 cn-sz    55     25
>

·时间(Time):如代码清单1-3中的“1557834774258860710”,表示数据生成时的时间戳,与MySQL不同的是,在InfluxDB中,时间几乎可以看作主键的代名词。

·表(Measurement):如代码清单1-3中的“cpu_usage”,表示一组有关联的时序数据,类似于MySQL中表(Table)的概念。

·标签(Tag):如代码清单1-3中的“host=server01”和“location=cn-sz”,用于创建索引,提升查询性能,一般存放的是标示数据点来源的属性信息,在代码清单1-3中,host和location分别是表中的两个标签键,对应的标签值分别为server01和cn-sz。

·指标(Field):如代码清单1-3中的“user=23.0”和“system=57.0”,一般存放的是具体的时序数据,即随着时间戳的变化而变化的数据,与标签不同的是,未对指标数据创建索引,在代码清单1-3中,user和system分别是表中的两个指标键,对应的指标值分别为23.0和57.0。

·时序数据记录(Point):如代码清单1-3中的“1557834774258860710 server01 cn-sz 5525”,表示一条具体的时序数据记录,由时序(Series)和时间戳(Timestamp)唯一标识,类似于MySQL中的一行记录。

·保留策略(Retention Policy):定义InfluxDB的数据保留时长和数据存储的副本数,通过设置合理的保存时间(Duration)和副本数(Replication),在提升数据存储可用性的同时,避免数据爆炸。

·时间序列线(Series):表示表名、保留策略、标签集都相同的一组数据。 mXdEJC13NiE/ggNxKHMxMlDDOFb8UhHufiRYdJygSkqH7z/jodBeXoDhSylmuA4E

点击中间区域
呼出菜单
上一章
目录
下一章
×