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作为面板图展示。