2016-08-01 2 views
0

я реализовал очень простой Streaming Analytics запроса:Azure Streaming Analytics вход/выход

SELECT 
    Collect() 
FROM 
    Input TIMESTAMP BY ts 
GROUP BY 
    TumblingWindow(second, 3) 

я произвожу на входе концентратора события с питона сценарием:

... 
iso_ts = datetime.fromtimestamp(ts).isoformat() 
data = dict(ts=iso_ts, value=value) 
msg = json.dumps(data, encoding='utf-8') 
# bus_service is a ServiceBusService instance 
bus_service.send_event(HUB_NAME, msg) 
... 

потребляет из очереди:

... 
while True: 
    msg = bus_service.receive_queue_message(Q_NAME, peek_lock=False) 
    print msg.body 
... 

Проблема в том, что я не вижу никакой ошибки из любой точки портала Azure (вход и выход являются t ested и все в порядке), но я не могу получить какой-либо результат из моего текущего процесса!

Я разделяю картину диагностики, запрос работает: enter image description here

Может кто-нибудь дать мне идею где начать поиск неисправностей?

Большое вам спасибо!

UPDATE

Хорошо, я предполагаю, что я выделил проблему.
Прежде всего, формат запроса должен выглядеть так:

SELECT 
    Collect() 
INTO 
    [output-alias] 
FROM 
    [input-alias] TIMESTAMP BY ts 
GROUP BY 
    TumblingWindow(second, 3) 

Я попытался удалить пункт TIMESTAMP BY и все идет хорошо; поэтому, я думаю, проблема связана с этим предложением.

счетный пример JSON-сериализации входных данных:

{ 
    "ts": "1970-01-01 01:01:17", 
    "value": "foo" 
} 

Можно утверждать, что метка времени слишком стар (семидесятые годы), но я также попытался с текущими отметками времени, и я не получил никакого вывода и любая ошибка на входе.

Может кто-нибудь представить, что происходит не так? Спасибо!

+0

Что говорит страница мониторинга портала Azure, вы видите события ввода и были ли какие-либо ошибки? Кроме того, было ли что-нибудь в журналах операций? –

+0

Нет, я ничего не вижу! это похоже на то, что нет никакого события. Это странно, потому что я исправил 2 ошибки в кодировке тела и формате timestamp, и они были сигнализированы. Поэтому я предполагаю, что ввод был прочитан топологией ... – affo

+0

Знаете ли вы, что в 'FROM Input TIMESTAMP BY ts' строка' Input' должна соответствовать определенному имени пользователя? Например, входной псевдоним? – affo

ответ

0

Я обнаружил, что мой вопрос был дубликатом Basic query with TIMESTAMP by not producing output.

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

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

Спасибо всем!

0

Вы можете проверить очередь служебной шины с портала Azure на количество полученных сообщений?

+0

см. Обновление в вопросе chetangm. спасибо – affo

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