我有存盤大量時間序列資料的存盤,我可以通過AWS athena提取資料。 然而,我沒有任何想法,我如何通過AWS athena提取特定事件前后的時間序列資料。
什么查詢可以實作呢?
誰有關于Athena查詢的想法和樣本?
例如,我有以下輸入資料。
<input data>
id | timeestamp | value | level |
---------------------------------------------
1 | 2021-04-01T12:00:00 00:00 | 100.0 | 1 |
2 | 2021-04-01T12:00:10 00:00 | 98.0 | 1 |
3 | 2021-04-01T12:00:20 00:00 | 99.5 | 1 |
...
58 | 2021-04-01T12:09:40 00:00 | 98.2 | 1 |
59 | 2021-04-01T12:09:50 00:00 | 95.3 | 1 |
60 | 2021-04-01T12:10:00 00:00 | 99.2 | 1 |
61 | 2021-04-01T12:10:10 00:00 | 97.6 | 2 |
62 | 2021-04-01T12:10:20 00:00 | 98.6 | 2 |
63 | 2021-04-01T12:10:30 00:00 | 98.3 | 2 |
64 | 2021-04-01T12:10:40 00:00 | 98.1 | 2 |
...
100 | 2021-04-01T12:16:40 00:00 | 97.6 | 2 |
我想做的是提取1->2級變化事件前后30秒的記錄。
在這種情況下,預期的輸出是從id:58到id:64的資料。
uj5u.com熱心網友回復:
你可以使用 "滯后 "函式來確定級別變化的時間戳:
SELECT *
FROM (SELECT *)
FROM (SELECT timestamp,
lag(level) OVER (order by timestamp) AS prev_level,
級別
FROM dataset)
WHERE prev_level != level)
然后使用這些時間戳來過濾出資料集。例如,像這樣的東西:
WITH dataset(id,timestamp,value,level) AS (
VALUES '1',timestamp '2021-04-01 12:00:00 00:00',100.0, 1) 。
('2',timestamp '2021-04-01 12:00:10 00:00',98.0,1) 。
('3',timestamp '2021-04-01 12:00:20 00:00',99.5,1) 。
('58',timestamp '2021-04-01 12:09:40 00:00',98.2,1) 。
('59',timestamp '2021-04-01 12:09:50 00:00',95.3, 1) 。
('60',timestamp '2021-04-01 12:10:00 00:00',99.2,1) 。
('61',timestamp '2021-04-01 12:10:10 00:00',97.6,2) 。
('62',timestamp '2021-04-01 12:10:20 00:00',98.6,2) 。
('63',timestamp '2021-04-01 12:10:30 00:00',98.3,2) 。
('64',timestamp '2021-04-01 12:10:40 00:00',98.1,2) 。
('100',timestamp '2021-04-01 12:16:40 00:00', 97.6, 2)
)
SELECT *
FROM dataset o
WHERE EXISTS(
SELECT *
FROM (SELECT *)
FROM (SELECT timestamp,
lag(level) OVER (order by timestamp) AS prev_level,
級別
FROM dataset)
WHERE prev_level != level)
WHERE (o.level = level AND o. timestamp - timestamp < interval '30' second)
OR (o.level = prev_level AND timestamp - o. timestamp < interval '30'/span> second)
)
輸出:
| id | 時間戳 | 價值級別|||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 59 | 2021-04-01 12:09:50.000 UTC | 。95.3 | 60 | 2021-04-01 12:10:00.000 UTC? | 99.2 | 61 | 2021-04-01 12:10:10.000 UTC? | 97.6 | 62 | 2021-04-01 12:10:20.000 UTC? | 98.6 | 63 | 2021-04-01 12:10:30.000 UTC? | 98.3 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/308356.html
標籤:
