Ускорение времени получения информации с помощью коллекций временных рядов MongoDB и сервиса Amazon SageMaker Canvas

Увеличение скорости получения информации с помощью MongoDB и Amazon SageMaker Canvas для коллекций временных рядов

Это гостевая статья, соавтором которой является Бабу Сринивасан из MongoDB.

По мере развития отраслей в современном быстро меняющемся бизнес-ландшафте, отсутствие возможности проводить прогнозы в режиме реального времени представляет существенные проблемы для отраслей, сильно зависящих от точных и своевременных аналитических выводов. Отсутствие прогнозов в режиме реального времени в различных отраслях ставит перед бизнесом актуальные задачи, которые могут значительно влиять на процесс принятия решений и эффективность операций. Без аналитических выводов в режиме реального времени компании испытывают сложности с адаптацией к динамическим рыночным условиям, точным прогнозированием спроса клиентов, оптимизацией уровней запасов и принятием превентивных стратегических решений. Отрасли, такие как финансы, розничная торговля, управление цепями поставок и логистика, подвержены риску упущенных возможностей, повышенных затрат, неэффективного распределения ресурсов и невозможности удовлетворить потребности клиентов. Исследуя эти проблемы, организации могут понять важность прогнозирования в режиме реального времени и исследовать инновационные решения для преодоления этих преград, что позволит им оставаться конкурентоспособными, принимать обоснованные решения и процветать в современной быстро меняющейся бизнес-среде.

Используя трансформационные возможности нативных функций хранения временных рядов MongoDB и интегрируя их с возможностями Amazon SageMaker Canvas, организации могут преодолеть эти проблемы и открыть новые уровни гибкости. С помощью надежного управления временными рядами MongoDB можно сохранять и извлекать большие объемы данных в режиме реального времени, а продвинутые алгоритмы машинного обучения и возможности прогнозирования обеспечивают точные и динамические модели прогнозирования с использованием SageMaker Canvas.

В этой статье мы рассмотрим потенциал использования временных рядов MongoDB и SageMaker Canvas как комплексного решения.

MongoDB Atlas

MongoDB Atlas – это полностью управляемая платформа для разработчиков, которая упрощает развертывание и масштабирование баз данных MongoDB в облаке. Она предоставляет управляемую базу данных, основанную на документах, с встроенным полнотекстовым и векторным поиском, поддержкой геопространственных запросов, диаграммами и нативной поддержкой эффективного хранения и запросов временных рядов. MongoDB Atlas предлагает автоматическое распределение, горизонтальное масштабирование и гибкую индексацию для обработки больших объемов данных. Среди всех возможностей выделяются нативные функции работы с временными рядами, что делает ее идеальной для управления большим объемом временных рядов, таких как критически важные бизнес-данные, телеметрические данные, логи сервера и другие данные. Благодаря эффективному запросу, агрегации и анализу бизнесы могут извлекать ценные выводы из данных с отметками времени. Используя эти возможности, компании могут эффективно хранить, управлять и анализировать данные временных рядов, принимать решения на основе данных и получать конкурентное преимущество.

Amazon SageMaker Canvas

Amazon SageMaker Canvas – это визуальное сервисное решение для машинного обучения, которое позволяет бизнес-аналитикам и специалистам по обработке данных создавать и развертывать пользовательские модели машинного обучения без необходимости обладать опытом в этой области или писать код. SageMaker Canvas поддерживает ряд сценариев использования, включая прогнозирование временных рядов, что позволяет компаниям точно прогнозировать будущий спрос, продажи, потребности в ресурсах и другие данные временных рядов. Сервис использует методы глубокого обучения для обработки сложных моделей данных и позволяет бизнесу генерировать точные прогнозы, даже имея ограниченное количество исторических данных. Используя возможности Amazon SageMaker Canvas, компании могут принимать обоснованные решения, оптимизировать уровни запасов, повышать эффективность операций и увеличивать удовлетворенность клиентов.

Пользовательский интерфейс SageMaker Canvas позволяет без проблем интегрировать источники данных из облака или локальных систем, легко объединять наборы данных, тренировать точные модели и делать прогнозы с применением новых данных – все без написания кода. Если вам нужен автоматизированный рабочий процесс или интеграция моделей машинного обучения непосредственно в приложения, функции прогнозирования Canvas доступны через API.

Обзор решений

Пользователи хранят свои транзакционные временные ряды в MongoDB Atlas. Через Atlas Data Federation данные извлекаются в хранилище Amazon S3. Amazon SageMaker Canvas получает доступ к данным для создания моделей и прогнозов. Результаты прогнозирования хранятся в хранилище S3. С использованием сервисов MongoDB Data Federation прогнозы визуализируются через MongoDB Charts.

Ниже приведена схема предлагаемой архитектуры решения.

Необходимые условия

Для этого решения мы используем MongoDB Atlas для хранения временных рядов данных, Amazon SageMaker Canvas для обучения модели и создания прогнозов, и Amazon S3 для хранения данных, извлеченных из MongoDB Atlas.

Убедитесь, что у вас есть следующие предварительные требования:

Настройка кластера MongoDB Atlas

Создайте бесплатный кластер MongoDB Atlas, следуя инструкциям в разделе Создание кластера. Настройте доступ к базе данных и сетевой доступ.

Заполнение коллекции временных рядов в MongoDB Atlas

В рамках этой демонстрации вы можете использовать набор данных из Kaggle и загрузить его в MongoDB Atlas с использованием инструментов MongoDB, предпочтительно MongoDB Compass.

Приведенный ниже код показывает пример набора данных для коллекции временных рядов:

{"store": "1 1","timestamp": { "2010-02-05T00:00:00.000Z"},"temperature": "42.31","target_value": 2.572,"IsHoliday": false}

На следующем скриншоте показаны примеры данных временных рядов в MongoDB Atlas:

Создание хранилища S3

Создайте хранилище S3 в AWS, в котором будет храниться и анализироваться временные ряды данных. Обратите внимание, у нас есть две папки. sales-train-data используется для хранения данных, извлеченных из MongoDB Atlas, а sales-forecast-output содержит результаты прогнозирования от Canvas.

Создание Data Federation

Настройте Data Federation в Atlas и зарегистрируйте созданное ранее хранилище S3 в качестве источника данных. Обратите внимание, что для кластера Atlas, хранилища S3 для данных MongoDB Atlas и хранилища S3 для хранения результатов Canvas создаются три разные базы данных/коллекции в Data Federation.

Ниже показаны снимки экрана настройки федерации данных.

Настройка приложения Atlas

Создайте службы приложений MongoDB, чтобы развернуть функции для передачи данных с кластера MongoDB Atlas в хранилище S3 с использованием агрегации $out.

Проверка конфигурации источника данных

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

Создание функции

Настройте службы приложений Atlas для создания триггеров и функций. Триггеры должны быть запланированы для записи данных в S3 с частотой, определяемой бизнес-потребностями для обучения моделей.

Следующий скрипт показывает функцию записи в хранилище S3:

exports = function () {   const service = context.services.get("");   const db = service.db("")   const events = db.collection("");   const pipeline = [    {            "$out": {               "s3": {                  "bucket": "<S3_bucket_name>",                  "region": "<AWS_Region>",                   "filename": {$concat: ["<S3path>/<filename>_",{"$toString":  new Date(Date.now())}]},                  "format": {                        "name": "json",                        "maxFileSize": "10GB"                  }               }            }      }   ];   return events.aggregate(pipeline);};

Пример функции

Функцию можно выполнить через вкладку Run, ошибки могут быть отлажены с использованием функций журнала в службах приложений. Кроме того, ошибки могут быть отлажены с помощью меню Журналы в левой панели.

Следующий скриншот показывает выполнение функции вместе с выводом:

Создание набора данных в Amazon SageMaker Canvas

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

После завершения перейдите в SageMaker Canvas, выберите свой домен и профиль, а затем выберите Canvas.

Создайте набор данных, предоставляющий источник данных.

Выберите источник данных в виде S3

Выберите местоположение данных из корзины S3 и выберите Создать набор данных.

Ознакомьтесь со схемой и нажмите Создать набор данных

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

Обучите модель

Затем мы будем использовать Canvas для настройки обучения модели. Выберите набор данных и нажмите Создать.

Создайте имя модели, выберите предсказательный анализ и выберите Создать.

Выберите целевой столбец

Затем нажмите Настроить модель временных рядов и выберите item_id в качестве столбца ID товара.

Выберите tm для столбца временных меток

Чтобы указать период прогнозирования, выберите 8 недель.

Теперь вы готовы просмотреть модель или запустить процесс сборки.

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

Когда модель готова, выберите модель и щелкните на последней версии

Ознакомьтесь с метриками модели и влиянием столбцов, и если вы удовлетворены производительностью модели, нажмите “Предсказать”.

Затем выберите пакетное предсказание и нажмите “Выбрать набор данных”.

Выберите свой набор данных и нажмите “Выбрать набор данных”.

Затем нажмите “Начать предсказания”.

Наблюдайте за созданной задачей или наблюдайте за процессом выполнения задачи в SageMaker в разделе “Вывод”, пакетные задания преобразования.

Когда задача завершится, выберите задачу и запомните путь S3, где Canvas сохраняет предсказания.

Визуализация прогнозных данных в диаграммах Atlas

Для визуализации прогнозных данных создайте диаграммы MongoDB Atlas на основе Федеративных данных (amazon-forecast-data) для прогнозов P10, P50 и P90, как показано на следующей диаграмме.

Очистка

  • Удалить кластер MongoDB Atlas
  • Удалить конфигурацию Atlas Data Federation
  • Удалить приложение службы Atlas
  • Удалить корзину S3
  • Удалить набор данных и модели Amazon SageMaker Canvas
  • Удалить диаграммы Atlas
  • Выйти из Amazon SageMaker Canvas

Заключение

В этой статье мы извлекаем временные ряды данных из коллекции временных рядов MongoDB. Это специальная коллекция, оптимизированная для хранения и скорости запросов к данным временных рядов. Мы использовали Amazon SageMaker Canvas для обучения моделей и генерации прогнозов, а также визуализировали прогнозы в диаграммах Atlas.

Дополнительную информацию можно найти по следующим ресурсам.