Share via


UNION (Azure Stream Analytics)

Combina los resultados de dos o más consultas en un conjunto de resultados único que incluye todas las filas que pertenecen a todas las consultas de la unión. La operación UNION es distinta de la utilización de combinaciones de columnas de dos tablas.

A continuación se muestran las reglas básicas para combinar los conjuntos de resultados de dos consultas con UNION:

  • Los flujos deben tener la misma clave de partición y el mismo recuento de particiones (obtenga más información sobre las particiones aquí).
  • El número y el orden de las columnas debe ser el mismo en todas las consultas.
  • Los tipos de datos deben ser compatibles.

Importante

Si las entradas tienen un número diferente de particiones, el escalado no es posible, ya que el escalado de un trabajo de Stream Analytics aprovecha las particiones en la entrada y salida.

Sintaxis

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

Argumentos

<> query_specification | ( <query_expression> )

Es una especificación de consulta o una expresión de consulta que devuelve datos que se combinarán con los datos de otra especificación de consulta o expresión de consulta. Las definiciones de las columnas que forman parte de una operación UNION deben ser iguales o deben tener el mismo nombre con un alias y deben ser compatibles.

UNION

Especifica que se deben combinar varios conjuntos de resultados para ser devueltos como un solo conjunto de resultados. UNION incorpora todas las filas en los resultados. Incluye filas duplicadas

Ejemplo

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

Si es necesario, las secuencias se pueden volver a particionar para que coincidan (ya sea en el mismo trabajo que a continuación, u otra para lograr un mejor rendimiento):

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