Operaciones de streaming de datos: uniones de secuencias - Guía para desarrolladores de Amazon Kinesis Data Analytics SQL para aplicaciones

Tras considerarlo detenidamente, hemos decidido interrumpir Amazon Kinesis Data Analytics SQL para aplicaciones en dos pasos:

1. A partir del 15 de octubre de 2025, no podrá crear nuevos Kinesis Data Analytics SQL para aplicaciones.

2. Eliminaremos sus aplicaciones a partir del 27 de enero de 2026. No podrá iniciar ni utilizar Amazon Kinesis Data Analytics SQL para aplicaciones. A partir de ese momento, el soporte para Amazon Kinesis Data Analytics dejará SQL de estar disponible. Para obtener más información, consulte Suspensión de Amazon Kinesis Data Analytics SQL for Applications.

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.

Operaciones de streaming de datos: uniones de secuencias

Puede tener varias secuencias en la aplicación en su aplicación. Puede escribir JOIN consultas para evaluar los datos de estas secuencias. Suponga, por ejemplo, que tiene la siguiente secuencia en la aplicación:

  • OrderStream— Recibe los pedidos de stock que se están realizando.

    (orderId SqlType, ticker SqlType, amount SqlType, ROWTIME TimeStamp)
  • TradeStream— Recibe las operaciones bursátiles resultantes de esos pedidos.

    (tradeId SqlType, orderId SqlType, ticker SqlType, amount SqlType, ticker SqlType, amount SqlType, ROWTIME TimeStamp)

Los siguientes son ejemplos de consultas JOIN que correlacionan datos en estas secuencias.

Ejemplo 1: Informar sobre las órdenes que se negocian en menos de un minuto

En este ejemplo, su consulta une OrderStream y TradeStream. No obstante, como solo queremos operaciones que tienen lugar en el minuto siguiente a las órdenes, la consulta define la ventana de 1 minuto para TradeStream. Para obtener información sobre consultas en ventana, consulte Ventanas deslizantes.

SELECT STREAM ROWTIME, o.orderId, o.ticker, o.amount AS orderAmount, t.amount AS tradeAmount FROM OrderStream AS o JOIN TradeStream OVER (RANGE INTERVAL '1' MINUTE PRECEDING) AS t ON o.orderId = t.orderId;

Puede definir las ventanas de forma explícita utilizando la cláusula WINDOW y escribiendo las consultas anteriores de la siguiente manera:

SELECT STREAM ROWTIME, o.orderId, o.ticker, o.amount AS orderAmount, t.amount AS tradeAmount FROM OrderStream AS o JOIN TradeStream OVER t ON o.orderId = t.orderId WINDOW t AS (RANGE INTERVAL '1' MINUTE PRECEDING)

Al incluir esta consulta en el código de la aplicación, este se ejecuta de forma continua. Para cada uno de los registros que llegan en OrderStream, la aplicación emite una salida si hay operaciones dentro de la ventana de 1 minuto a partir del momento en que se cursó la orden.

La unión en las consultas anteriores es una unión interna donde la consulta emite los registros en OrderStream para los que existe un registro en TradeStream (y viceversa). Con una unión exterior puede crear otro escenario interesante. Supongamos que desea órdenes bursátiles para las que no se han producido operaciones al cabo de un minuto de emitir la orden y también operaciones comunicadas dentro de la misma ventana, pero para otras órdenes. Este es un ejemplo de unión exterior.

SELECT STREAM ROWTIME, o.orderId, o.ticker, o.amount AS orderAmount, t.ticker, t.tradeId, t.amount AS tradeAmount, FROM OrderStream AS o LEFT OUTER JOIN TradeStream OVER (RANGE INTERVAL '1' MINUTE PRECEDING) AS t ON o.orderId = t.orderId;