

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: janela de escalonamento
<a name="examples-window-stagger"></a>

Quando uma consulta em janela processa janelas separadas para cada chave de partição exclusiva, a partir da chegada dos dados com a chave correspondente, a janela é chamada de *janela de escalonamento*. Para obter detalhes, consulte [Janelas de escalonamento](stagger-window-concepts.md). Esse exemplo do Amazon Kinesis Data Analytics usa as colunas EVENT\$1TIME e TICKER para criar janelas de escalonamento. O stream de origem contém grupos de seis registros com valores EVENT\$1TIME e TICKER idênticos, que chegam em um período de um minuto, mas não necessariamente com o mesmo valor de minutos (por exemplo, `18:41:xx`).

Neste exemplo, você grava os registros a seguir em um fluxo de dados do Kinesis nos seguintes tempos. O script não grava os horários no fluxo, mas o horário em que o registro é consumido pelo aplicativo é gravado no campo `ROWTIME`:

```
{"EVENT_TIME": "2018-08-01T20:17:20.797945", "TICKER": "AMZN"}   20:17:30
{"EVENT_TIME": "2018-08-01T20:17:20.797945", "TICKER": "AMZN"}   20:17:40
{"EVENT_TIME": "2018-08-01T20:17:20.797945", "TICKER": "AMZN"}   20:17:50
{"EVENT_TIME": "2018-08-01T20:17:20.797945", "TICKER": "AMZN"}   20:18:00
{"EVENT_TIME": "2018-08-01T20:17:20.797945", "TICKER": "AMZN"}   20:18:10
{"EVENT_TIME": "2018-08-01T20:17:20.797945", "TICKER": "AMZN"}   20:18:21
{"EVENT_TIME": "2018-08-01T20:18:21.043084", "TICKER": "INTC"}   20:18:31
{"EVENT_TIME": "2018-08-01T20:18:21.043084", "TICKER": "INTC"}   20:18:41
{"EVENT_TIME": "2018-08-01T20:18:21.043084", "TICKER": "INTC"}   20:18:51
{"EVENT_TIME": "2018-08-01T20:18:21.043084", "TICKER": "INTC"}   20:19:01
{"EVENT_TIME": "2018-08-01T20:18:21.043084", "TICKER": "INTC"}   20:19:11
{"EVENT_TIME": "2018-08-01T20:18:21.043084", "TICKER": "INTC"}   20:19:21
...
```



Em seguida, você cria um aplicativo Kinesis Data Analytics no, com Console de gerenciamento da AWS o stream de dados do Kinesis como fonte de streaming. O processo de descoberta lê os registros de exemplo na origem de streaming e infere um esquema no aplicativo com duas colunas (`EVENT_TIME` e `TICKER`) conforme mostrado a seguir.

![\[Captura de tela do console mostrando o esquema no aplicativo com as colunas de preço e de marcador.\]](http://docs.aws.amazon.com/pt_br/kinesisanalytics/latest/dev/images/ex_stagger_schema.png)


Você usa o código do aplicativo com a função `COUNT` para criar uma agregação em janelas dos dados. Em seguida, insira os dados resultantes em outro stream no aplicativo, conforme mostrado na captura de tela a seguir: 



![\[Captura de tela do console mostrando os dados resultantes em um stream no aplicativo.\]](http://docs.aws.amazon.com/pt_br/kinesisanalytics/latest/dev/images/ex_stagger.png)


No procedimento a seguir, você cria um aplicativo do Kinesis Data Analytics que agrega valores no streaming de entrada em uma janela de escalonamento com base em EVENT\$1TIME e TICKER.

**Topics**
+ [Etapa 1: Criar um fluxo de dados Kinesis](#examples-stagger-window-1)
+ [Etapa 2: Criar o aplicativo Kinesis Data Analytics](#examples-stagger-window-2)

## Etapa 1: Criar um fluxo de dados Kinesis
<a name="examples-stagger-window-1"></a>

Crie um fluxo de dados do Amazon Kinesis e preencha registros da seguinte forma:

1. [Faça login no Console de gerenciamento da AWS e abra o console do Kinesis em https://console.aws.amazon.com /kinesis.](https://console.aws.amazon.com/kinesis)

1. Selecione **Fluxos de dados** no painel de navegação.

1. Selecione **Create Kinesis stream (Criar stream do Kinesis)** e crie um stream com um estilhaço. Para obter mais informações, consulte [Criar um fluxo](https://docs.aws.amazon.com/streams/latest/dev/learning-kinesis-module-one-create-stream.html) no *Guia do desenvolvedor do Amazon Kinesis Data Streams*.

1. Para gravar registros em um streaming de dados do Kinesis em um ambiente de produção, recomendamos usar o [Kinesis Producer Library](https://docs.aws.amazon.com/streams/latest/dev/developing-producers-with-kpl.html) ou a [API do Kinesis Data Streams](https://docs.aws.amazon.com/streams/latest/dev/developing-producers-with-sdk.html). Para simplificar, este exemplo usa o script Python a seguir para gerar registros. Execute o código para preencher os registros de marcador de exemplo. Esse código simples grava continuamente um grupo de seis registros com o mesmo símbolo de índice e `EVENT_TIME` aleatórios no stream durante o período de um minuto. Mantenha o script em execução para que você possa gerar o esquema do aplicativo em uma etapa posterior.

   ```
    
   import datetime
   import json
   import random
   import time
   import boto3
   
   STREAM_NAME = "ExampleInputStream"
   
   
   def get_data():
       event_time = datetime.datetime.utcnow() - datetime.timedelta(seconds=10)
       return {
           "EVENT_TIME": event_time.isoformat(),
           "TICKER": random.choice(["AAPL", "AMZN", "MSFT", "INTC", "TBV"]),
       }
   
   
   def generate(stream_name, kinesis_client):
       while True:
           data = get_data()
           # Send six records, ten seconds apart, with the same event time and ticker
           for _ in range(6):
               print(data)
               kinesis_client.put_record(
                   StreamName=stream_name,
                   Data=json.dumps(data),
                   PartitionKey="partitionkey",
               )
               time.sleep(10)
   
   
   if __name__ == "__main__":
       generate(STREAM_NAME, boto3.client("kinesis"))
   ```

## Etapa 2: Criar o aplicativo Kinesis Data Analytics
<a name="examples-stagger-window-2"></a>

Crie um aplicativo Kinesis Data Analytics, da seguinte maneira:

1. [Abra o console do Managed Service for Apache Flink em https://console.aws.amazon.com /kinesisanalytics.](https://console.aws.amazon.com/kinesisanalytics)

1. Escolha **Create application (Criar aplicativo)**, digite um nome para o aplicativo e selecione **Create application (Criar aplicativo)**.

1. Na página de detalhes do aplicativo, escolha **Connect streaming data (Conectar dados de streaming)** para se conectar com a fonte. 

1. Na página **Connect to source (Conectar com a fonte)**, faça o seguinte:

   

   1. Escolha o stream criado na seção anterior. 

   1. Selecione **Discover schema (Descobrir esquema)**. Aguarde o console mostrar o esquema inferido e os registros de exemplos usados para inferir o esquema do stream do aplicativo criado. O esquema inferido tem duas colunas.

   1. Escolha **Edit Schema (Editar esquema)**. Mude **Column type (Tipo de coluna)** da coluna **EVENT\$1TIME** para `TIMESTAMP`.

   1. Escolha **Save schema and update stream samples**. Depois que o console salvar o esquema, escolha **Exit (Sair)**.

   1. Escolha **Save and continue**.

1. Na página de detalhes de aplicativo, escolha **Go to SQL editor (Ir para o editor de SQL)**. Para iniciar o aplicativo, escolha **Yes, start application (Sim, iniciar o aplicativo)** na caixa de diálogo exibida.

1. No editor SQL, escreva o código do aplicativo e verifique os resultados da seguinte forma:

   1. Copie o código de aplicativo a seguir e cole-o no editor.

      ```
      CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
          event_time TIMESTAMP,
          ticker_symbol    VARCHAR(4),
          ticker_count     INTEGER);
      
      CREATE OR REPLACE PUMP "STREAM_PUMP" AS 
        INSERT INTO "DESTINATION_SQL_STREAM" 
          SELECT STREAM 
              EVENT_TIME, 
              TICKER,
              COUNT(TICKER) AS ticker_count
          FROM "SOURCE_SQL_STREAM_001"
          WINDOWED BY STAGGER (
                  PARTITION BY TICKER, EVENT_TIME RANGE INTERVAL '1' MINUTE);
      ```

   1. Escolha **Save and run SQL**. 

      Na guia **Real-time analytics (Análise em tempo real)**, você pode ver todos os fluxos de aplicativo criados pelo aplicativo e verificar os dados. 