

Após uma análise cuidadosa, decidimos descontinuar o Amazon Kinesis Data Analytics para aplicativos SQL:

1. A partir de **1º de setembro de 2025,** não forneceremos nenhuma correção de bug para aplicativos do Amazon Kinesis Data Analytics para SQL porque teremos suporte limitado para ele, devido à próxima descontinuação.

2. A partir **de 15 de outubro de 2025,** você não poderá criar novos aplicativos Kinesis Data Analytics para SQL.

3. Excluiremos as aplicações a partir de **27 de janeiro de 2026**. Você não poderá mais iniciar nem operar as aplicações do Amazon Kinesis Data Analytics para SQL. A partir dessa data, não haverá mais suporte ao Amazon Kinesis Data Analytics para SQL. Para obter mais informações, consulte [Descontinuação de aplicações do Amazon Kinesis Data Analytics para SQL](discontinuation.md).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Exemplo: detecção de anomalias de dados em um fluxo (função RANDOM\$1CUT\$1FOREST)
<a name="app-anomaly-detection"></a>

O Amazon Kinesis Data Analytics fornece uma função (`RANDOM_CUT_FOREST`) que pode atribuir uma pontuação de anomalias a cada registro de acordo com os valores nas colunas numéricas. Para obter mais informações, consulte [`RANDOM_CUT_FOREST`Funções](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/analytics-sql-reference.html) em *Amazon Managed Service for Apache Flink SQL Reference*. 

Neste exercício, você grava o código de aplicativo para atribuir uma pontuação de anomalias a registros na origem de streaming do aplicativo. Para configurar o aplicativo, faça o seguinte:

1. **Configurar uma origem de streaming**: configure um fluxo de dados do Kinesis e grave dados `heartRate` de amostra, como mostrado a seguir:

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

   O procedimento fornece um script Python para preencher o stream. Os valores `heartRate` são gerados aleatoriamente, com 99% dos registros com valores `heartRate` entre 60 e 100, e apenas 1% de valores `heartRate` entre 150 e 200. Assim, os registros que têm valores `heartRate` entre 150 e 200 são anomalias. 

1. **Configurar entrada**: usando o console, crie um aplicativo do Kinesis Data Analytics e configure a entrada de aplicativo mapeando a origem de streaming para um fluxo no aplicativo (`SOURCE_SQL_STREAM_001`). Quando o aplicativo é iniciado, o Kinesis Data Analytics lê continuamente a origem do streaming e insere registros no streaming do aplicativo de entrada.

1. **Especificar o código de aplicativo** – O exemplo usa o seguinte código de aplicativo:

   ```
   --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;
   ```

   O código lê linhas no `SOURCE_SQL_STREAM_001`, atribui uma pontuação de anomalias e grava as linhas resultantes em outro stream no aplicativo (`TEMP_STREAM`). O código de aplicativo, em seguida, classifica os registros no `TEMP_STREAM` e salva os resultados em outro stream no aplicativo (`DESTINATION_SQL_STREAM`). Você usa bombas para inserir linhas em streamings do aplicativo de entrada. Para obter mais informações, consulte [Bombas e fluxos no aplicativo](streams-pumps.md).

1. **Configurar a saída**: configure a saída de aplicativo para manter os dados no `DESTINATION_SQL_STREAM` para um destino externo, que é outro fluxo de dados do Kinesis. Verificar as pontuações de anomalias atribuídas a cada registro e determinar qual pontuação indica que uma anomalia (é preciso estar alerta) é externa ao aplicativo. Você pode usar uma AWS Lambda função para processar essas pontuações de anomalias e configurar alertas. 

O exercício usa a região do Leste dos EUA (Norte da Virgínia) (`us-east-1`) para criar esses streams e o aplicativo. Se você usar qualquer outra região, precisará atualizar o código de acordo.

**Topics**
+ [Etapa 1: preparar](app-anomaly-prepare.md)
+ [Etapa 2: criar um aplicativo](app-anom-score-create-app.md)
+ [Etapa 3: Configuração da saída de aplicativo](app-anomaly-create-ka-app-config-destination.md)
+ [Etapa 4: verificar a saída](app-anomaly-verify-output.md)

**Próxima etapa**  
[Etapa 1: preparar](app-anomaly-prepare.md)