2016-09-20 8 views
0

特定の条件があるときに行を出力するSQLを作成しています。これはストリームに接続され、ラムダが呼び出されます。問題は、この条件が短期間に数回真を表明するときに来る。ラムダをN分ごとに1回だけトリガーしたいと思います。Kinesis Analytics SQL:ThrotteはN分ごとに1行だけです

私の解はN分のスライディングウィンドウで読み取られ、count(*)== 0なら新しい行が送られましたが、エラーObject definition contains recursive cycleがあります。

これを行う方法はありますか?

答えて

1

私はストリーミングに関するいくつかの概念を誤解していたと思います。あなたのような何かを使用し、イベントだけですべてのNの分を送信する必要がある場合:

CREATE OR REPLACE PUMP "STREAM_PUMP_PRE" AS INSERT INTO "PREDESTINATION_SQL_STREAM" 
SELECT STREAM FID, COUNT(*) OVER SLIDING_WINDOW AS TOTAL 
FROM "SQL_STREAM_BOTTLENECK" 
WINDOW SLIDING_WINDOW AS (PARTITION BY FID RANGE INTERVAL '60' SECOND PRECEDING); 

CREATE OR REPLACE PUMP "STREAM_PUMP_RESULT" AS INSERT INTO "DESTINATION_SQL_STREAM" 
SELECT STREAM FID, COUNT(*) AS TOTAL 
FROM "PREDESTINATION_SQL_STREAM" 
GROUP BY FID, FLOOR(PREDESTINATION_SQL_STREAM.ROWTIME TO MINUTE); 

あなたのデータを最後の最後ですべてのイベントによって、あなたはグループ、SQL_STREAM_BOTTLENECKから来て、そして最後に、あなたは、イベントごとに1分を送信。

関連する問題