

Tras considerarlo detenidamente, hemos decidido dejar de utilizar Amazon Kinesis Data Analytics para aplicaciones SQL:

1. A partir del **1 de septiembre de 2025,** no proporcionaremos ninguna corrección de errores para las aplicaciones de Amazon Kinesis Data Analytics for SQL porque tendremos un soporte limitado debido a la próxima discontinuación.

2. A partir del **15 de octubre de 2025,** no podrá crear nuevas aplicaciones de Kinesis Data Analytics for SQL.

3. Eliminaremos sus aplicaciones a partir del **27 de enero de 2026**. No podrá iniciar ni utilizar sus aplicaciones de Amazon Kinesis Data Analytics para SQL. A partir de ese momento, el servicio de soporte de Amazon Kinesis Data Analytics para SQL dejará de estar disponible. Para obtener más información, consulte [Retirada de las aplicaciones de Amazon Kinesis Data Analytics para SQL](discontinuation.md).

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)
<a name="tumbling-window-concepts"></a>

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.\]](http://docs.aws.amazon.com/es_es/kinesisanalytics/latest/dev/images/window-tumbling-20.png)


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](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/get-started-exercise.html) 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, que proporciona el precio de cotización registrado min/max en ese 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](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/get-started-exercise.html).

1. 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);
   ```