Есть ли способ проверить, есть ли мои входные данные Stream Analytics уже в таблице? - PullRequest
0 голосов
/ 23 января 2020

У меня есть вход от iothub для потоковой аналитики (SA). Этот вход содержит данные, обнаруженные устройством Bluetooth, и я храню их в базе данных (выход SA) в таблице с именем InputMessages . Проблема в том, что у меня есть другая таблица ( Devices ) с устройствами, которые он должен обнаружить. Его первичный ключ - MA C обнаруженных устройств, который также связан с inputMessages от FK. Иногда у меня возникает ошибка при вводе аналитики потока, потому что обнаруженное устройство отсутствует в таблице устройств. Я пытаюсь выполнить meka filter для запроса SA, чтобы избежать этого, чтобы избежать отправки сообщений от устройств, которые не находятся в таблице Devices с этим кодом, но он не работает.

Запрос выглядит следующим образом:

    IF EXISTS(
            SELECT deviceId
            FROM inputSqlDevices D, inputIotHub M
            WHERE D.deviceId= M.deviceId') BEGIN

    SELECT
        Message
    INTO
        outputsql
    FROM
        inputiothub
    WHERE
    END

Есть предложения?

Спасибо!

1 Ответ

0 голосов
/ 27 января 2020

Нет встроенного оператора ASA или элементов запроса может реализовать вышеуказанный псевдокод, как я знаю.

Поскольку вашим препятствием является ограничение внешнего ключа при записи в базу данных. В качестве обходного пути, я бы предложил вам настроить Azure функцию в качестве вывода задания ASA. Вы можете выбрать свойства и передать их в функцию azure! Затем внутри функции azure вы можете сделать судья по вопросу ограничения внешнего ключа. В любом случае, легко убедиться, что данные будут записаны в базу данных только в том случае, если они удовлетворяют условиям кодирования.

Подробнее, пожалуйста, обратитесь к этому do c: https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-with-azure-functions. Это для Redis, ваш пункт назначения sql дБ. Никаких различий, я думаю.

...