ПРИСОЕДИНЯЙТЕСЬ к Azure Stream Analytics - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть требование проверять значения одного столбца с основными данными в потоковой аналитике.

Я написал запросы для извлечения некоторых данных из расположения большого двоичного объекта, и одно значение столбца должно быть проверено поосновные данные, доступные в другом месте BLOB-объекта.

Ниже приведен SAQL, который я пробовал. сигналы1 - это основные данные в BLOB-объектах, а сигналы2 - это обработанные и подлежащие проверке данные:

WITH MASTER AS (
SELECT [signals1].VAL as VAL
FROM [signals1]
)

SELECT 
    ID,
    VAL,
    SIG
INTO [output]
FROM signals2

Я должен проверить VAL из сигналов2, которые должны быть проверены по VAL в сигналах 1.

Если VAL в сигналах 2 присутствует в сигналах 1, то мы должны записать на выход. Если VAL в сигналах 2 отсутствует в сигналах 1, то этот документ следует игнорировать (не записывать в вывод).

Я пытался использовать предложения JOIN и WHERE, но не работал должным образом. Любые лиды, как этого добиться, используя JOIN или ГДЕ?

1 Ответ

1 голос
/ 06 ноября 2019

Если ваши данные Signal1 являются эталонным вводом, а Signal2 является потоковым вводом, вы можете использовать что-то вроде следующего запроса:

with signals as (select * from Signal2 I join Signal1 R ON I.Val = R.Val)

select * into output from signals

Я проверил этот запрос локально и предположил, что ваша ссылкаданные (Signal1) имеют формат:

[
    {
       "Val":"123",
       "Data":"temp"
    },
    {
       "Val":"321",
       "Data":"humidity"
    }
]

Например, ваш Signal2 - потоковый вход:

{
   "Val":"123",
   "SIG":"k8s23kk",
   "ID":"1234589"
}

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

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

enter image description here

...