✅ Azure 串流分析 ✅ 網狀架構事件串流
將兩個或多個查詢的結果合併成單一結果集,其中包含屬於聯集中所有查詢的所有數據列。 UNION 作業與使用結合兩個數據表之數據行的聯結不同。
以下是使用 UNION 合併兩個查詢結果集的基本規則:
- 資料串流必須具有相同的資料分割索引鍵和資料分割計數( 在這裡深入瞭解分割區)
- 所有查詢中數據行的數目和順序都必須相同。
- 數據類型必須相容。
這很重要
如果輸入的數據分割數目 不同,則 無法調整串流分析作業利用輸入和輸出中的數據分割。
語法
{ <query_specification> | ( <query_expression> ) }
UNION
<query_specification | ( <query_expression> )
[ UNION <query_specification> | ( <query_expression> )
[ ...n ] ]
論點
<query_specification> |( <query_expression> )
這是查詢規格或查詢表達式,可傳回要與另一個查詢規格或查詢表達式之數據結合的數據。 屬於 UNION 作業之資料行的定義必須相同,或者必須使用別名命名相同且必須相容。
聯盟
指定要合併並傳回多個結果集做為單一結果集。 UNION 會將所有數據列併入結果中。 這包括重複專案。
範例
SELECT TollId, EntryTime AS Time, LicensePlate
FROM Input1 TIMESTAMP BY EntryTime
UNION
SELECT TollId, ExitTime AS Time, LicensePlate
FROM Input2 TIMESTAMP BY ExitTime
如有需要,可以 重新分割 串流以比對 (無論是在與下面的相同作業中,或另一個以達到更好的效能):
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