JOIN de datos de referencia (Análisis de transmisiones de Azure)
En un escenario habitual, usamos un motor de procesamiento de eventos para calcular la transmisión de datos con una latencia muy baja. En muchos casos, los usuarios deben correlacionar datos históricos persistentes o un conjunto de datos de cambios lentos (es decir, datos de referencia) con la transmisión de datos en tiempo real para tomar decisiones más inteligentes sobre el sistema. Por ejemplo, combinar mi transmisión de eventos con un conjunto de datos estático que asigna direcciones IP a ubicaciones. Esta es la única operación JOIN admitida en de Stream Analytics, donde no se requiere de un límite temporal. Los datos de referencia también se pueden usar para tener valores de umbral específicos del dispositivo.
Ejemplo
Si un vehículo comercial está registrado en la empresa de peaje, puede pasar por la cabina de peaje sin detenerse para inspección. Usaremos una tabla de búsqueda de registro de vehículos comerciales para identificar todos los vehículos comerciales con registros expirados.
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 la combinación de datos de referencia
- El uso de JOIN de datos de referencia requiere definir un origen de entrada para los datos de referencia.
- Los datos de referencia JOIN se admiten para JOIN interno (valor predeterminado) y JOIN externo izquierdo, con datos de referencia en el lado derecho del operador JOIN.
- Los tipos de datos son un aspecto importante en la evaluación del predicado de combinación (
ON
cláusula ). Es posible que no coincidan valores similares en distintos tipos de datos (1.0
y"1"
). Se recomienda convertir explícitamente las claves en un tipo común. - Los datos de referencia pueden ser estáticos (cargados solo una vez) o dinámicos (se actualizan periódicamente). Sin embargo, incluso en el caso dinámico, los datos de referencia no realizan el progreso de tiempo, por lo que la secuencia del lado izquierdo debe obtener nuevos eventos para generar salidas. Consulte también cómo progresa el tiempo en Azure Stream Analytics para más información.
Consideraciones de rendimiento
Para evitar degradaciones del rendimiento, los predicados de combinación de referencia (ON
cláusula) deben definirse mediante igualdades de clave simples (ON s.myKey = r.myKey
). El uso de expresiones complejas, o desigualdades, provocará internamente combinaciones cruzadas seguidas de filtros (análisis completo frente a búsqueda), lo que puede afectar de forma inversa a la latencia general.
Cuando sea posible, mueva estas expresiones complejas a la WHERE
cláusula del paso de consulta o una los mismos datos de referencia varias veces cada una con condiciones más sencillas.