InfluxDB从原理到实战 - 什么是InfluxDB
0x00 什么是InfluxDB
InfluxDB是一个由InfluxData开发的开源时序型数据库,专注于海量时序数据的高性能读、高性能写、高效存储与实时分析等,在DB-Engines Ranking时序型数据库排行榜上排名第一,广泛应用于DevOps监控、IoT监控、实时分析等场景。
InfluxDB部署简单、使用方便,在技术实现上充分利用了Go语言的特性,无需任何外部依赖即可独立部署。提供类似于SQL的查询语言,接口友好,使用方便。丰富的聚合运算和采样能力,提供灵活的数据保存策略(Retention Policy)来设置数据的保留时间和副本数,在保障数据可靠性的同时,及时删除过期数据,释放存储空间,提供灵活的连续查询(Continues Query)来实现对海量数据的采样。支持协议种类多,除了HTTP、UDP等原生协议,还兼容CollectD、Graphite、OpenTSDB、Prometheus等组件的通讯协议。
强大完整的生态,TICK是一个集成了采集、存储、分析、可视化等能力的开源时序中台,由Telegraf、 InfluxDB、Chronograf、Kapacitor 4个组件以一种灵活松散组合、但紧密配合互为补充的方式构成,各个模块项目配合、互为补充,专注于DevOps监控、IoT监控、实时分析等场景。
Telegraf是一个用于采集和上报指标的服务器程序,采集当前运行主机的指定指标,如,CPU负载等,通过标准的InfluxDB API上报InfluxDB。
InfluxDB是专注于时序数据场景(如,DevOps监控、IoT监控、实时分析等)的高性能时序型数据库,支持灵活的自定义保留策略(Retention Policy)和类SQL的操作接口等。
Chronograf是可视化的UI界面层,通过图形界面暂时InfluxDB中的数据,并支持Kapacitor告警等。
Kapacitor是一个事件处理和告警引擎,支持灵活强大的自定义功能,也支持集成对接第三系统,如,HipChat等。
0x01 InfluxDB的优势
InfluxDB专注于DevOps监控、IoT监控等场景,针对时序存储、高性能读写、实时操作、高可用性而设计的一套软件,从零设计架构和开发,InfluxDB通过实现高度可扩展的数据接收和存储引擎,可以高效地实时收集、存储、查询、可视化显示和执行预定义操作。它通过采样和数据保留策略,以支持将高价值、高精度数据保存在内存中,将低价值数据保存到磁盘。作为一套精心设计、架构卓越的专用系统,相比OpenTSDB、MongoDB、Graphite、Cassandra等,InfluxDB的性能优势和成本优势明显。
InfluxDB的写性能是OpenTSDB的5倍,存储效率是OpenTSDB的16.5倍,查询效率是OpenTSDB的3.65倍。


InfluxDB的写性能是MongoDB的2.4倍,存储效率是MongoDB的20倍,查询效率是MongoDB的5.7倍。


InfluxDB的写性能是Graphite的12倍,存储效率是Graphite的6.3倍,查询效率是Graphite的9倍。


InfluxDB的写性能是Cassandra的4.5倍,存储效率是Cassandra的2.1倍,查询效率是Cassandra的45倍。


0x03 InfluxDB的特性
InfluxDB是一种时序数据高效读写、压缩存储、实时计算能力为一体的数据库服务,除了具有成本优势的高性能读、高性能写、高存储率,InfluxDB还具有如下特点:
无系统环境依赖,部署方便。无结构化(SchemaLess)的数据模型,灵活强大。原生HTTP管理接口,免插件配置和免第三方依赖。强大的类SQL查询语句的操作接口,学习成本低,上手快。丰富的权限管理功能,精细到“表”级别。丰富的时效管理功能,自动删除过期数据,自定义删除指标数据。低成本存储,采样时序数据,压缩存储。丰富的聚合函数,支持AVG、SUM、MAX、MIN等聚合函数。
后记:
欢迎交流讨论:
微信公众号:influxdb-dev。
InfluxDB技术交流群(QQ):663274123。
InfluxDB从原理到实战 - 什么是InfluxDB的更多相关文章
- InfluxDB从原理到实战 - InfluxDB常用的基础操作
0x00 基础操作介绍 在本文中将介绍InfluxDB常用的基础操作,帮助读者建立对InfluxDB的感性认识,快速的动手玩起来,持续查询(Continuous Queies).Group by.Se ...
- InfluxDB从原理到实战 - 一篇文章搞懂InfluxDB时区
0x00 简介 InfluxDB默认以UTC时间存储并返回时间戳,当接收到一个时序数据记录时,InfluxDB将时间戳从本地时区时间转换为UTC时间并存储,查询时,InfluxDB返回的时间戳对 ...
- 为什么是InfluxDB | 写在《InfluxDB原理和实战》出版之际
1年前写的一篇旧文,文中的分析,以及探讨的问题和观点,至今仍有意义. 从2016年起,笔者在腾讯公司负责QQ后台的海量服务分布式组件的架构设计和研发工作,例如微服务开发框架SPP.名字路由CMLB.名 ...
- jQuery源码:从原理到实战
jQuery源码:从原理到实战 jQuery选择器对象 $(".my-class"); document.querySelectorAll*".my-class" ...
- Keepalived原理与实战精讲--VRRP协议
. 前言 VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还简 ...
- Spark MLlib特征处理:OneHotEncoder OneHot编码 ---原理及实战
http://m.blog.csdn.net/wangpei1949/article/details/53140372 Spark MLlib特征处理:OneHotEncoder OneHot编码 - ...
- Istio 流量治理功能原理与实战
一.负载均衡算法原理与实战 负载均衡算法(load balancing algorithm),定义了几种基本的流量分发方式,在Istio中共有4种标准负载均衡算法. •Round_Robin: 轮询算 ...
- Oracle特殊恢复原理与实战(DSI系列)
1.深入浅出Oracle(DSI系列Ⅰ) 2.Oracle特殊恢复原理与实战(DSI系列Ⅱ) 3.Oracle SQL Tuning(DSI系列Ⅲ)即将开设 4.Oracle DB Performan ...
- Java并发编程原理与实战五:创建线程的多种方式
一.继承Thread类 public class Demo1 extends Thread { public Demo1(String name) { super(name); } @Override ...
随机推荐
- CodeForces - 1118 F2 Tree Cutting
题目传送门 题解: 先注意到一定存在k种颜色,切成k个块, 然后要求每个块内的颜色都一样,所以可以发现同一种颜色一定在同一个块内,故任意2个相同颜色的最短路劲上的点的颜色都是该颜色. 我们可以先把任意 ...
- CF - 1108 E 枚举上界+线段树维护
题目传送门 枚举每个点作为最大值的那个点.然后既然是作为最大值出现的话,那么这个点就是不需要被减去的,因为如果最小值也在这个区间内的话,2者都减去1,对答案没有影响,如果是最小值不出现在这个区间内的话 ...
- CodeM 美团资格赛 思维 dfs
链接:https://www.nowcoder.com/acm/contest/138/C来源:牛客网 世界杯就要开始啦!真真正正的战斗从淘汰赛开始,现在我们给出球队之间的胜负概率,来预测每支球队夺冠 ...
- Stealth——01场景的基本搭建以及基础逻辑
版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...
- 【Offer】[53-1] 【数字在排序数组中出现的次数】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 统计一个数字在排序数组中出现的次数.例如,输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出 ...
- 【Offer】[25] 【合并两个排序的链表】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的.例如,输入图中的链表1和链表2,则合并之后的升序链表如链表3所 ...
- idea中applicationContext-dao.xml文件中Cannot resolve file***** :spring xml model validation问题
访问不了classpath下的文件夹中的文件 解决办法如下:(问题出在我创建的resources文件夹是一个普通的文件夹) 1.本来是普通的文件夹 2.ctrl+shift+alt+s打开如下界面: ...
- webpack中clean-webpack-plugin插件使用遇到的问题及解决方法
webpack 会生成文件,然后将这些文件放置在 /dist 文件夹中,但是 webpack 无法追踪到哪些文件是实际在项目中用到的. 通常,在每次构建前清理 /dist 文件夹,是比较推荐的做法,因 ...
- 阿里云 centos7 64位搭建JAVA环境-----安装mysql(1)
一开始用的是阿里云镜像市场的JAVA集成环境,但是配置了好长时间配置不成功.索性就换成了纯净系统从零开始搭建JAVA环境. 镜像:centos_7_04_64_20G_alibase_20170101 ...
- java8新特性使用
一.接口的默认方法(允许接口有非抽象方法)Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下: 代码如下: interface ...