Azure stream analytics создает динамические запросы с помощью кода

#azure-stream-analytics

Вопрос:

У меня есть веб-приложение, которое позволяет пользователю создавать правила оповещения о некоторых значениях датчиков в пользовательском интерфейсе браузера. В результате пользователь может создать любое количество правил оповещения о значениях датчиков. AWS IoT core позволяет создавать несколько правил оповещения с помощью JS SDK. Аналогичная вещь, которую я искал в Azure Stream analytics[ASA], но я нашел некоторые блокировщики, перечисленные ниже:-

  1. ASA не предоставляет JS sdk для создания запросов во время выполнения. По крайней мере, я не мог найти его в Интернете. Пожалуйста, помогите, если есть что-то, что позволяет создавать запросы во время выполнения.
  2. Если пункт 1 соответствует истине, позволяет ли ASA мне создавать несколько запросов. Например, мне нужно создать несколько предупреждений с различными условиями. Пожалуйста, помогите.

Ответ №1:

Что касается вашей первоначальной потребности, в этой статье подробно описан шаблон для реализации динамических правил с помощью набора справочных данных. Итак, один единственный запрос, загрузка определений правил из базы данных или файла.

Что касается 1 и 2, у ASA есть .NET SDK или API REST. Но нет никакого JavaScript SDK.

Комментарии:

1. У меня нет статического набора справочных данных, операторы не статичны. Правила должны быть созданы в коде на основе некоторой бизнес — логики и переданы ASA в виде запроса. Я не думаю, что ваш подход с набором справочных данных сработает.

2. Шаблон динамических правил позволяет обслуживать правила, которые динамически создаются пользователями. Эталонный набор данных-это просто таблица в SQL Azure (или файл в учетной записи хранения), в которой хранится определение этих правил, включая его область действия (идентификатор устройства), оператор (через перечисление правил, которые вы поддерживаете, например, БОЛЬШЕ, БОЛЬШЕ РАВНО..), поле, к которому оно применяется (с динамическим доступом в запросе через GetRecordPropertyValue) и значение порога. Таким образом, запись в этой таблице может выглядеть следующим образом (идентификатор устройства, «Температура», «БОЛЬШЕ», 70). Затем в запросе вы присоединяетесь к нему

3. Когда пользователь создает правило в вашем пользовательском интерфейсе, ваше приложение вставит в эту таблицу/файл строку со всей необходимой информацией (область, оператор, поле, значение). Эта таблица/файл является вашим справочным набором данных в ASA.

4. Что касается вашего комментария о вставке справочных данных в таблицу, допустим, я вставил в таблицу 1000 объектов JSON. Теперь будут ли все 1000 справочных данных об объектах JSON оцениваться ASA при каждом потоковом событии? Если да, то мне нужно, чтобы результат составлял 1000 объектов, так как все 1000 правил справочных данных сохранены в таблице по-разному.

5. Чтобы избежать декартовых соединений, лучше иметь некоторую ссылку на область действия в ваших правилах да. Чем уже правило, тем лучше с точки зрения производительности соединения, но тогда вам, возможно, придется иметь дело с ограничениями базового набора данных в ASA ( docs.microsoft.com/en-us/azure/stream-analytics/… ).