Golang Go语言中轻量级单机时序数据库推荐?Go优先
在做一个单机数据收集的工具,有几个需求:
- 时序
- 有数据过期机制,或循环写入
- 类似 SQLite 一样的轻量级库
看了下 RRD 的 Go 绑定,貌似有平台依赖,InfluxDB 有些重了,打点数据量大概每秒 5~8 个左右,大神们是否有更好的家伙推荐?
Golang Go语言中轻量级单机时序数据库推荐?Go优先
influxdb 吧,没啥重度啊,很简单的东西,不过耗内存
更多关于Golang Go语言中轻量级单机时序数据库推荐?Go优先的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
因为是一个通用型 Agent,可能会放在非自己产品部管辖的产品中,开一个单独的 DB 服务出来,别人会比较排斥
boltdb
influxdb 2 年了,很好用,使用恰当就很稳定
boltdb 有内置的数据过期策略吗?
etcd 是用这个吧
普罗米修斯( prometheus ),主页 https://prometheus.io
写入到自己能管辖的 DB 里不就好了?
#7 这个只是个监控平台
badger 简单的 kv,有 ttl 机制
给人家上一个 agent 已经很反感了,为了这个 agent 再上个 db 服务,这项目回做死的(TvT)
监控平台的数据源就是一个典型 time series database 的应用场景,prometheus 主要应用在监控报警场景,包括 influxdb 也是,但 promethues 本身是一个 tsdb。著名的 grafana 监控展示软件的数据源默认是 influxdb,现在也支持 prometheus 了。
prometheus 对需要自己设置 timestamp 的场景不支持
仅供参考,那就看看别的吧
我推荐 badger
优点:
- 轻量不需要部署
- 备份数据拷贝即可
- 性能怪兽(比 boltdb 强太多)
- SSD 有优化
缺点:
- 不支持集群
- 不支持多个应用同时读写
- 不支持时序
我觉得时序的话可以通过 prefix 来控制,实现起来也比较简单
badger 的 performance 了解一下
环境 32G 内存 500GSSD
数量 400m key value
时间 00:33:15