Compartilhar via


UNIÃO

✅ Fluxo de eventos do Azure Stream Analytics ✅ Fabric

Combina os resultados de duas ou mais consultas em um único conjunto de resultados que inclui todas as linhas que pertencem a todas as consultas na união. A operação UNION é diferente do uso de junções que combinam colunas de duas tabelas.

Veja a seguir as regras básicas para combinar os conjuntos de resultados de duas consultas usando UNION:

  • Os fluxos devem ter a mesma chave de partição e a contagem de partições (saiba mais sobre partições aqui)
  • O número e a ordem das colunas devem ser iguais em todas as consultas.
  • Os tipos de dados devem ser compatíveis.

Importante

Se as entradas tiverem um número diferente de partições, o dimensionamento não será possível, pois o dimensionamento de um trabalho do Stream Analytics aproveita as partições na entrada e na saída.

Sintaxe

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

Argumentos

< > query_specification | ( <query_expression> )

É uma especificação de consulta ou expressão de consulta que retorna dados a serem combinados com os dados de outra especificação de consulta ou expressão de consulta. As definições das colunas que fazem parte de uma operação UNION devem ser iguais ou devem ser nomeadas da mesma forma usando um alias e devem ser compatíveis.

UNIÃO

Especifica que vários conjuntos de resultados devem ser combinados e retornados como um único conjunto de resultados. UNION incorpora todas as linhas nos resultados. Isso inclui duplicatas.

Exemplo

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

Se necessário, os fluxos podem ser reparticionados para corresponder (no mesmo trabalho que abaixo ou em outro para obter um melhor desempenho):

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