为什么腾讯QQ的大数据平台选择了InfluxDB数据库?( 五 )
本文插图
03 InfluxDB的特性
作为一个开源系统 , InfluxDB究竟有什么魅力吸引了如此多的用户 , 从而在时序型数据库DB-Engines Ranking上排名第一呢?
1. InfluxDB的特点
InfluxDB是支持时序数据高效读写、压缩存储、实时计算能力的数据库服务 , 除了具有成本优势的高性能读、高性能写、高存储率 , InfluxDB还具有如下特点:
- 无系统环境依赖 , 部署方便 。
- 无模式(schema-less)的数据模型 , 灵活强大 。
- 原生HTTP管理接口 , 免插件配置和免第三方依赖 。
- 强大的类SQL查询语句 , 学习成本低 , 上手快 。
- 丰富的权限管理功能:精细到“表”级别 。
- 丰富的时效管理功能:自动删除过期数据 , 自定义删除指标数据 。
- 低成本存储 , 采样时序数据 , 压缩存储 。
- 丰富的聚合函数 , 支持AVG、SUM、MAX、MIN等聚合函数 。
InfluxDB实现了类SQL的接口 , 尽管与传统关系型数据库(如MySQL)语法相似 , 但InfluxDB在语义体系上有些差别 , 接下来将以一条CPU利用率的时序数据为例介绍相关的核心概念 , 如代码清单1-3所示 。
- 代码清单1-3 一条CPU利率的时序数据
- 时间(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):表示表名、保留策略、标签集都相同的一组数据 。
本文摘编自《InfluxDB原理与实战》 , 经出版方授权发布 。
本文插图
- 热量|为什么有的人喝凉水都长肉,有的人却光吃不胖?营养科医生:原因其实很简单
- 驱动中国腾讯内部人士爆料:与“老干妈”合作多个环节有漏洞 却无人察觉
- 疫情|美国疫情速报:确诊数已逼近284万;特朗普发话:99%新冠病例完全无害;美专家:实际感染数或是现有数据10~24倍
- 央视记者火线追踪,腾讯告老干妈成热点,检察机关可以提前介入
- 蜜蜂蜇熊刺针拔不出而被肢解致死
- 三星手机|为什么三星手机,在我国越来越没市场了?原来这是必然结果
- 主从|Redis系列(五):主从复制
- 腾讯|原创 腾讯如果想冻结阿里的资金,阿里除了束手就擒还有办法反制么?
- 不执著财经|为什么越来越多的外企都搬迁到东南亚?
- 腾讯财讯|刚刚!中信证券、中信建投又澄清了,第二个“南北车”难诞生?