首页 > 解决方案 > AWS Timestream 错误中的聚合计数导致错误

问题描述

我将遥测推送到 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

标签: grafanaamazon-timestream

解决方案


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

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 是您的时区


推荐阅读