1

在 AWS 提供的文档中,他们提供了基于 ROWTIME 执行翻转和滑动窗口的示例,ROWTIME 是 Amazon Kinesis Analytics 在第一个应用程序内流中插入行时的时间戳。

提供的示例:

翻滚的窗户

GROUP BY Ticker_Symbol, 
         STEP("INCOMING_STREAM".ROWTIME BY INTERVAL '60' SECOND);

我想用我自己的时间戳来做这个窗口。在我的情况下,该字段称为“recordTimeStamp”。

我将其定义为时间戳:

CREATE OR REPLACE STREAM "INCOMING_STREAM" (
    "uniqueId" INTEGER,
    "speed" INTEGER,
    "bezettingsgraad" INTEGER,
    "recordTimestamp" TIMESTAMP);

在查看“INCOMING_STREAM”时,我看到了时间戳格式,例如。2020-05-03 20:18:36.0.

但是,当重写上述语句以使用我自己的“recordTimestamp”时,我收到以下消息:

无法聚合无限流:未指定 GROUP BY 子句或不包含任何单调表达式。

翻滚的窗户

GROUP BY Ticker_Symbol, 
         STEP("INCOMING_STREAM"."recordTimestamp" BY INTERVAL '60' SECOND);

我该如何解决这个问题,或者可能表明我的“recordTimestamp”字段单调增加

4

1 回答 1

0

我自己从未使用过它,但SQL 参考中有一个 MONOTONIC 函数,这似乎是您正在寻找的:

MONOTONIC 函数允许您声明给定表达式是单调的,从而使流式 GROUP BY 能够使用该表达式作为键。

于 2020-05-27T23:22:49.867 回答