Потоковая аналитика набирает среднее значение за 1 год из истории - PullRequest
0 голосов
/ 24 января 2019

У меня есть работа с Stream Analytics ВХОДЫ:

1) «InputStreamCSV» - связан с концентратором событий и получает данные. InputStreamHistory
2) «InputStreamHistory» - входной поток, связанный BlobStorage. InputStreamCSV

ВЫХОДЫ:
1) «AlertOUT» - связан с хранилищем таблицы и вставляет событие тревоги в виде строки в таблице

Я хочу рассчитать СРЕДНЮЮ сумму для всех транзакций за 2018 год (одно число - 5,2) и сравнить ее с транзакцией, которая наступает в 2019 году:
Если сумма новой транзакции больше средней - поместите эту транзакцию в вывод «AlertOUT».

Я рассчитываю среднее значение как:

SELECT AVG(Amount) AS TresholdAmount
FROM InputStreamHistory 
group by TumblingWindow(minute, 1)

Получение новой транзакции как:

SELECT * INTO AlertOUT FROM InputStreamCSV TIMESTAMP BY EventTime

Как можно объединить эти 2 запроса, чтобы можно было проверить, больше ли сумма новой транзакции, чем средняя сумма транзакции за прошлый год?

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Пожалуйста, используйте JOIN оператор в ASA SQL, вы можете обратиться к ниже SQL, чтобы попытаться объединить 2 запроса SQL.

WITH 
t2 AS
(
    SELECT AVG(Amount) AS TresholdAmount
    FROM jsoninput2 
    group by TumblingWindow(minute, 1)
)
select t2.TresholdAmount
from jsoninput t1 TIMESTAMP BY EntryTime   
JOIN t2 
ON DATEDIFF(minute,t1,t2) BETWEEN 0 AND 5  
where t1.Amount > t2.TresholdAmount

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

0 голосов
/ 25 января 2019

Если вы сравниваете среднее значение за прошлый год с текущим потоком, было бы лучше использовать справочные данные.Вычислите средние значения для 2018 года, используя либо саму asa, либо другую систему запросов для BLOB-объекта хранилища.После этого вы можете использовать BLOB-объект в качестве справочных данных в запросе asa - он заменит среднее вычисление в вашем примере.

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

Даже если вы хотите периодически обновлять средние значения, приведенный выше шаблон будет работать.В зависимости от частоты обновления вы можете использовать другое рабочее задание или пакетное аналитическое решение.

...