如何像 RDBMS 一样在 openTSDB 中分组和聚合?
How to group by and aggregate in openTSDB like RDBMS?
我在 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 获取结果?
像 OpenTSDB,Axibase Time Series Database is based on HBase/HDFS and at the same time it supports SQL queries. Your grouping query will work just fine: https://axibase.com/docs/atsd/sql/#grouping
ATSD 社区版免费。
EDIT20160619:更新了文档链接。此外,ATSD 支持带有 HAVING 子句的 GROUP BY 来过滤分组结果。此外,ROW_NUMBER window 函数可用于将 LIMIT 应用于结果集分区。
披露:我为 Axibase 工作
是的,有办法。 OpenTSDB 提供了一个rest API,你可以使用它。
为此,您需要执行以下操作。
- 一台机器的IP,其中OpenTSDB是运行.
- Opentsdb端口,默认4242
- 开始时间
- 聚合器即 sum,avg e.t.c
- 指标名称。
标签
至于要在"src_ip"的基础上聚合,就不用提了。下面给出了示例。
假设您在本地计算机上 运行 OpenTSDB。
http://127.0.0.1:4242/api/query?start=10d-ago&m=sum:metric01{dst_ip=*,协议=*}
现在让 openTSDB 可以做到这一点。此外,如果有这样的要求,那么 openTSDB 可能不是您的选择。 openTSDB 是时间序列数据库,也适用于 kariosDB。我在 openTSDB 和 kariosDB 中尝试过,发现它们都不能。
因为在 openTSDB 中,group by 是一回事,聚合又是另一回事。
与 RDBMS 不同,agg 在分组依据上起作用。在 openTSDB 中,agg 适用于下采样
我在 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 获取结果?
像 OpenTSDB,Axibase Time Series Database is based on HBase/HDFS and at the same time it supports SQL queries. Your grouping query will work just fine: https://axibase.com/docs/atsd/sql/#grouping
ATSD 社区版免费。
EDIT20160619:更新了文档链接。此外,ATSD 支持带有 HAVING 子句的 GROUP BY 来过滤分组结果。此外,ROW_NUMBER window 函数可用于将 LIMIT 应用于结果集分区。
披露:我为 Axibase 工作
是的,有办法。 OpenTSDB 提供了一个rest API,你可以使用它。 为此,您需要执行以下操作。
- 一台机器的IP,其中OpenTSDB是运行.
- Opentsdb端口,默认4242
- 开始时间
- 聚合器即 sum,avg e.t.c
- 指标名称。
标签 至于要在"src_ip"的基础上聚合,就不用提了。下面给出了示例。 假设您在本地计算机上 运行 OpenTSDB。
http://127.0.0.1:4242/api/query?start=10d-ago&m=sum:metric01{dst_ip=*,协议=*}
现在让 openTSDB 可以做到这一点。此外,如果有这样的要求,那么 openTSDB 可能不是您的选择。 openTSDB 是时间序列数据库,也适用于 kariosDB。我在 openTSDB 和 kariosDB 中尝试过,发现它们都不能。
因为在 openTSDB 中,group by 是一回事,聚合又是另一回事。 与 RDBMS 不同,agg 在分组依据上起作用。在 openTSDB 中,agg 适用于下采样