

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

1. Mulai **1 September 2025,** kami tidak akan memberikan perbaikan bug untuk Amazon Kinesis Data Analytics untuk aplikasi SQL karena kami akan memiliki dukungan terbatas untuk itu, mengingat penghentian yang akan datang.

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

3. Kami akan menghapus aplikasi Anda mulai **27 Januari 2026**. Anda tidak akan dapat memulai atau mengoperasikan Amazon Kinesis Data Analytics untuk aplikasi SQL. Support tidak akan lagi tersedia untuk Amazon Kinesis Data Analytics untuk SQL sejak saat itu. Untuk informasi selengkapnya, lihat [Amazon Kinesis Data Analytics untuk penghentian Aplikasi SQL](discontinuation.md).

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
<a name="stream-joins-concepts"></a>

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
<a name="join-ex1"></a>

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](sliding-window-concepts.md).

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