Храните большие данные IoT с высокой частотой в облаке - PullRequest
0 голосов
/ 22 октября 2018

Я создаю устройство IoT, которое будет производить 200 КБ данных в секунду, и мне нужно сохранить эти данные в хранилище.У меня сейчас около 500 устройств, я пытаюсь выяснить, как лучше всего хранить данные?И лучшая база данных для этого?В прошлом я сохранял данные в BigQuery GCP и выполнял обработку с использованием групп экземпляров механизма вычислений, но размер данных был намного меньше.

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Вы также можете посмотреть на IoT Core как на возможный способ обработки части балансировки нагрузки (она автоматически масштабируется).Были бы некоторые предварительные затраты на регистрацию всех ваших устройств, но затем он также обрабатывает безопасное соединение (стек TLS + JWT-шифрование для обеспечения безопасности на устройствах, использующих IoT Core).

С 500 устройствами и 200 КБ / с,это звучит хорошо в пределах возможностей системы для обработки.Pub / Sub является ограничителем, и он обрабатывает от 1 до 2 миллионов сообщений в секунду, поэтому все должно быть в порядке.

0 голосов
/ 22 октября 2018

Это мой лучший ответ, основанный на ограниченной информации в вашем вопросе.

Первым шагом является документирование / описание типа данных, которые вы обрабатываете.Это структурированные данные (SQL) или неструктурированные (NoSQL)?Какие типы запросов вам нужно сделать?Как долго вам нужно хранить данные и каков ожидаемый общий объем данных.Это определит выбор серверной части, выполняющей обработку запросов и аналитику.

Далее вам нужно посмотреть на скорость передачи данных.При скорости 200 Кбит (или 200 КБ), умноженной на 500 устройств, это составляет 100 Мбит (или 800 Мбит) в секунду.Насколько ценны данные и насколько терпим ваш дизайн к потере данных?Какова скорость передачи данных для каждого устройства (сотовая, беспроводная и т. Д.) И надежность соединения?.

Чтобы поместить данные в облако, я бы использовал Pub / Sub.Затем обработайте данные для слияния, объединения, сжатия, очистки и т. Д. И отправьте их в Google Cloud Storage или BigQuery (но могут быть и другие варианты, такие как Cloud SQL или Cloud Datastore / BigTable).Ответ для промежуточного процессора зависит от предыдущих вопросов, но вам потребуется некоторая мощность для обработки такой скорости потока данных.Возможные варианты: Google Cloud Dataproc, на котором запущен Spark, или Google Cloud Dataflow.

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

...