使用elasticsearch作为TSDB

本文探讨了将Elasticsearch作为时序数据库(TSDB)的可行性。虽然存在如OpenTSDB、Graphite和InfluxDB等专业TSDB,但作者发现InfluxDB在成熟度上还有待提高。由于Grafana源自Kibana,作者推测Elasticsearch可能也能胜任TSDB角色。Elasticsearch的聚合功能强大,支持多种统计操作,并且拥有RESTful API,易于安装配置,性能出色,还自带Kibana用于数据可视化,这些优点使其成为项目中TSDB的一个合适选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TSDB有不少,例如open TSDB,graphite等,还有最近的新贵influxdb

不过influxdb远远没到可成熟使用。对应的展示工具grafana号称源于kibana,用起来也不那么顺手。

YY:  既然grafana源于kibana,那influxdb是否和elasticsearch会不会也有些关系呢?

转了一圈,回到es上面。

es作为搜索引擎,作为文档型数据库,是不是也可以作为TSDB呢?

es提供了很强的聚合功能,max,min,avg,percentile,sum,count,还支持脚本和一次多种汇总(stat)

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html

例如,下面的例子显示了如何使用年龄段(20-29,30-39,40-49)分组,然后在用性别分组,
然后为每一个年龄段的每一个性别计算平均账户余额:

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
"size": 0,
"aggs": {
"group_by_age": {
"range": {
"field": "age",
"ranges": [
{
"from": 20,
"to": 30
},
{
"from": 30,
"to": 40
},
{
"from": 40,
"to": 50
}
]
},
"aggs": {
"group_by_gender": {
"terms": {
"field": "gender"
},
"aggs": {
"average_balance": {
"avg": {
"field": "balance"
}
}
}
}
}
}
}
}'


就目前的感觉,es作为项目中的TSDB是足够了,安装配置不复杂,性能足够,操作接口基本都是RESTAPI.

而且ES本身的分布式集群功能也比较完善,支持海量的数据。

前端还有kibana作为面板图展示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值