Поделиться через


JOIN для эталонных данных

✅ Поток событий Azure Stream Analytics ✅ Fabric

В обычном сценарии мы используем подсистему обработки событий для вычислений потоковых данных с очень низкой задержкой. Во многих случаях пользователям необходимо сопоставить сохраненные исторические данные или медленно изменяющийся набор данных (ака. эталонные данные) с потоком событий в режиме реального времени, чтобы принимать более умные решения о системе. Например, присоедините поток событий к статическому набору данных, который сопоставляет IP-адреса с расположениями. Это единственное соединение, поддерживаемое в Stream Analytics, где темпоральная граница не требуется. Справочные данные также можно использовать для получения пороговых значений для конкретного устройства.

Пример

Если коммерческий автомобиль зарегистрирован в компании toll, они могут пройти через платный стенд без остановки для проверки. Мы будем использовать таблицу подстановки коммерческого транспортного средства для идентификации всех коммерческих автомобилей с истекшим сроком регистрации.

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'

Особенности ссылочных данных JOIN

  • Для использования ссылочных данных JOIN требуется определить источник входных данных для ссылочных данных.
  • Ссылочные данные JOIN поддерживаются для внутреннего СОЕДИНЕНИЯ (по умолчанию) и левого внешнего СОЕДИНЕНИЯ с справочными данными справа от оператора JOIN.
  • Типы данных являются важным аспектом в оценке предиката соединения (ON предложение). Аналогичные значения для разных типов данных (1.0 и "1") могут не совпадать. Рекомендуется явно преобразовать ключи в распространенный тип.
  • Эталонные данные могут быть статическими (загруженными только один раз) или динамическими (регулярно обновляемые). Однако даже в динамическом случае справочные данные не делают ход выполнения времени, поэтому поток слева должен получить новые события для получения выходных данных. Дополнительные сведения см. в статье о прогрессе времени в azure Stream Analytics .

Вопросы, связанные с производительностью

Чтобы предотвратить снижение производительности, необходимо определить предикаты соединения ссылок (ON предложение) с помощью простых равенства ключей (ON s.myKey = r.myKey). Использование сложных выражений или неравенства в результате внутренних соединений приведет к перекрестным соединениям, за которым следуют фильтры (полная проверка и подстановка), что может повлиять на общую задержку.

По возможности переместите эти сложные выражения в WHERE предложение шага запроса или присоедините одни и те же справочные данные несколько раз каждый с более простыми условиями.

См. также