UNION (Azure Stream Analytics)

2 つ以上のクエリの結果を、和集合のすべてのクエリに属しているすべての行を含む単一の結果セットに結合します。 UNION 演算は、2 つのテーブルの列を結合した結合列とは異なります。

UNION を使用して 2 つのクエリの結果セットを結合するための基本的な規則を以下に示します。

  • ストリームには、同じパーティション キーとパーティション数が必要です (パーティションの詳細 については、こちらを参照してください)
  • 列の数と順番は、すべてのクエリで同じであること
  • データ型に互換性があること

重要

入力のパーティション数が異なる場合、Stream Analytics ジョブの スケーリング では入力と出力のパーティションが利用されるため、スケーリングはできません。

構文

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

引数

< > query_specification |( <query_expression> )

別のクエリ仕様またはクエリ式からのデータと結合するデータを返すクエリ仕様またはクエリ式。 UNION 演算の一部である列の定義は、同じであるか、または別名を使用して同じ名前を付けられている必要があります。また、互換性がある必要があります。

UNION

複数の結果セットを結合し、1 つの結果セットとして返すことを指定します。 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