暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

influxdb使用小结

李小姐的秋田犬 2018-11-27
1217

1.influxdb的优势

influxdb由公语言编写,go语言和c/c++语言一样,生成文件是机器码形式的二进制,运行环境在本身的二进制文件中,不需要额外配置任何环境相关的组件;并且由于go语言的跨平台性以及编译快速性,influxdb的编译时间不足半分钟。

influxdb的官方api除去CLI以及Go语言版的客户端之外只有rest版本的http api,这是一个优势同时也是一个劣势。

influxdb高级用法中可以使用实时统计聚合,在监控方面可以说是极为方便友好。

influxdb配合grafana等开源的可视化仪表盘组件可以清晰的进行数据的展示,同时influxdb提供了丰富多样的聚合算法,在聚合方面具有极大的优势。


2.influxdb的局限性

go语言号称是“最并发的语言”,但是如果深究应当是go在并发方面使用goroutine以及channel会更加方便,利于快速开发,但是c/c++程序经过一定程度的优化在性能上业不会比golang开发的差。

influxdb在运行时所消耗的内存应当算是比较多的,笔者在测试的机器上大概在有不到一万条记录时大概占用了800M左右的内存。

influxdb的http接口非常不适合进行某段时间全量数据的查询,http接口查询得到的数据是以json或者csv形式返回的,全量查询时数据量会达到10M以上,此时如果对json或者csv进行词法分析逆序列化成对象基本上会会将资源消耗一空甚至产生bad alloc 的极端异常情况。

这里扯一点题外话,处理大规模的json时,不能使用通常的json解析模式(DOM模式),应当使用SAX模式,类似流处理一样来处理json,目前笔者使用的SAXjson库时rapidjson(http://rapidjson.org/zh-cn/)库。


3.influxdb的初步使用小结

influxdb适合对数据进行聚合、统计,而不是对数据进行全量的读取,在使用influxdb时最好配合开源的web监控组件一起使用,可以极大减少开发量。

文章转载自李小姐的秋田犬,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论