示例:创建限制警报 - Amazon Kinesis Data Analytics for SQL 应用程序开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

示例:创建限制警报

在此 Amazon Kinesis 数据分析应用程序中,将在通过演示流创建的应用程序内部流上持续运行查询。有关更多信息,请参阅 连续查询。) 如果任何行显示股票价格变动大于 1%,这些行将被插入另一个应用程序内部流中。应用程序会限制警报,以便在股票价格变化时立即发送警报。但每个股票代号每分钟向应用程序内部流发送的警报不超过一个。

创建受限警报应用程序

  1. 创建一个 Kinesis 数据分析应用程序,如 Kinesis Data Analytics 入门练习中所述。

  2. 在 Kinesis Data Analytics 上的 SQL 编辑器中,将应用程序代码替换为以下内容:

    CREATE OR REPLACE STREAM "CHANGE_STREAM" (ticker_symbol VARCHAR(4), sector VARCHAR(12), change DOUBLE, price DOUBLE); CREATE OR REPLACE PUMP "change_pump" AS INSERT INTO "CHANGE_STREAM" SELECT STREAM ticker_symbol, sector, change, price FROM "SOURCE_SQL_STREAM_001" WHERE (ABS(Change / (Price - Change)) * 100) > 1; -- ** Trigger Count and Limit ** -- Counts "triggers" or those values that evaluated true against the previous where clause -- Then provides its own limit on the number of triggers per hour per ticker symbol to what -- is specified in the WHERE clause CREATE OR REPLACE STREAM TRIGGER_COUNT_STREAM ( ticker_symbol VARCHAR(4), change REAL, trigger_count INTEGER); CREATE OR REPLACE PUMP trigger_count_pump AS INSERT INTO TRIGGER_COUNT_STREAM SELECT STREAM ticker_symbol, change, trigger_count FROM ( SELECT STREAM ticker_symbol, change, COUNT(*) OVER W1 as trigger_count FROM "CHANGE_STREAM" --window to perform aggregations over last minute to keep track of triggers WINDOW W1 AS (PARTITION BY ticker_symbol RANGE INTERVAL '1' MINUTE PRECEDING) ) WHERE trigger_count >= 1;

    应用程序代码中的 SELECT 语句将在 SOURCE_SQL_STREAM_001 中筛选出显示股票价格更改大于 1% 的行,并使用数据泵将这些行插入另一个应用程序内部流 CHANGE_STREAM

    然后,应用程序为受限警报创建第二个名为 TRIGGER_COUNT_STREAM 的流。第二个查询从一个窗口中选择记录,每次记录被允许进入该窗口时,该窗口都向前跳,以便每个股票报价每分钟只有一个记录被写入到流中。

  3. 选择 Save and run SQL

该示例将流输出到与以下内容类似的 TRIGGER_COUNT_STREAM


                控制台屏幕截图,显示包含股票代号、百分比变化和触发器计数列的输出流。