

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.

# Ejemplo: Detección de anomalías de datos en una secuencia (función RANDOM\$1CUT\$1FOREST)
<a name="app-anomaly-detection"></a>

Amazon Kinesis Data Analytics proporciona una función (`RANDOM_CUT_FOREST`) que puede asignar una puntuación de anomalías para cada registro en función de los valores en las columnas numéricas. Para obtener más información, consulte [Función `RANDOM_CUT_FOREST`](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/analytics-sql-reference.html) en la *Referencia de SQL de Amazon Managed Service para Apache Flink*. 

En este ejercicio, escribirá el código de la aplicación para asignar una puntuación de anomalías a los registros en el origen de streaming de la aplicación. Haga lo siguiente para configurar la aplicación:

1. **Configure un origen de streaming**: configure un flujo de datos de Kinesis y escriba datos de `heartRate` de muestra, tal y como se muestra a continuación:

   ```
   {"heartRate": 60, "rateType":"NORMAL"}
   ...
   {"heartRate": 180, "rateType":"HIGH"}
   ```

   El procedimiento proporciona un script de Python para que pueda rellenar la secuencia. Los valores de `heartRate` se generan de forma aleatoria. El 99 por ciento de los registros tienen valores de `heartRate` entre 60 y 100, y solo un 1 por ciento de ellos tienen valores de `heartRate` entre 150 y 200. Por lo tanto, los registros que tienen valores de `heartRate` comprendidos entre 150 y 200 son anomalías. 

1. **Configure la entrada**: use la consola para crear una aplicación de Kinesis Data Analytics y configure la entrada de la aplicación mapeando el origen de streaming a una secuencia en la aplicación (`SOURCE_SQL_STREAM_001`). Cuando se inicia la aplicación, Kinesis Data Analytics lee continuamente el origen de streaming e introduce los registros en la secuencia en la aplicación.

1. **Especifique el código de la aplicación**: el ejemplo utiliza el siguiente código de la aplicación:

   ```
   --Creates a temporary stream.
   CREATE OR REPLACE STREAM "TEMP_STREAM" (
   	        "heartRate"        INTEGER,
   	        "rateType"         varchar(20),
   	        "ANOMALY_SCORE"    DOUBLE);
   
   --Creates another stream for application output.	        
   CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
   	        "heartRate"        INTEGER,
   	        "rateType"         varchar(20),
   	        "ANOMALY_SCORE"    DOUBLE);
   
   -- Compute an anomaly score for each record in the input stream
   -- using Random Cut Forest
   CREATE OR REPLACE PUMP "STREAM_PUMP" AS 
      INSERT INTO "TEMP_STREAM"
         SELECT STREAM "heartRate", "rateType", ANOMALY_SCORE 
         FROM TABLE(RANDOM_CUT_FOREST(
                 CURSOR(SELECT STREAM * FROM "SOURCE_SQL_STREAM_001")));
   
   -- Sort records by descending anomaly score, insert into output stream
   CREATE OR REPLACE PUMP "OUTPUT_PUMP" AS 
      INSERT INTO "DESTINATION_SQL_STREAM"
         SELECT STREAM * FROM "TEMP_STREAM"
         ORDER BY FLOOR("TEMP_STREAM".ROWTIME TO SECOND), ANOMALY_SCORE DESC;
   ```

   El código lee filas de la puntuación `SOURCE_SQL_STREAM_001`, asigna un puntaje de anomalía, y escribe las filas resultante a otra secuencia en la aplicación (`TEMP_STREAM`). El código de la aplicación luego clasifica los registros en `TEMP_STREAM` y guarda los resultados en otra secuencia en la aplicación (`DESTINATION_SQL_STREAM`). Utilice bombas para insertar filas en secuencias en la aplicación. Para obtener más información, consulte [Secuencias y bombeos en la aplicación](streams-pumps.md).

1. **Configure la salida**: configure la salida de la aplicación para conservar los datos de `DESTINATION_SQL_STREAM` en un destino externo, que es otro flujo de datos de Kinesis. La revisión de las puntuaciones de anomalías que se han asignado a cada registro y la determinación de qué puntuación indica que se ha producido una anomalía (y que es necesario que le avisen) es algo ajeno a la aplicación. Puede utilizar una AWS Lambda función para procesar estas puntuaciones de anomalías y configurar las alertas. 

El ejercicio utiliza la región de Este de EE. UU. (Norte de Virginia) (`us-east-1`) para crear estas secuencias y su aplicación. Si utiliza cualquier otra región, debe actualizar el código en consecuencia.

**Topics**
+ [Paso 1: Preparación](app-anomaly-prepare.md)
+ [Paso 2: Cree una aplicación](app-anom-score-create-app.md)
+ [Paso 3: Configurar la salida de la aplicación](app-anomaly-create-ka-app-config-destination.md)
+ [Paso 4: Verificar la salida](app-anomaly-verify-output.md)

**Paso siguiente**  
[Paso 1: Preparación](app-anomaly-prepare.md)