Partager via


JOIN avec des données de référence

✅ Azure Stream Analytics ✅ Fabric Eventstream

Dans un scénario habituel, nous utilisons un moteur de traitement des événements pour calculer les données de streaming avec une très faible latence. Dans de nombreux cas, les utilisateurs doivent mettre en corrélation les données historiques persistantes ou un jeu de données à variation lente (par exemple, les données de référence) avec le flux d’événements en temps réel pour prendre des décisions plus intelligentes sur le système. Par exemple, joignez mon flux d’événements à un jeu de données statique qui mappe les adresses IP aux emplacements. Il s’agit de la seule jointure prise en charge dans Stream Analytics où une limite temporelle n’est pas nécessaire. Les données de référence peuvent également être utilisées pour avoir des valeurs de seuil spécifiques à l’appareil.

Exemple :

Si un véhicule commercial est inscrit auprès de la Compagnie de péage, il peut passer par la cabine de péage sans être arrêté pour inspection. Nous allons utiliser une table de recherche d’inscription des véhicules commerciaux pour identifier tous les véhicules commerciaux ayant expiré.

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'

Particularités de la jointure de données de référence

  • L’utilisation de Reference Data JOIN nécessite qu’une source d’entrée pour les données de référence soit définie.
  • Les données de référence JOIN sont prises en charge pour join interne (valeur par défaut) et JOIN externe gauche, avec des données de référence sur le côté droit de l’opérateur JOIN.
  • Les types de données sont un aspect important dans l’évaluation du prédicat de jointure (ON clause). Des valeurs similaires sur différents types de données (1.0 et "1") peuvent ne pas être mises en correspondance. La conversion explicite de clés en type commun est recommandée.
  • Les données de référence peuvent être statiques (chargées une seule fois) ou dynamiques (actualisées régulièrement). Toutefois, même dans le cas dynamique, les données de référence ne progressent pas dans le temps afin que le flux de gauche ait besoin d’obtenir de nouveaux événements afin de produire des sorties. Découvrez également comment le temps progresse dans Azure Stream Analytics pour plus d’informations.

Considérations relatives aux performances

Pour éviter les dégradations des performances, les prédicats de jointure de référence (ON clause) doivent être définis via des égalités de clé simples (ON s.myKey = r.myKey). L’utilisation d’expressions complexes ou d’inégalités entraîne en interne des jointures croisées suivies de filtres (analyse complète et recherche), ce qui peut avoir un impact sur la latence globale.

Si possible, déplacez ces expressions complexes vers la WHERE clause de l’étape de requête ou joignez les mêmes données de référence plusieurs fois chacune avec des conditions plus simples.

Voir aussi