Как решить 7 ключевых проблем сбора, обработки и аналитики потоковых данных IoT. Часть 1
О том, как эффективно использовать данные IoT, рассказывает Вишванат Белур. Вишнават отвечает за решения Enterprise Streaming Data Management в Informatica. О том, что такое потоковая обработка данных IoT и зачем она нужна, читайте в другой статье блога.
Данные IoT создают новые проблемы
Интернет вещей развивается такими быстрыми темпами, что к концу 2020 года на планете будет больше подключённых к нему устройств, чем людей (так подсчитала компания Cisco). При этом интернет вещей по сути своей представляет неоднородную и распределённую среду. Это накладывает значительные ограничения на то, какие методологии подойдут для сбора данных IoT и их потоковой передаче в слои обработки и аналитики.
Проблем становится ещё больше, когда речь идёт о промышленном интернете вещей, где информация собирается с тысяч датчиков. В этой статье я постарался подробно рассказать о том, что это за проблемы и как их можно эффективно решить.
Как собирать данные IoT из разрозненных источников и устройств
Сейчас есть тысячи различных платформ для поддержки устройств интернета вещей, могут быть прошиты простые устройства (например, осветительные приборы) и более сложные (медицинские аппараты, например, аппараты искусственной вентиляции лёгких). Есть возможность самому программировать работу различных устройств на основе решений open-source (например, Arduino). Можно использовать для интернета вещей промышленные облачные решения или компьютеры. Несмотря на это разнообразие большинство компаний не уделяет должного внимания сбору данных IoT. А из-за этого инновационные проекты (в том числе проекты с применением продвинутой аналитики и искусственного интеллекта) часто оказываются провальными. Часто в проекте просто подразумевается, что данные IoT будут ждать аналитиков и data scientists в нужном месте. На практике же оказывается, что нужно приложить много усилий, чтобы собрать информацию для обработки.
Существует множество различных способов взаимодействия с миллиардами датчиков, генерирующих информацию. Но из-за различных ограничений (информационная безопасность, требования вендоров и прочее) собирать данные IoT чаще всего приходится как можно ближе к датчику, который их генерирует. «Как можно ближе» значит в той же локальной сети или через физически связанный кабель. Поэтому так важно иметь возможность без проблем устанавливать программных агентов на оптимальные для сбора данных IoT участки. Кроме того, важно следить, чтобы программное обеспечение соответствовало требованиям к информационной безопасности не только на момент установки датчика, но и на протяжении всего периода его использования. Также важно учитывать, что придётся иметь дело со средами, в которые включены сотни и тысячи отдельных устройств.
Как справиться с дрейфом данных IoT
Дрейф данных IoT – это постепенное изменение их формата и семантики с течение времени. Худший вариант – когда такие изменения происходят незаметно. Но гораздо чаще часть изменений всё-таки фиксируется. Например, команда замечает новый формат данных IoT, но упускает из виду изменения в семантике, неправильно заполненные или никак не запененные поля. В любом случае при сборе данных IoT нужно помнить о дрейфе, чтобы не собирать мусор. Ниже несколько распространённых подходов, которые компании обычно применяют по отношению к дрейфу.
- Самая простая стратегия – полностью игнорировать дрейф. Компании придерживаются такого подхода, когда ничего не могут сделать с этой проблемой или когда даже не подозревают о её существовании. Очень не рекомендую так делать, так как данные IoT в этом случае будут очень низкого качества.
- Также можно при изменении формата или семантики данных IoT сразу останавливать сбор информации и оповещать всех заинтересованных сотрудников об инциденте. Этот подход самый безопасный. Благодаря ему вы избежите сбора некачественных сведений, потому что какое-то время не будете собирать ничего.
- Ещё один подход – постараться передавать только качественные данные IoT в потоковую аналитику, не прекращая сбор информации как таковой. Можно не передавать отдельные поля, в которых находится некачественная информация. При этом важно сделать советующую пометку для коллег и сообщить об инциденте тем, кто сможет устранить его.
- Ещё более сложный подход – обучить систему автоматически устранять дрейф. Например, представьте себе поле «сумма», в которое всегда попадало какое-то значение, выраженной в числах, по умолчанию в какой-либо валюте. Но по каким-то причинам в это поле начали попадать не только цифры, но и название валюты. В этой ситуации система должна автоматически определить дрейф, сообщить об этом ответственным сотрудникам и самостоятельно устранить проблему.
Дрейф – одна из ключевых причин плохого качества данных IoT. Ситуацию осложняет то, что происходит дрейф в системе, которая потом будет служить источником информации для других систем. Если у вас не будет возможности тщательно мониторить ситуацию, будет очень сложно добиться того, чтобы собираемая информация была верной. Рано или поздно сбор потоковых данных IoT будет нарушен, или, что ещё хуже, некачественная информация попадёт в различные системы компании.
Как справиться с тем, что сеть не всегда доступна
Мы привыкли к тому, что интернет сейчас доступен всегда. Однако всякое может произойти. К тому же в некоторых ситуациях использование интернета затруднено в принципе. Прекрасный пример этому – судоходное дело. Корабли, субмарины, трейлеры и яхты большую часть времени не подключены к всемирной паутине, остаются изолированными. А если подключение и есть, оно осуществляет через спутники и обычно очень дорогое. Операции на борту не могут зависеть от подключения к дата-центру на земле. В такой ситуации обычные подходы к мониторингу (сбор больших объёмов информации о параметрах работы и оповещения о сбоях через сервер) не работают. При этом те сведения, которые собираются на суднах, также хотелось бы использовать.
Выход может быть следующий: подготовить заранее процесс сбора данных IoT (в том числе и потоковых) к перебоям с интернетом – настроить процессы эффективного сохранения информации и её последующей загрузки в системы-приёмники. Частично собранные сведения можно обработать и использовать на месте, остальные – сохранить и использовать, когда связь появится. При настройке такого сохранения и отложенного использования данных IoT необходимо учитывать целый ряд важных факторов. В частности, что должно произойти при внезапном появлении сети на несколько секунд? Будут ли более приоритетными свежие данные IoT по сравнению с более старыми? Или стоит поочерёдно загружать в системы потоковые и сохранённые сведения.
О том, как справиться с другими проблемами потоковой аналитики данных IoT, читайте во второй части статьи.
Обновлено: 22.03.2023
Опубликовано: 10.08.2020