2016-08-10 2 views
1

У меня есть простой запрос в ASA с входа IoT Hub, чтобы каждый раз посчитать средний расчет каждую секунду для powerbi. Я вижу, что первые данные поступают на PowerBi через 15-20 секунд после того, как IoT Hub получает вход. Есть ли что-нибудь, что я могу сделать, чтобы уменьшить эту задержку?Как изменить задержку от ASA к PowerBi

Запрос: Параметры заказа

SELECT AVG(CAST(acctotal as float)) as average_shake, 
     CAST(MAX(eventTime) as datetime) as time 
INTO powerbioutput 
FROM iothubinput 
TIMESTAMP BY eventTime 
GROUP BY TumblingWindow(second, 1) 

событий сохраняются значения по умолчанию ОПОЗДАНИЕ Дни: 00, Время работы: 00, минут: 00, Секунды: 05 Из протокола заказа: 00, Секунды: 00 Действие: Отрегулируйте

+0

Увеличение единиц потоковой передачи по умолчанию от 1 до максимума 6 уменьшило задержку до 8-10 секунд. Что-нибудь еще, что я могу сделать? –

+0

Можете ли вы опубликовать свой запрос, а также опубликовать настройки вашего заказа на участие? – GregGalloway

+0

Добавление запроса и настроек в исходный вопрос –

ответ

0

Если вы используете системную метку времени, а не время события, я думаю, вы увидите задержку. Попробуйте просто удалив строку «TIMESTAMP BY eventTime»

+0

Удалив только TIMESTAMP BY, задание не возвращает никакого вывода вообще. Есть ли TIMESTAMP в EnquedTime или аналогичный, где я могу заставить его использовать входящую метку времени? –

+0

Кстати, на новом портале появляется ошибка, когда я меняю время задержки на поздний прием до 0, оно обновляется до значения по умолчанию 5 секунд. Хотя на старом портале я вижу, что он обновляется до 0 секунд в любом случае –

+0

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

0

Вы можете получить системное время - то есть метку времени, данное событие, как она проходит через ASA - через:

SELECT System.Timestamp 

Как указано в MSDN.

здание на ответ Джоша: возможно, вы могли бы попробовать что-то вроде:

SELECT AVG(CAST(acctotal as float)) as average_shake, 
    System.Timestamp as time 
INTO powerbioutput 
FROM iothubinput 
TIMESTAMP BY time 
GROUP BY TumblingWindow(second, 1) 
0

Каков объем ваших входных событий и что такое количество разделов IoTHub? ASA объединяет форму данных. IOTHub разделяет и упорядочивает события по времени для вычисления агрегации, определенной в запросе. Если у вас много разделов и относительно небольшое количество событий, могут возникнуть дополнительные задержки, так как некоторые разделы IoTHub могут не иметь данных, и ASA будет ожидать появления данных (максимальная задержка контролируется политикой позднего прибытия).

Если это так, вы можете использовать меньшее количество разделов IoTHub. В целом вы будете наблюдать меньшую задержку в ASA при параллельной обработке разделов (используйте предложение PARTITION BY). Недостатком является то, что в конечном итоге вы получите частичные совокупные значения для каждого раздела. Вероятно, вы можете объединить их в PowerBI.

Смежные вопросы