UNION (Azure Stream Analytics)
Łączy wyniki co najmniej dwóch zapytań w jeden zestaw wyników, który zawiera wszystkie wiersze należące do wszystkich zapytań w unii. Operacja UNION różni się od używania sprzężeń łączących kolumny z dwóch tabel.
Poniżej przedstawiono podstawowe reguły łączenia zestawów wyników dwóch zapytań przy użyciu funkcji UNION:
- Strumienie muszą mieć ten sam klucz partycji i liczbę partycji (dowiedz się więcej o partycjach tutaj)
- Liczba i kolejność kolumn muszą być takie same we wszystkich zapytaniach.
- Typy danych muszą być zgodne.
Ważne
Jeśli dane wejściowe mają inną liczbę partycji, skalowanie nie jest możliwe, ponieważ skalowanie zadania usługi Stream Analytics korzysta z partycji w danych wejściowych i wyjściowych.
Składnia
{ <query_specification> | ( <query_expression> ) }
UNION
<query_specification | ( <query_expression> )
[ UNION <query_specification> | ( <query_expression> )
[ ...n ] ]
Argumenty
< > query_specification | ( <query_expression> )
To specyfikacja zapytania lub wyrażenie zapytania, które zwraca dane do połączenia z danymi z innej specyfikacji zapytania lub wyrażenia zapytania. Definicje kolumn, które są częścią operacji UNION, muszą być takie same lub muszą mieć taką samą nazwę przy użyciu aliasu i muszą być zgodne.
UNION
Określa, że wiele zestawów wyników ma być połączonych i zwracanych jako pojedynczy zestaw wyników. APLIKACJA UNION uwzględnia wszystkie wiersze w wynikach. Obejmuje to duplikaty.
Przykład
SELECT TollId, EntryTime AS Time, LicensePlate
FROM Input1 TIMESTAMP BY EntryTime
UNION
SELECT TollId, ExitTime AS Time, LicensePlate
FROM Input2 TIMESTAMP BY ExitTime
Jeśli jest to konieczne, strumienie mogą być ponownie partycjonowane do dopasowania (w tym samym zadaniu co poniżej lub inne, aby osiągnąć lepszą wydajność):
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