Operasi Data Streaming: Gabungan Streaming - Panduan Pengembang Amazon Kinesis Data Analytics SQL untuk Aplikasi

Setelah mempertimbangkan dengan cermat, kami memutuskan untuk menghentikan Amazon Kinesis Data Analytics SQL untuk aplikasi dalam dua langkah:

1. Mulai 15 Oktober 2025, Anda tidak akan dapat membuat Kinesis Data Analytics SQL baru untuk aplikasi.

2. Kami akan menghapus aplikasi Anda mulai 27 Januari 2026. Anda tidak akan dapat memulai atau mengoperasikan Amazon Kinesis Data Analytics Anda SQL untuk aplikasi. Support tidak akan lagi tersedia untuk Amazon Kinesis Data Analytics SQL sejak saat itu. Untuk informasi selengkapnya, lihat Amazon Kinesis Data Analytics SQL untuk penghentian Aplikasi.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Operasi Data Streaming: Gabungan Streaming

Anda dapat memiliki beberapa aliran dalam aplikasi di aplikasi Anda. Anda dapat menulis kueri JOIN untuk menghubungkan data yang tiba di aliran ini. Misalnya, anggap Anda memiliki aliran dalam aplikasi berikut:

  • OrderStream— Menerima pesanan stok yang ditempatkan.

    (orderId SqlType, ticker SqlType, amount SqlType, ROWTIME TimeStamp)
  • TradeStream— Menerima perdagangan saham yang dihasilkan untuk pesanan tersebut.

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

Berikut ini adalah contoh kueri JOIN yang menghubungkan data di aliran ini.

Contoh 1: Laporkan Pesanan Jika Ada Perdagangan dalam Satu Menit Setelah Pesanan Ditempatkan

Dalam contoh ini, kueri Anda bergabung dengan OrderStream dan TradeStream. Namun, karena kita hanya menginginkan perdagangan yang ditempatkan satu menit setelah perintah, kueri mendefinisikan jendela 1 menit melalui TradeStream. Untuk informasi tentang kueri jendela, lihat Jendela Geser.

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;

Anda dapat menentukan jendela secara eksplisit menggunakan klausa WINDOW dan menulis kueri sebelumnya sebagai berikut:

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)

Ketika Anda menyertakan kueri ini dalam kode aplikasi Anda, kode aplikasi berjalan terus menerus. Untuk setiap catatan yang tiba di OrderStream, aplikasi memancarkan output jika ada perdagangan dalam jendela 1 menit setelah pesanan ditempatkan.

Gabung dengan kueri sebelumnya adalah gabungan dalam tempat kueri memancarkan catatan di OrderStream ketika ada catatan yang cocok di TradeStream (dan sebaliknya). Dengan menggunakan gabuangan luar, Anda dapat membuat skenario menarik lainnya. Misalkan Anda menginginkan pesanan saham yang tidak ada perdagangan selama satu menit setelah pesanan saham ditempatkan, dan perdagangan yang dilaporkan dalam jendela yang sama, tetapi untuk beberapa pesanan lainnya. Ini adalah contoh gabungan luar.

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;