0

我将遥测推送到 AWS 时间流:

测量值::varchar 知识产权 时间 测量名称
测试.html 192.168.1.100 2021-05-25 14:27:45 命中
废话.html 192.168.1.101 2021-05-25 14:27:45 命中
测试.html 192.168.1.102 2021-05-25 14:27:46 命中

我希望在时间流中显示数据的聚合,向我显示每小时每个 uri 的点击次数。

测量值::varchar 数数 时间
测试.html 2 2021-05-25 14:00
废话.html 1 2021-05-25 14:00

我正在尝试使用:

SELECT measure_value::varchar as URIs, CREATE_TIME_SERIES(time, measure_value::varchar) AS served FROM $__database.$__table WHERE $__timeFilter group by measure_value::varchar

但我得到了错误:

ValidationException: Duplicate timestamps are not allowed in a timeseries.

我使用了错误的功能还是我的数据有误?

====================

尝试@berto99 的解决方案...我得到:

图形

SELECT measure_value::varchar AS URIs, date_trunc('hour', time) AS hour, count(measure_value::varchar) as queries
FROM $__database.$__table
WHERE $__timeFilter
GROUP BY measure_value::varchar, date_trunc('hour', time)

======================

更新#2:

图#2 到达那里,仍然没有 100% 到达那里。

SELECT measure_value::varchar AS URIs, bin(time, 15m) AS hour, count(measure_value::varchar) as queries
FROM $__database.$__table
WHERE $__timeFilter
GROUP BY measure_value::varchar, bin(time, 15m) order by hour
4

2 回答 2

1

我知道可能有更好的方法可以做到这一点,但是像这样:

SELECT measure_value::varchar AS URIs, date_trunc('hour', time) AS time
FROM $__database.$__table
WHERE $__timeFilter
GROUP BY measure_value::varchar, date_trunc('hour', time)
ORDER BY date_trunc('hour', time)

也许您还必须调整时区,date_trunc('hour', time at time zone '-X')其中 X 是您的时区

于 2021-05-26T23:13:37.217 回答
1

最后结合@Berto99 的建议和更多地挖掘stackoverflow - TimeStream + Grafana: not Recognizing series in data让这一切工作。

您必须将 Berto99 的建议放入子查询中,然后通过CREATE_TIME_SERIES. 最后的查询结果是:

WITH binned_query AS (
SELECT measure_value::varchar AS URIs, bin(time, 15m) AS bin_time, count(measure_value::varchar) as queries
FROM $__database.$__table
WHERE $__timeFilter
GROUP BY measure_value::varchar, bin(time, 15m) order by bin_time
)
SELECT URIs, CREATE_TIME_SERIES(bin_time,queries) as Endpoint
FROM binned_query 
GROUP BY URIs

从使用更改为date_truncbin因为它使您可以更灵活地进行 15 分钟的间隔。

美丽的图表:

完成图

于 2021-05-27T16:26:44.787 回答