GABUNGAN

✅ Azure Stream Analytics ✅ Fabric Eventstream

Menggabungkan hasil dua kueri atau lebih ke dalam satu tataan hasil yang menyertakan semua baris yang termasuk dalam semua kueri dalam gabungan. Operasi UNION berbeda dengan menggunakan gabungan yang menggabungkan kolom dari dua tabel.

Berikut ini adalah aturan dasar untuk menggabungkan kumpulan hasil dua kueri dengan menggunakan UNION:

  • Aliran harus memiliki kunci partisi dan jumlah partisi yang sama (pelajari selengkapnya tentang partisi di sini)
  • Angka dan urutan kolom harus sama dalam semua kueri.
  • Jenis data harus kompatibel.

Penting

Jika input memiliki jumlah partisi yang berbeda, penskalaan tidak dimungkinkan karena penskalaan pekerjaan Azure Stream Analytics memanfaatkan partisi dalam input dan output.

Sintaksis

  { <query_specification> | ( <query_expression> ) }   
  UNION  
  <query_specification | ( <query_expression> )   
 [ UNION <query_specification> | ( <query_expression> )   
    [ ...n ] ]  
  

Argumen

< > query_specification | ( <query_expression> )

Adalah spesifikasi kueri atau ekspresi kueri yang mengembalikan data untuk dikombinasikan dengan data dari spesifikasi kueri atau ekspresi kueri lain. Definisi kolom yang merupakan bagian dari operasi UNION harus sama atau harus dinamai sama menggunakan alias dan harus kompatibel.

union

Menentukan bahwa beberapa kumpulan hasil akan digabungkan dan dikembalikan sebagai satu tataan hasil. UNION menggabungkan semua baris ke dalam hasil. Ini termasuk duplikat.

Contoh

SELECT TollId, EntryTime AS Time, LicensePlate   
FROM Input1 TIMESTAMP BY EntryTime   
UNION  
SELECT TollId, ExitTime AS Time, LicensePlate   
FROM Input2 TIMESTAMP BY ExitTime  
  

Jika perlu, aliran dapat dipartisi ulang agar sesuai (baik dalam pekerjaan yang sama seperti di bawah ini, atau yang lain untuk mencapai performa yang lebih baik):

WITH Input1_P as (
SELECT * FROM Input1 PARTITION BY partitionId INTO 2
),

Input2_P as (
SELET * FROM Input2 PARTITION BY partitionId INTO 2
)

SELECT TollId, EntryTime AS Time, LicensePlate   
FROM Input1_P TIMESTAMP BY EntryTime
UNION  
SELECT TollId, ExitTime AS Time, LicensePlate   
FROM Input2_P TIMESTAMP BY ExitTime