СОЮЗ

✅ Поток событий Azure Stream Analytics ✅ Fabric

Объединяет результаты двух или более запросов в один результирующий набор, включающий все строки, принадлежащие всем запросам в союзе. Операция UNION отличается от использования соединений, которые объединяют столбцы из двух таблиц.

Ниже приведены основные правила объединения результирующих наборов двух запросов с помощью UNION:

  • Потоки должны иметь один и тот же ключ секции и число секций (дополнительные сведения о разделах здесь)
  • Число и порядок столбцов должны совпадать во всех запросах.
  • Типы данных должны быть совместимыми.

Это важно

Если входные данные имеют другое количество секций, масштабирование невозможно, так как масштабирование задания Stream Analytics использует преимущества секций во входных и выходных данных.

Синтаксис

  { <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