Ejemplo: Creación de alertas limitadas - Guía para desarrolladores de aplicaciones de Amazon Kinesis Data Analytics para SQL

Para proyectos nuevos, le recomendamos que utilice el nuevo servicio gestionado para Apache Flink Studio en lugar de aplicaciones de Kinesis Data Analytics para SQL. El servicio gestionado para Apache Flink Studio combina la facilidad de uso con capacidades analíticas avanzadas, lo que le permite crear aplicaciones sofisticadas de procesamiento de flujos en cuestión de minutos.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejemplo: Creación de alertas limitadas

En esta aplicación de Kinesis Data Analytics, la consulta se ejecuta de forma continua en la secuencia en la aplicación creada sobre la secuencia de demostración. Para obtener más información, consulte Consultas continuas. Si hay filas cuya cotización cambia más del 1 por ciento, dichas filas se insertan en otra secuencia en la aplicación. La aplicación limita las alertas de forma que se envíe una alerta inmediatamente cuando cambia la cotización. Sin embargo, no se envía a la secuencia en la aplicación más de una alerta por minuto por cada símbolo de cotización.

Para crear una aplicación con alertas limitadas
  1. Cree una aplicación de Kinesis Data Analytics, tal y como se describe en el ejercicio de introducción de Kinesis Data Analytics.

  2. En el editor de SQL de Kinesis Data Analytics, sustituya el código de la aplicación por el siguiente:

    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;

    La instrucción SELECT del código de la aplicación filtra las filas de SOURCE_SQL_STREAM_001 para ver cambios en las cotizaciones de los valores superiores al 1 por ciento e introduce las filas en otra secuencia en la aplicación CHANGE_STREAM mediante una bomba.

    A continuación, la aplicación crea una segunda secuencia denominada TRIGGER_COUNT_STREAM para las alertas limitadas. Una segunda consulta selecciona registros de una ventana que se desplaza hacia delante cada vez que se admite un registro en ella, de forma que solo se escriba en la secuencia un registro por cada símbolo de cotización cada minuto.

  3. Elija Save and run SQL.

El ejemplo envía a TRIGGER_COUNT_STREAM una secuencia similar a la siguiente:


                Imagen de pantalla de la consola que muestra la secuencia de salida con las columnas de símbolo de cotización, porcentaje de cambio y número de disparos.