Compartilhar via


Dados de referência JOIN (Azure Stream Analytics)

Em um cenário comum, usamos um mecanismo de processamento de eventos para calcular dados de streaming com latência muito baixa. Em muitos casos, os usuários precisam correlacionar dados históricos persistentes ou um conjunto de dados de alteração lento (também conhecido como dados de referência) com o fluxo de eventos em tempo real para tomar decisões mais inteligentes sobre o sistema. Por exemplo, unir meu fluxo de eventos a um conjunto de dados estático que mapeia endereços IP para locais. Essa é a única JOIN com suporte no Stream Analytics onde um limite temporal não é necessário. Os dados de referência também podem ser usados para ter valores de limite específicos do dispositivo.

Exemplo

Se um veículo comercial é registrado com a empresa Toll Company, eles podem passar pelo pedágio sem ser parado para inspeção. Usaremos uma tabela de pesquisa de registro de veículo comercial para identificar todos os veículos comerciais com o registro expirado.

SELECT I1.EntryTime, I1.LicensePlate, I1.TollId, R.RegistrationId  
FROM Input1 I1 TIMESTAMP BY EntryTime  
JOIN Registration R  
ON I1.LicensePlate = R.LicensePlate  
WHERE R.Expired = '1'

Particularidades de JOIN de dados de referência

  • Usar a JOIN de dados de referência requer que uma fonte de entrada para os dados de referência seja definida.
  • Os dados de referência JOIN têm suporte para JOIN interno (padrão) e JOIN externo esquerdo, com dados de referência no lado direito do operador JOIN.
  • Os tipos de dados são um aspecto importante na avaliação do predicado de junção (ON cláusula). Valores semelhantes em diferentes tipos de dados (1.0 e "1") podem não ser correspondidos. É recomendável converter explicitamente chaves em um tipo comum.
  • Os dados de referência podem ser estáticos (carregados apenas uma vez) ou dinâmicos (atualizados regularmente). No entanto, mesmo no caso dinâmico, os dados de referência não fazem o progresso do tempo, portanto, o fluxo no lado esquerdo precisa obter novos eventos para produzir saídas. Confira também como o tempo progride no azure Stream Analytics para obter mais informações.

Considerações sobre o desempenho

Para evitar degradações de desempenho, predicados de junção de referência (ON cláusula) devem ser definidos por meio de equalidades de chave simples (ON s.myKey = r.myKey). O uso de expressões complexas ou desigualdades resultará internamente em junções cruzadas seguidas por filtros (verificação completa versus pesquisa), que podem afetar a latência geral.

Quando possível, mova essas expressões complexas para a WHERE cláusula da etapa de consulta ou junte os mesmos Dados de Referência várias vezes cada uma com condições mais simples.

Consulte Também