UNION (Azure Stream Analytics)

Kombinuje výsledky dvou nebo více dotazů do jedné sady výsledků, která zahrnuje všechny řádky, které patří ke všem dotazům ve sjednocení. Operace UNION se liší od použití spojení, která kombinují sloupce ze dvou tabulek.

Níže jsou uvedená základní pravidla pro kombinování sad výsledků dvou dotazů pomocí funkce UNION:

  • Streamy musí mít stejný klíč oddílu a počet oddílů (další informace o oddílech najdete tady).
  • Číslo a pořadí sloupců musí být ve všech dotazech stejné.
  • Datové typy musí být kompatibilní.

Důležité

Pokud mají vstupy jiný počet oddílů, škálování není možné, protože škálování úlohy Stream Analytics využívá oddíly ve vstupu a výstupu.

Syntaxe

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

Argumenty

<> query_specification | ( <query_expression> )

Jedná se o specifikaci dotazu nebo výraz dotazu, který vrací data, která se mají zkombinovat s daty z jiné specifikace dotazu nebo výrazu dotazu. Definice sloupců, které jsou součástí operace UNION, musí být stejné nebo musí mít stejný název pomocí aliasu a musí být kompatibilní.

UNION

Určuje, že několik sad výsledků se má zkombinovat a vrátit jako jedna sada výsledků. Funkce UNION zahrne do výsledků všechny řádky. To zahrnuje duplicity.

Příklad

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

V případě potřeby je možné datové proudy rozdělit na oddíly tak, aby odpovídaly (buď ve stejné úloze jako níže, nebo v jiné, aby se dosáhlo lepšího výkonu):

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