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


Присоединение эталонных данных (Azure Stream Analytics)

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

Пример

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

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 с ссылочными данными в правой части оператора JOIN.
  • Типы данных являются важным аспектом при оценке предиката соединения (ON предложение ). Похожие значения для разных типов данных (1.0 и "1") могут не совпадать. Рекомендуется явно преобразовать ключи в общий тип.
  • Эталонные данные могут быть статическими (загружаются только один раз) или динамическими (регулярно обновляются). Однако даже в динамическом случае ссылочные данные не делают время выполнения, поэтому потоку на левой стороне необходимо получить новые события для получения выходных данных. Дополнительные сведения см. в статье о динамике времени в Azure Stream Analytics .

Вопросы производительности

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

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

См. также: