2016-05-30 8 views
0

Нам нужно получить данные от 1000-ти устройств IOT (температура, давление, RPM и т. Д. Всего 50+) и показать их на панели управления без большой обработки (просто проверяя, находятся ли цифры в диапазоне в противном случае повышать тревогу), но в реальном времени. Я рассмотрел и протестировал многие ресурсы блога aws, такие как Kinesis Storm ClickStream AppДанные AWS Stream от диаграмм IOT до приборной панели

Однако, я думаю, что использование шторма является излишним для такой легкой задачи. Все, что я хочу сделать, это сохранить данные в БД и показать графики (30 минут, 1 час или пользовательская дата). Это то, что я понял, до сих пор

Device -> AWS IOT(mqtt) -> Kinesis -> x -> dynamoDB -> Presenter Web APP (Laravel) я, возможно, придется использовать Node.js и Redis Pub/Sub, как указано в примере Clickstream для обновления в реальном времени на графиках и предупреждений.

Я не хочу использовать Apache Storm, потому что он находится на Java и имеет кривую обучения (и не смог найти хороший ресурс). Я знаю, что могу использовать Lambda, но не знаю, как он будет масштабироваться.

  • любые мысли по решению?
  • У AWS нет KCL для PHP, альтернатив или решений? потому что я знаком с PHP, но не с Java.

ответ

1

Apache storm - это распределенная платформа обработки событий. В вашем случае использования вы, кажется, не выполняете никаких вычислений на событиях. В основном, ваша заявка выполняет три задачи:

  1. Проникнуть данные в систему.
  2. Прочитайте данные с периода X по Y.
  3. Рисовать графики на веб-интерфейсе.

Продовольственная часть берет на вооружение AWS-IOT. Первый шаг, который вы должны сделать, - создать тему SNS и опубликовать все данные IoT до SNS тем. Здесь вы получаете гибкость, чтобы создать одну тему для каждого типа данных (например, температура, давление) и присоединить потребителей SQS к темам для накопления сообщений. Для постоянной БД один потребитель может быть DynamoDB, другой потребитель может быть функцией Lambda, которая выполняет какую-то фильтрацию и преобразование данных и обновляет ваш кеш. Если вам нужно выполнить какие-то OLAP/аналитические запросы по данным, рассмотрите возможность использования Redshift в качестве одного из потребителей. Вам нужно будет принять конкретные требования для завершения вашего проекта.

+0

спасибо @Adi, так что вы говорите, что я вообще удаляю кинезис и использую «Устройство (устройства)»>> AWS IOT (mqtt) -> SNS -> SQS -> Lambda -> dynamoDB '. вы также сказали: «Один потребитель может быть DynamoDB», что это значит? это динамо, способное напрямую сохранять данные в какую-нибудь таблицу или мне нужна лямбда? – Junaid

+0

Kinesis и SQS - это всего лишь два различных решения для массового обслуживания, которые имеют несколько иные способы. Kinesis лучше всего подходит, когда вам нужна долговечность данных, а прием пищи - в виде потока данных. Я не буду участвовать в обсуждении SQS vs Kinesis, и вы можете оценить его самостоятельно. «Один потребитель может быть DynamoDB»: когда вы публикуете сообщения, у вас есть тема SNS, у вас может быть любое количество потребителей, чтобы слушать эту тему. Поэтому он ведет себя как доставка сообщений 1 ... N. Подробнее о SNS. – Adi