华章科技什么是InfluxDB?跟其他数据库比有哪些优势?( 五 )



华章科技什么是InfluxDB?跟其他数据库比有哪些优势?
本文插图

03 InfluxDB的特性
作为一个开源系统 , InfluxDB究竟有什么魅力吸引了如此多的用户 , 从而在时序型数据库DB-Engines Ranking上排名第一呢?
1. InfluxDB的特点
InfluxDB是支持时序数据高效读写、压缩存储、实时计算能力的数据库服务 , 除了具有成本优势的高性能读、高性能写、高存储率 , InfluxDB还具有如下特点:
无系统环境依赖 , 部署方便 。
无模式(schema-less)的数据模型 , 灵活强大 。
原生HTTP管理接口 , 免插件配置和免第三方依赖 。
强大的类SQL查询语句 , 学习成本低 , 上手快 。
丰富的权限管理功能:精细到“表”级别 。
丰富的时效管理功能:自动删除过期数据 , 自定义删除指标数据 。
低成本存储 , 采样时序数据 , 压缩存储 。
丰富的聚合函数 , 支持AVG、SUM、MAX、MIN等聚合函数 。
2. 核心概念
InfluxDB实现了类SQL的接口 , 尽管与传统关系型数据库(如MySQL)语法相似 , 但InfluxDB在语义体系上有些差别 , 接下来将以一条CPU利用率的时序数据为例介绍相关的核心概念 , 如代码清单1-3所示 。 代码清单1-3 一条CPU利率的时序数据>insertcpu_usage,host=server01,location=cn-szuser=23.0,system=57.0>select*fromcpu_usagename:cpu_usagetimehostlocationsystemuser--------------------------1557834774258860710server01cn-sz5525>
时间(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 55 25” , 表示一条具体的时序数据记录 , 由时序(Series)和时间戳(Timestamp)唯一标识 , 类似于MySQL中的一行记录 。
保留策略(Retention Policy):定义InfluxDB的数据保留时长和数据存储的副本数 , 通过设置合理的保存时间(Duration) 和副本数(Replication) , 在提升数据存储可用性的同时 , 避免数据爆炸 。
时间序列线(Series):表示表名、保留策略、标签集都相同的一组数据 。 关于作者:韩健 , 资深架构师 , 现就职于腾讯 , 担任监控大数据平台技术负责人 , 曾先后担任创业公司CTO、Intel资深工程师 。 既对分布式系统、InfluxDB的架构设计和开发有深刻的理解 , 又在海量服务分布式组件架构设计、高性能架构设计、高质量代码编写等方面有深厚的积累 , 经验丰富 。
本文摘编自《InfluxDB原理与实战》 , 经出版方授权发布 。

华章科技什么是InfluxDB?跟其他数据库比有哪些优势?
本文插图

延伸阅读《InfluxDB原理与实战》
推荐语:InfluxDB技术专家基于DB-Engines排名TOP的时序数据库 , 打造千亿级大数据监控平台经验总结 。 包含9个企业级案例 , 100余示例 , 300余条命令和语法 。


推荐阅读