Ventanas de saltos de tamaño constante (Agregados utilizando GROUP BY) - Guía para desarrolladores de Amazon Kinesis Data Analytics SQL para aplicaciones

Tras considerarlo detenidamente, hemos decidido interrumpir Amazon Kinesis Data Analytics SQL para aplicaciones en dos pasos:

1. A partir del 15 de octubre de 2025, no podrá crear nuevos Kinesis Data Analytics SQL para aplicaciones.

2. Eliminaremos sus aplicaciones a partir del 27 de enero de 2026. No podrá iniciar ni utilizar Amazon Kinesis Data Analytics SQL para aplicaciones. A partir de ese momento, el soporte para Amazon Kinesis Data Analytics dejará SQL de estar disponible. Para obtener más información, consulte Suspensión de Amazon Kinesis Data Analytics SQL for Applications.

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.

Ventanas de saltos de tamaño constante (Agregados utilizando GROUP BY)

Cuando una consulta en ventana procesa cada ventana de forma que no se superpongan, la ventana se denomina ventana de saltos. En este caso, cada registro de una secuencia en la aplicación pertenece a una ventana específica. Se procesa solo una vez (cuando la consulta procesa la ventana a la que pertenece el registro).

Timeline showing non-overlapping windows processing data streams at distinct time intervals.

Por ejemplo, una consulta mediante una cláusula GROUP BY procesa las filas en una ventana de saltos. La secuencia de demostración en el ejercicio de introducción recibe datos de cotizaciones de valores que se asignan a la secuencia en la aplicación SOURCE_SQL_STREAM_001 en su aplicación. Esta secuencia tiene el siguiente esquema.

(TICKER_SYMBOL VARCHAR(4), SECTOR varchar(16), CHANGE REAL, PRICE REAL)

En el código de la aplicación, suponga que desea encontrar los precios (min, max) agregados de cada símbolo a lo largo de un periodo de un minuto. Puede utilizar la siguiente consulta.

SELECT STREAM ROWTIME, Ticker_Symbol, MIN(Price) AS Price, MAX(Price) AS Price FROM "SOURCE_SQL_STREAM_001" GROUP BY Ticker_Symbol, STEP("SOURCE_SQL_STREAM_001".ROWTIME BY INTERVAL '60' SECOND);

El ejemplo anterior es una consulta en ventana que está basada en el tiempo. La consulta agrupa los registros por valores ROWTIME. Para notificar cada minuto, la función STEP redondea hacia abajo los valores ROWTIME al minuto más próximo.

nota

También puede utilizar la función FLOOR para agrupar registros en ventanas. Sin embargo, FLOOR solo puede redondear los valores temporales hacia abajo a una unidad de tiempo completa (hora, minuto, segundo, etc.). Se recomienda STEP para agrupar los registros en ventanas de saltos, ya que puede redondear los valores hacia abajo a un intervalo arbitrario, por ejemplo, 30 segundos.

Este es un ejemplo de una ventana que no se superpone (de saltos). La cláusula GROUP BY agrupa los registros en una ventana de un minuto y cada registro pertenece a una ventana específica (sin solapamiento). La consulta emite un registro de salida por minuto, proporcionando los precios de cotización mínimo/máximo registrados en el minuto específico. Este tipo de consulta es útil para generar informes periódicos a partir de el flujo de datos de entrada. En este ejemplo, los informes se generan cada minuto.

Para probar la consulta
  1. Configure una aplicación siguiendo el ejercicio de introducción.

  2. Sustituya la instrucción SELECT en el código de la aplicación por la consulta SELECT anterior. El código de la aplicación resultante se muestra a continuación:

    CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" ( ticker_symbol VARCHAR(4), Min_Price DOUBLE, Max_Price DOUBLE); -- CREATE OR REPLACE PUMP to insert into output CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM" SELECT STREAM Ticker_Symbol, MIN(Price) AS Min_Price, MAX(Price) AS Max_Price FROM "SOURCE_SQL_STREAM_001" GROUP BY Ticker_Symbol, STEP("SOURCE_SQL_STREAM_001".ROWTIME BY INTERVAL '60' SECOND);