Após uma análise cuidadosa, decidimos descontinuar o Amazon Kinesis Data Analytics SQL para aplicativos em duas etapas:
1. A partir de 15 de outubro de 2025, você não poderá criar um novo Kinesis Data Analytics SQL para aplicativos.
2. Excluiremos seus aplicativos a partir de 27 de janeiro de 2026. Você não poderá iniciar ou operar seu Amazon Kinesis Data Analytics SQL para aplicativos. O suporte não estará mais disponível para o Amazon Kinesis Data Analytics SQL a partir desse momento. Para obter mais informações, consulte Descontinuação do Amazon Kinesis Data Analytics SQL para aplicativos.
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á.
Janelas em cascata (Agregações usando GROUP BY)
Quando uma consulta em janela processa cada janela de forma não sobreposta, é chamada de janela em cascata. Nesse caso, cada registro em um fluxo no aplicativo pertence a uma janela específica. Ele é processado somente uma vez (quando a consulta processa a janela à qual o registro pertence).
Por exemplo, uma consulta de agregação que usa uma cláusula GROUP BY
processa linhas em uma janela em cascata. O fluxo de demonstração no exercício de conceitos básicos recebe os dados de preços de ações que são mapeados no fluxo no aplicativo SOURCE_SQL_STREAM_001
. O stream tem o seguinte esquema:
(TICKER_SYMBOL VARCHAR(4), SECTOR varchar(16), CHANGE REAL, PRICE REAL)
Em seu código de aplicativo, suponha que você queira encontrar preços agregados (mínimo, máximo) para cada marcador em uma janela de um minuto. É possível usar a seguinte 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);
Esse é um exemplo de consulta em janela baseada em horário. A consulta agrupa registros por valores de ROWTIME
. Para relatórios por minuto, a função STEP
arredonda os valores ROWTIME
para baixo, para o minuto mais próximo.
nota
Você também pode usar a função FLOOR
para agrupar registros em janelas. No entanto, FLOOR
só pode arredondar os valores de tempo para uma unidade de tempo inteira (hora, minuto, segundo e assim por diante). STEP
é recomendada para agrupar registros em janelas em cascata porque, assim, pode arredondar valores para baixo para um intervalo arbitrário, por exemplo, 30 segundos.
Essa consulta é um exemplo de janela não sobreposta (em cascata). Os registros de grupos da cláusula GROUP
BY
em uma janela de um minuto e cada registro pertence a uma janela específica (não sobreposta). A consulta emite um registro de saída por minuto, fornecendo o preço de marcador mín./máx. registrado no minuto específico. Esse tipo de consulta é útil para gerar relatórios periódicos do stream de dados de entrada. Neste exemplo, os relatórios são gerados a cada minuto.
Para testar a consulta
-
Configure um aplicativo seguindo as instruções no exercício de conceitos básicos.
-
Substitua a instrução
SELECT
no código de aplicativo pela consultaSELECT
anterior. O código de aplicativo resultante é mostrado a seguir: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);