Megosztás a következőn keresztül:


UNIÓ

✅ Azure Stream Analytics ✅ Fabric Eventstream

Két vagy több lekérdezés eredményét egyetlen eredményhalmazba egyesíti, amely tartalmazza az összes olyan sort, amely az egyesítő összes lekérdezéséhez tartozik. Az UNION művelet eltér a két tábla oszlopait egyesítő illesztésektől.

Az alábbi alapvető szabályok két lekérdezés eredményhalmazainak az UNION használatával történő kombinálására vonatkoznak:

  • A streameknek ugyanazzal a partíciókulcszal és partíciószámsal kell rendelkezniük (a partíciókról itt olvashat bővebben)
  • Az oszlopok számának és sorrendjének minden lekérdezésben azonosnak kell lennie.
  • Az adattípusoknak kompatibilisnek kell lenniük.

Fontos

Ha a bemenetek eltérő számú partícióval rendelkeznek, a skálázás nem lehetséges, mivel a Stream Analytics-feladatok skálázása kihasználja a bemenet és a kimenet partícióinak előnyeit.

Szemantika

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

Érvek

< > query_specification | ( <query_expression> )

Olyan lekérdezési specifikáció vagy lekérdezési kifejezés, amely egy másik lekérdezési specifikációból vagy lekérdezési kifejezésből származó adatokkal kombinálandó adatokat ad vissza. Az uniós művelet részét képező oszlopok definícióinak azonosnak kell lenniük, vagy alias használatával azonosnak kell lenniük, és kompatibilisnek kell lenniük.

UNÓ

Azt adja meg, hogy több eredményhalmazt kell egyesíteni, és egyetlen eredményhalmazként kell visszaadni. Az UNION az összes sort belefoglalja az eredményekbe. Ide tartoznak az ismétlődések.

példa

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

Szükség esetén a streamek újraparticionálásra kerülhetnek (vagy ugyanabban a feladatban, mint alább, vagy egy másikat a jobb teljesítmény érdekében):

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