我在openTSDB中存储了以下格式的数据:
src_ip dst_ip protocol value timestamp
1.1.1.1 2.2.2.1 tcp 100 100000001
1.1.1.1 2.2.2.2 tcp 100 100000001
1.1.1.1 2.2.2.3 udp 100 100000002
1.1.1.4 2.2.2.4 icmp 100 100000003
它们都属于同一个指标,例如metric01。
我想得到如下结果:
select sum(value) from metric01 group by src_ip
有什么方法可以从http api获得结果吗?
答案 0 :(得分:0)
与OpenTSDB一样,Axibase Time Series Database基于HBase / HDFS,同时支持SQL查询。您的分组查询可以正常运行:https://axibase.com/docs/atsd/sql/#grouping
ATSD社区版是免费的。
EDIT20160619 :更新了文档链接。此外,ATSD支持带有HAVING子句的GROUP BY来过滤分组结果。此外,ROW_NUMBER窗口函数可用于将LIMIT应用于结果集分区。
披露:我为Axibase工作
答案 1 :(得分:0)
是的,有办法。 OpenTSDB提供了一个rest API,你可以使用它。 为此,您需要遵循以下内容。
标签 由于您希望根据" src_ip"进行汇总,因此您不必提及它。样品如下。 假设您在本地计算机上运行OpenTSDB。
http://127.0.0.1:4242/api/query?start=10d-ago&m=sum:metric01 {dst_ip = *,协议= *}
答案 2 :(得分:0)
现在,openTSDB可以做到这一点。如果有这样的要求,那么openTSDB可能不是你的选择。 openTSDB是时间序列db,也适用于kariosDB。我试过openTSDB和kariosDB,发现它们都不能。
因为在openTSDB中,group by是一回事,聚合是另一回事。 不像RDBMS,agg在group by上工作。在openTSDB中,agg在下采样
上工作