Вопросы и ответы по AWS IoT Analytics
Вопрос. Что такое AWS IoT Analytics?
AWS IoT Analytics – это полностью управляемый сервис аналитики IoT, который обеспечивает сбор, предварительную обработку, дополнение, хранение и анализ данных устройств IoT в любом масштабе. IoT Analytics может выполнять как простые спонтанные запросы, так и комплексный анализ. Это упрощенный способ запуска IoT-аналитики для таких примеров использования, как оценка производительности устройств, предсказание их возможных сбоев и машинное обучение. Сервис разработан специально для Интернета вещей (IoT), он автоматически захватывает и сохраняет временную метку сообщения, что облегчает выполнение анализа временных интервалов. IoT Analytics может также дополнить данные специфическими для устройства метаданными, такими как тип устройства и его местоположение, используя реестр AWS IoT. AWS IoT Analytics сохраняет данные в хранилище, оптимизированном для IoT, что позволяет выполнять запросы к большим наборам данных. AWS IoT Analytics также позволяет выполнять контейнеры с пользовательским кодом. AWS IoT Analytics автоматизирует выполнение пользовательского анализа, составленного в Jupyter Notebook или других инструментах (Matlab, Octave и т. д.), по расписанию.
Вопрос. Как работает AWS IoT Analytics?
AWS IoT Analytics полностью интегрирован с AWS IoT Core, поэтому начать работу очень просто. Сначала определите канал и выберите данные, которые требуется собирать, чтобы хранить и анализировать только нужные данные, например показания датчика температуры. После настройки канала настройте конвейеры обработки данных. Конвейеры поддерживают преобразования (например, пересчет значений в градусах по Цельсию в градусы по Фаренгейту), условные операторы, фильтрацию сообщений и их дополнение с помощью внешних источников данных и функций AWS Lambda.
После обработки данных в конвейере IoT Analytics сохраняет их для дальнейшего анализа в хранилище, оптимизированном для IoT. Сервис позволяет выполнять запросы к данным, используя встроенную систему обработки SQL-запросов, и получать ответы на конкретные, значимые для бизнеса вопросы. Предположим, требуется узнать, сколько бывает активных пользователей в месяц у каждого устройства из используемой группы. Благодаря интеграции с Amazon SageMaker IoT Analytics поддерживает более сложную аналитику, такую как байесовский вывод и машинное обучение. Кроме того, сервис интегрирован с Amazon QuickSight, что позволяет просто создавать визуальные представления и панели управления и сразу видеть аналитические результаты на основе данных IoT Analytics.
Вопрос. Можно ли выполнить пользовательский код анализа в AWS IoT Analytics?
Да, с помощью AWS IoT Analytics можно выполнить собственный пользовательский анализ, предварительно упаковав данные в контейнер. Можно импортировать контейнер со своим пользовательским кодом в набор данных контейнера и запланировать выполнение контейнера.
Вопрос. Чем набор данных SQL отличается от набора данных контейнера?
Набор данных SQL схож с материализованным представлением базы данных SQL. Набор данных SQL создается в результате применения действия SQL. Наборы данных SQL можно создавать автоматически по регулярному расписанию. Для этого достаточно указать триггер.
Набор данных контейнера позволяет автоматически запускать инструменты анализа и создавать результаты. Он объединяет набор данных SQL (в качестве входных данных), контейнер Docker с инструментами для анализа и необходимыми файлами библиотеки, входные и выходные переменные, а также дополнительный триггер расписания. Входные и выходные переменные указывают исполняемому образу, откуда брать данные и где хранить результаты. Триггер может запускать анализ, когда набор данных SQL завершит создание содержимого или в соответствии с выражением расписания. Набор данных контейнера автоматически запускает инструменты анализа, составляет анализ и сохраняет результаты.
Вопрос. Что такое окна DeltaTime?
Окна Delta – это набор определяемых пользователем неперекрывающихся и смежных временных интервалов. Окна Delta позволяют создавать содержимое наборов данных, используя новые данные, которые поступили в хранилище данных с момента последнего анализа, а также выполнять анализ этих новых данных. Чтобы создать окно Delta, нужно задать DeltaTime в разделе фильтров на странице queryAction набора данных. Это позволяет фильтровать сообщения, поступившие в определенный период времени, чтобы данные, содержащиеся в сообщениях из предыдущих периодов, не учитывались дважды.
Вопрос. Как выполнять контейнер пользовательского кода в AWS IoT Analytics с удобным мне расписанием?
В AWS IoT Analytics можно выполнять собственный пользовательский код анализа, предварительно упаковав данные в контейнер. На консоли AWS IoT Analytics или с помощью API можно создать набор данных контейнера, указав набор данных SQL, образ контейнера с пользовательским кодом, входные и выходные переменные и дополнительный триггер расписания в качестве параметра, где триггером может быть событие создания содержимого набора данных SQL или расписание. Набор данных контейнера направляет содержимое набора данных SQL в аналитический код, доступный в изображении контейнера, и автоматически выполняет образ на основе вашего триггера, создавая аналитические данные по удобному вам расписанию.
Вопрос: Какие политики хранения доступны для хранилищ данных и каналов?
Для хранилищ данных и каналов можно задать собственные политики хранения. Можно выбрать период хранения любой продолжительности. Если период хранения не выбран, сервис будет хранить данные в течение неограниченного времени.
Вопрос. Какие типы форматов сообщений поддерживает AWS IoT Analytics?
Сервис AWS IoT Analytics поддерживает JSON и бинарные форматы (бинарный JSON, Protocol Buffers и т. д.). При использовании бинарного формата сообщений первым в конвейере должно быть действие Lambda с корректной строкой JSON в качестве выходных данных.
Вопрос. Возможна ли повторная обработка данных из канала в конвейере?
Да, можно производить повторную обработку данных из канала, подключенного к конвейеру, с помощью запроса StartPipelineReprocessing. Для повторной обработки данных из канала с использованием другого конвейера необходимо подключить этот конвейер к соответствующему каналу.
Вопрос. Как передавать данные в AWS IoT Analytics с помощью API сбора данных?
API BatchPutMessage можно использовать для отправки данных в AWS IoT Analytics из таких источников, как Amazon S3, Amazon Kinesis, а также из любых других источников данных. Этот API можно использовать в составе функции Lambda или любого другого скрипта для отправки данных в AWS IoT Analytics. Дополнительную информацию см. в темах «Send data from S3 to IoT Analytics» и «Send data from Kinesis to IoT Analytics».
Вопрос. Доступен ли предварительный просмотр сообщений в канале?
Да, можно использовать предварительный просмотр сообщений с помощью API SampleChannelData. Этот API позволяет получить образец десяти сообщений по всем данным в канале.
Вопрос. Можно ли моделировать работу конвейера?
Да, работу конвейера можно моделировать с помощью консоли или API RunPipelineActivity. Этот API использует образцы данных (полученные с помощью запроса SampleChannelData или предоставленные вручную) для моделирования работы конвейера и предварительного просмотра результатов.
Вопрос. В чем разница между AWS IoT Analytics и Amazon Kinesis Analytics?
AWS IoT Analytics разработан специально для Интернета вещей (IoT), он автоматически захватывает и сохраняет временную метку сообщения, что облегчает выполнение анализа временных интервалов. IoT Analytics может также дополнить данные специфическими для устройства метаданными, такими как тип устройства и его местоположение, используя реестр AWS IoT и другие открытые источники данных. IoT Analytics хранит данные с устройств в хранилище, оптимизированном для IoT, и это позволяет запускать запросы на больших наборах данных.
Amazon Kinesis Analytics – это инструмент общего назначения, предназначенный для упрощения обработки потоковых данных, поступающих с IoT-устройств, а также из других источников данных в режиме реального времени.
Таблица 1. Сравнение возможностей AWS IoT Analytics и Kinesis Analytics
Возможности | AWS IoT Analytics |
Amazon Kinesis Analytics |
Хранение данных временного ряда | X | |
Автоматическое разделение данных по метке времени сообщения и идентификатору устройства | X | |
Дополнение данными, специфическими для устройства | X | |
Запросы к большим наборам данных | X | |
Анализ потоковой передачи | X | |
Обработка в режиме реального времени | Задержка на уровне минут или секунд | Задержка на уровне секунд или миллисекунд |
Работа с временными интервалами | X | |
Обработка неструктурированных данных и автоматическое создание схемы | JSON и CSV | JSON и CSV |
Вопрос. Когда рекомендуется использовать AWS IoT Analytics, а когда – Amazon Kinesis Analytics?
Использовать AWS IoT Analytics рекомендуется для аналитики, связанной с Интернетом вещей (IoT). Некоторые примеры использования включают в себя понимание долгосрочных рабочих характеристик устройства, отчетность для бизнеса и спонтанный анализ, а также профилактическое техобслуживание используемого оборудования. IoT Analytics лучше подходит для этих примеров использования, потому что он собирает, подготавливает и сохраняет данные с устройств за длинные промежутки времени в хранилище данных, оптимизированное для Интернета вещей (IoT). Кроме того, IoT Analytics дополняет данные специфическими для устройства метаданными, такими как тип устройства и его местоположение, используя реестр AWS IoT и другие открытые источники данных.
Однако когда требуется анализировать данные IoT в режиме реального времени для таких примеров использования, как мониторинг устройств, можно использовать Amazon Kinesis Analytics.
Таблица 2. Сравнение примеров использования AWS IoT Analytics и Kinesis Analytics
Сценарий использования |
AWS IoT Analytics | Amazon Kinesis Analytics |
Понимание долгосрочных рабочих характеристик устройства | Да. Дополнение данных Интернета вещей IoT-специфичными метаданными, такими как тип и местоположение устройства, с помощью реестра AWS IoT и других открытых источников данных. К примеру, операторам на винограднике нужно дополнить данные датчика влажности прогнозом осадков на виноградниках, чтобы они знали, когда необходим полив. | Нет. Лучше всего подходит для потоковой аналитики в реальном времени. |
Деловая отчетность и спонтанный анализ данных IoT | Да. Сбор, обработка и хранение данных IoT, интеграция с AWS QuickSight для построения панелей управления и отчетов или использование встроенной системы обработки SQL-запросов для спонтанных запросов. Например, агрегация сбоев датчиков в парке устройств для составления еженедельного отчета о работе парка. | Нет. Лучше всего подходит для выполнения потоковой передачи запросов на данных Интернета вещей (IoT), например генерации оповещений при сбое датчика. |
Профилактическое техобслуживание используемого оборудования | Да. Сбор, обработка и хранение данных Интернета вещей (IoT) и использование готовых шаблонов для создания и развертывания моделей прогнозирования. Например, прогноз сбоя систем отопления и вентиляции на подключенных транспортных средствах, позволяющий направить соответствующее транспортное средство для постановки на ремонт во избежание повреждения груза. | Нет. Диагностическое техническое обслуживание требует исторического анализа данных за длительный период для построения модели. |
Мониторинг устройств в режиме реального времени | Нет. | Да. Kinesis Analytics может непрерывно агрегировать данные по временным окнам, обнаруживать аномалии и выполнять различные действия, например отправлять оповещения. Например, на промышленном оборудовании Kinesis Analytics может вычислять скользящее 10-секундное среднее значение температуры клапана каждые 5 минут и регистрировать моменты, когда температура превышает определенные заданные пороговые значения. Затем он может посылать системам управления сигнал на автоматическое отключение оборудования во избежание несчастных случаев. |
Вопрос. В каких случаях необходимо одновременно использовать AWS IoT Analytics и Amazon Kinesis?
Используйте AWS IoT Analytics и Amazon Kinesis одновременно, когда требуются как историческая аналитика, так и аналитические данные в режиме реального времени. Например, Kinesis Analytics можно использовать на промышленном оборудовании для вычисления скользящего 10-секундного среднего значения температуры, чтобы зарегистрировать момент, когда температура превышает определенные пороговые значения. Затем Kinesis Analytics может посылать системам управления сигнал на автоматическое отключение оборудования во избежание несчастных случаев. При этом одновременно можно использовать Kinesis Streams для отправки данных в IoT Analytics. IoT Analytics поможет понять тенденции и предсказать время, когда необходимо заменить клапаны или провести техническое обслуживание.
Вопрос. Когда при работе с данными IoT следует использовать AWS IoT Analytics, Amazon Kinesis Streams, Amazon Kinesis Analytics или Amazon Kinesis Firehose?
Клиенты могут использовать AWS Lambda для отправки данных из Amazon Kinesis Streams в канал данных AWS IoT, а затем в AWS IoT Analytics.
Amazon Kinesis Analytics предназначен для аналитики потоковых данных, а IoT Analytics предназначен для анализа данных при хранении. Клиенты, которым нужна аналитика в режиме реального времени и IoT-аналитика, могут использовать Kinesis Analytics и IoT Analytics одновременно.
Amazon Kinesis Firehose – самый простой способ загрузить потоковые данные в хранилища данных AWS: Amazon S3, Amazon Redshift и Amazon Elasticsearch Service, позволяя использовать имеющиеся инструменты бизнес-аналитики для анализа в режиме, близком к реальному времени. IoT Analytics не поддерживает Kinesis Firehose в качестве источника данных.
Вопрос. Когда рекомендуется использовать AWS IoT Analytics, а когда – Amazon Kinesis Video Streams?
Amazon Kinesis Video Streams обеспечивает простую и безопасную трансляцию видео-, аудио- и других данных с временным кодированием из таких источников, как камеры, радары, термодатчики и другие подключенные устройства, на платформу AWS для машинного обучения, проведения анализа и решения других задач. Сервис Kinesis Video Streams специально разработан для приема видеоданных с устройств, тогда как AWS IoT Analytics предназначен для анализа данных IoT, не являющихся видеоданными. Непосредственной интеграции Kinesis Video Streams и AWS IoT Core или IoT Analytics как таковой не существует. Однако клиенты могут посылать запросы к Kinesis Video Streams и IoT Analytics из своих приложений с помощью API.
Дополнительные ресурсы по возможностям AWS IoT Analytics