UNION (Azure Stream Analytics)
Kombinerar resultatet av två eller flera frågor till en enda resultatuppsättning som innehåller alla rader som tillhör alla frågor i unionen. UNION-åtgärden skiljer sig från att använda kopplingar som kombinerar kolumner från två tabeller.
Följande är grundläggande regler för att kombinera resultatuppsättningarna för två frågor med hjälp av UNION:
- Strömmar måste ha samma partitionsnyckel och partitionsantal (läs mer om partitioner här)
- Antalet och ordningen på kolumnerna måste vara samma i alla frågor.
- Datatyperna måste vara kompatibla.
Viktigt
Om indata har ett annat antal partitioner är skalning inte möjligt eftersom skalning av ett Stream Analytics-jobb utnyttjar partitioner i indata och utdata.
Syntax
{ <query_specification> | ( <query_expression> ) }
UNION
<query_specification | ( <query_expression> )
[ UNION <query_specification> | ( <query_expression> )
[ ...n ] ]
Argument
< > query_specification | ( <query_expression> )
Är en frågespecifikation eller ett frågeuttryck som returnerar data som ska kombineras med data från en annan frågespecifikation eller ett annat frågeuttryck. Definitionerna av kolumnerna som ingår i en UNION-åtgärd måste vara desamma eller måste namnges på samma sätt med hjälp av ett alias och måste vara kompatibla.
UNION
Anger att flera resultatuppsättningar ska kombineras och returneras som en enda resultatuppsättning. UNION införlivar alla rader i resultaten. Detta inkluderar dubbletter.
Exempel
SELECT TollId, EntryTime AS Time, LicensePlate
FROM Input1 TIMESTAMP BY EntryTime
UNION
SELECT TollId, ExitTime AS Time, LicensePlate
FROM Input2 TIMESTAMP BY ExitTime
Om det behövs kan strömmar partitioneras om för att matcha (antingen i samma jobb som nedan eller ett annat för att uppnå bättre prestanda):
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