Я понимаю желание сделать это с помощью Open Source Storm или Spark.
Но я также хотел бы предложить решение на 100% Azure, потому что лично я нашел его отличным способом быстро делать многие «простые» вещи с потоковыми данными.
Во-первых, у нас есть служебные шины, которые могут содержать концентраторы событий. Концентратор событий - это хорошо управляемая очередь, из которой можно передавать события данных в облако. В очереди есть функция паузы и перемотки, поэтому, если вам нужно изменить своего потребителя, вы можете быть уверены, что не потеряете данные. Вы также можете установить память для очереди до 7 дней (это стоит немного дороже, чем, скажем, хранение данных только в течение 24 часов).
Когда данные находятся в концентраторе событий, можно использовать Azure Stream Analytics вместо Storm или Spark для извлечения данных из очереди. Stream Analytics использует SQL для запроса очереди. К одному прикрепляются источники входных и выходных данных. Входными данными могут быть концентраторы событий, большие двоичные объекты или даже наборы справочных данных. Выходные данные могут включать другой концентратор событий, лазерный BLOB-объект, лазерную таблицу, базы данных SQL или даже визуализацию в реальном времени в PowerBI. Stream Analytics имеет единицу масштабирования, называемую «Streaming Units», где каждая единица равна 1 МБ / с пропускной способности для обработки. Вы платите только за обрабатываемые данные, поэтому, если поток идет нормально, вы не платите, в отличие от использования Storm или Spark в облаке. Stream Analytics может даже обрабатывать сообщения совершенно разных форматов, хотя я бы рекомендовал иметь хотя бы одно поле с идентификатором для вашего типа сообщения. Основные запросы Stream Analytics, которые хранят ваши потоковые данные в больших двоичных объектах, могут выглядеть следующим образом
Select * from EventHub into Blob
В Stream Analytics можно обернуть веб-службу машинного обучения Azure как функцию. Это позволяет вызывать AML и оценивать потоковые данные в режиме реального времени. Stream Analytics может интеллектуально создавать микропакеты вызовов AML, что означает, что он может оценивать до 200 решений за один вызов AML. Просто убедитесь, что вы масштабировали веб-службу AML, чтобы не отставать от потока.
Я надеюсь, что это будет правильным ответом на поставленный вопрос, но, раскрывая информацию, я работаю на Microsoft над этими продуктами, но надеюсь сделать это более информативным, чем коммерческое предложение.
person
Dan Ciborowski - MSFT
schedule
24.02.2016