Анализ операционных данных в MongoDB Atlas с помощью Azure Synapse Analytics

Служба приложений Azure
Azure Data Lake Storage
Сетка событий Azure
Azure Synapse Analytics
Power BI

В этой статье представлено решение для получения аналитических сведений из операционных данных MongoDB Atlas. Решение подключает MongoDB Atlas к Azure Synapse Analytics. Подключение позволяет передавать данные в пакетах и в режиме реального времени. Подход в режиме реального времени обеспечивает синхронизацию выделенных пулов SQL Azure Synapse Analytics с изменениями в источнике данных MongoDB Atlas.

Apache, Apache® Spark и логотип пламени являются зарегистрированными товарными знаками или товарными знаками Apache Software Foundation в США и/или других странах. Использование этих меток не подразумевает подтверждения от Apache Software Foundation.

Логотип MongoDB Atlas является товарным знаком MongoDB. Никакое подтверждение не подразумевается использованием этого знака.

Архитектура

На следующей схеме показано, как синхронизировать данные MongoDB Atlas с Azure Synapse Analytics в режиме реального времени.

Схема архитектуры, показывающая поток данных из MongoDB Atlas в приложения для анализа. Промежуточные этапы включают API потока изменений и Azure Synapse Analytics.

Скачайте файл PowerPoint всех схем в этой статье.

Поток данных

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

  1. Изменения происходят в операционных и транзакционных данных, хранящихся в MongoDB Atlas. API потока изменений Mongo Atlas уведомляют подписанные приложения об изменениях в режиме реального времени.

  2. Настраиваемое веб-приложение службы приложение Azure подписывается на поток изменений MongoDB. Существует две версии веб-приложения, сетки событий и хранилища, по одному для каждой версии решения. Обе версии приложений прослушивают изменения, вызванные операцией вставки, обновления или удаления в Atlas. Когда приложения обнаруживают изменение, они записывают измененный документ как большой двоичный объект в Azure Data Lake Storage, который интегрирован с Azure Synapse Analytics. Версия сетки событий приложения также создает новое событие в Сетка событий Azure при обнаружении изменений в Atlas.

  3. Обе версии решения активируют конвейер Azure Synapse Analytics:

    1. В версии Сетки событий настраивается настраиваемый триггер на основе событий в Azure Synapse Analytics. Этот триггер подписывается на раздел "Сетка событий", в который веб-приложение публикуется. Новое событие в этом разделе активирует триггер Azure Synapse Analytics, который приводит к запуску конвейера данных Azure Synapse Analytics.
    2. В версии хранилища триггер на основе хранилища настраивается в Azure Synapse Analytics. При обнаружении нового большого двоичного объекта в интегрированной папке Data Lake Storage активируется этот триггер, что приводит к запуску конвейера данных Azure Synapse Analytics.
  4. В действии копирования конвейер Azure Synapse Analytics копирует полный измененный документ из большого двоичного объекта Data Lake Storage в выделенный пул SQL. Эта операция настроена для выполнения upsert в выбранном столбце. Если столбец существует в выделенном пуле SQL, upsert обновляет столбец. Если столбец не существует, upsert вставляет столбец.

  5. Выделенный пул SQL — это компонент хранения корпоративных данных, в котором размещается таблица, обновляемая конвейером данных. Действие копирования данных конвейера сохраняет таблицу в синхронизации с соответствующей коллекцией Atlas.

  6. Отчеты и визуализации Power BI отображают текущую и почти аналитику в режиме реального времени. Данные также передается в подчиненные приложения. MongoDB Atlas работает в качестве приемника с помощью соединителя приемника конвейера данных Azure Synapse Analytics. Затем Atlas предоставляет пользовательские приложения с данными в режиме реального времени.

Компоненты

  • MongoDB Atlas — это предложение базы данных как услуга от MongoDB. Эта платформа данных приложения с несколькими облаками предлагает транзакционный процесс обработки, поиск на основе релевантности, аналитику в режиме реального времени и синхронизацию данных с мобильными устройствами в облако. MongoDB также предлагает локальное решение MongoDB Enterprise Advanced.

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

  • Служба приложений и ее веб-приложения, мобильные приложения и приложения API предоставляют платформу для создания, развертывания и масштабирования веб-приложений, мобильных приложений и REST API. Это решение использует веб-приложения, запрограммированные в ASP.NET. Код доступен на сайте GitHub:

  • Azure Synapse Analytics — это базовая служба, которая используется для приема данных, обработки и аналитики.

  • Data Lake Storage предоставляет возможности для хранения и обработки данных. Как озеро данных, созданное на основе хранилища BLOB-объектов, Data Lake Storage предоставляет масштабируемое решение для управления большими объемами данных из нескольких разнородных источников.

  • Конвейеры Azure Synapse Analytics используются для выполнения операций извлечения, преобразования, загрузки (ETL) данных. Фабрика данных Azure предоставляет аналогичную службу, но вы можете создавать конвейеры Azure Synapse Analytics в Synapse Studio. В одном конвейере можно использовать несколько действий. Кроме того, можно создать конечные точки зависимостей для подключения одного действия к другому действию в конвейере.

  • Потоки данных сопоставления визуально разработаны в Azure Synapse Analytics. Потоки данных позволяют инженерам данных разрабатывать логику преобразования данных без написания кода. В конвейерах Azure Synapse Analytics, использующих масштабируемые кластеры Apache Spark, можно запустить результирующий поток данных в виде действий. Действия потока данных можно поместить в эксплуатацию с помощью существующих возможностей планирования, управления, потока и мониторинга Azure Synapse Analytics.

  • Выделенный пул SQL предоставляет возможности хранения данных для данных после обработки и нормализации данных. Эта функция Azure Synapse Analytics ранее была известна как хранилище данных SQL. Выделенные пулы SQL делают улучшенные данные доступными для конечных пользователей и приложений.

  • Триггеры Azure Synapse Analytics предоставляют автоматический способ запуска конвейеров. Эти триггеры можно запланировать. Можно также настроить триггеры на основе событий, такие как триггеры событий хранилища и пользовательские триггеры событий. Решение использует оба типа триггеров на основе событий.

  • Сетка событий — это высокомасштабируемый бессерверный брокер событий. Сетка событий можно использовать для доставки событий в места назначения подписчика.

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

Подробности сценария

MongoDB Atlas служит операционным уровнем данных многих корпоративных приложений. Эта облачная база данных хранит данные из внутренних приложений, клиентских служб и сторонних API из нескольких каналов. С помощью конвейеров Azure Synapse Analytics можно объединить данные MongoDB Atlas с реляционными данными из других традиционных приложений и неструктурированных данных из таких источников, как журналы.

Пакетная интеграция

В Azure Synapse Analytics вы можете легко интегрировать локальные экземпляры MongoDB и MongoDB Atlas в качестве источника или ресурса приемника. MongoDB — это единственная база данных NoSQL с соединителями источника и приемника для Azure Synapse Analytics и Фабрики данных.

С помощью исторических данных можно одновременно получить все данные. Вы также можете получать данные постепенно в течение определенных периодов с помощью фильтра в пакетном режиме. Затем можно использовать пулы SQL и пулы Apache Spark в Azure Synapse Analytics для преобразования и анализа данных. Если необходимо сохранить аналитику или результаты запроса в хранилище данных аналитики, можно использовать ресурс приемника в Azure Synapse Analytics.

Схема архитектуры с соединителями источника и приемника, которые подключают данные от потребителей к хранилищу данных Azure Synapse Analytics и MongoDB.

Дополнительные сведения о настройке и настройке соединителей см. в следующих ресурсах:

Соединитель источника предоставляет удобный способ запуска Azure Synapse Analytics на основе операционных данных, хранящихся в MongoDB или Atlas. После использования соединителя источника для получения данных из Atlas можно загрузить данные в хранилище BLOB-объектов Data Lake Storage в виде файла Parquet, Avro, JSON, текста или CSV-файла. Затем эти файлы можно преобразовать или присоединить их к другим файлам из других источников данных в нескольких базах данных, мультиоблачных или гибридных облачных средах.

Данные, полученные из MongoDB Enterprise Advanced или MongoDB Atlas, можно использовать в следующих сценариях:

  • Получение всех данных из определенной даты из MongoDB в пакете. Затем вы загружаете данные в Data Lake Storage. После этого вы используете бессерверный пул SQL или пул Spark для анализа или копируете данные в выделенный пул SQL. После получения этого пакета можно применить изменения к данным по мере их возникновения, как описано в потоке данных. Пример конвейера хранилища CopyPipeline_mdb_synapse_ded_pool_RTS доступен в рамках этого решения. Конвейер можно экспортировать из GitHub для этой одноразовой загрузки.

  • Для получения аналитических сведений определенной частоты, например для ежедневного или почасового отчета. В этом сценарии необходимо запланировать регулярное получение данных конвейером перед запуском конвейеров аналитики. Запрос MongoDB можно использовать для применения критериев фильтра и получения только определенного подмножества данных.

Синхронизация в режиме реального времени

Предприятиям нужны аналитические сведения, основанные на данных в режиме реального времени, а не устаревших данных. Задержка в несколько часов в доставке аналитических сведений может удерживать процесс принятия решений и привести к потере конкурентного преимущества. Это решение подпитывает критически важные решения путем распространения изменений, происходящих в транзакционной базе данных MongoDB в выделенном пуле SQL в режиме реального времени.

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

Запись изменений в Atlas MongoDB

Поток изменений MongoDB записывает изменения, происходящие в базе данных. API потока изменений предоставляют сведения о изменениях, доступных для Служба приложений веб-приложений, которые подписываются на поток изменений. Эти приложения записывают изменения в хранилище BLOB-объектов Data Lake Storage.

Активация конвейера для распространения изменений в Azure Synapse Analytics

Решение представляет два варианта активации конвейера Azure Synapse Analytics после записи большого двоичного объекта в Data Lake Storage:

  • Триггер на основе хранилища. Используйте этот параметр, если вам нужна аналитика в режиме реального времени, так как конвейер активируется сразу после записи большого двоичного объекта с изменением. Но этот вариант может не быть предпочтительным подходом при наличии большого объема изменений данных. Azure Synapse Analytics ограничивает количество конвейеров, которые могут выполняться одновременно. При наличии большого количества изменений данных это ограничение может быть достигнуто.

  • Настраиваемый триггер на основе событий. Этот тип триггера имеет преимущество, которое находится за пределами Azure Synapse Analytics, поэтому проще управлять. Версия сетки событий веб-приложения записывает измененный документ данных в хранилище BLOB-объектов. В то же время приложение создает новое событие сетки событий. Данные в событии содержат имя файла большого двоичного объекта. Конвейер, который активирует событие, получает имя файла в качестве параметра, а затем использует файл для обновления выделенного пула SQL.

Распространение изменений в выделенном пуле SQL

Конвейер Azure Synapse Analytics распространяет изменения в выделенный пул SQL. Решение предоставляет конвейер CopyPipeline_mdb_synapse_ded_pool_RTS на сайте GitHub, который копирует изменение большого двоичного объекта из Data Lake Storage в выделенный пул SQL. Этот конвейер активируется триггером хранилища или сетки событий.

Потенциальные варианты использования

Варианты использования этого решения охватывают множество отраслей и областей:

  • Retail

    • Создание аналитики в области разработки продуктов и продвижения продуктов
    • Оптимизация холодного хранилища, использующего потоковую передачу Интернета вещей
    • Оптимизация пополнения запасов
    • Добавление значения в распределение omnichannel
  • Банковское дело и финансы

    • Настройка финансовых услуг клиентов
    • Обнаружение потенциально мошеннических транзакций
  • Телекоммуникации

    • Оптимизация сетей следующего поколения
    • Максимизация значения пограничных сетей
  • Автомобильная промышленность

    • Оптимизация параметризации подключенных транспортных средств
    • Обнаружение аномалий в обмене данными Интернета вещей в подключенных транспортных средствах
  • Производство

    • Обеспечение прогнозного обслуживания для оборудования
    • Оптимизация управления хранилищем и инвентаризацией

Ниже приведены два конкретных примера:

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

В следующих разделах подробно описаны два варианта использования розничной промышленности.

Объединение продуктов

Чтобы повысить продажу продукта, вы можете продать продукт как часть пакета вместе с другими связанными продуктами. Цель — использовать данные шаблона продаж для разработки стратегий для объединение продукта в пакеты.

Существует два источника данных:

  • Данные каталога продуктов из MongoDB
  • Данные о продажах из SQL Azure

Оба набора данных переносятся в выделенный пул SQL Azure Synapse Analytics с помощью конвейера Azure Synapse Analytics. Триггеры и записи измененных данных используются для обеспечения синхронизации данных почти в режиме реального времени на основе однократных переносированных данных.

На следующих диаграммах Power BI показано сходство между продуктами и шаблонами продаж. Сходство пера и рукописного перезаполнения высок. Данные о продажах показывают, что перо имеет высокий объем продаж в указанной области.

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

Анализ делает два предложения по повышению качества продаж:

  • Перезаполнение пера и рукописного ввода
  • Продвижение пакета в определенных областях

Продвижение продукта

Чтобы повысить продажу продукта, вы можете рекомендовать продукт клиентам, заинтересованным в связанных продуктах. Цель состоит в том, чтобы использовать данные о продажах и данные шаблона покупки клиентов для разработки стратегий для рекомендации продукта клиентам.

С помощью Azure Synapse Analytics вы можете разрабатывать модели искусственного интеллекта и машинного обучения, чтобы определить, какие продукты рекомендуется клиентам.

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

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

Если модель достигает высокой точности, она предоставляет список продуктов, которые можно рекомендовать клиенту.

Рекомендации

Эти рекомендации реализуют основные принципы платформы Azure Well-Architected Framework, которая является набором руководящих принципов, которые можно использовать для улучшения качества рабочей нагрузки. Дополнительные сведения см. в статье Microsoft Azure Well-Architected Framework.

Безопасность

Безопасность обеспечивает гарантии от преднамеренного нападения и злоупотребления ценными данными и системами. Дополнительные сведения см. в разделе "Общие сведения о компоненте безопасности".

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

Оптимизация затрат

Оптимизация затрат заключается в поиске способов уменьшения ненужных расходов и повышения эффективности работы. Дополнительные сведения см. в разделе Обзор критерия "Оптимизация затрат".

  • Чтобы оценить стоимость продуктов и конфигураций Azure, используйте калькулятор цен Azure.
  • Azure помогает избежать ненужных затрат, определяя правильное количество ресурсов для ваших потребностей, анализируя затраты с течением времени и масштабируя бизнес-потребности без чрезмерного объема ресурсов. Например, можно приостановить выделенные пулы SQL, если вы не ожидаете никакой нагрузки. Вы можете возобновить их позже.
  • Вы можете заменить Служба приложений на Функции Azure. Оркестрируя функции в конвейере Azure Synapse Analytics, вы можете сократить затраты.
  • Чтобы сократить затраты на кластер Spark, выберите правильный тип вычислений потока данных. Доступны общие и оптимизированные для памяти параметры. Кроме того, выберите соответствующее количество ядер и значения времени жизни (TTL).
  • Дополнительные сведения об управлении затратами на ключевые компоненты решения см. в следующих ресурсах:

Оптимизация производительности

Эффективность производительности — это способность рабочей нагрузки масштабироваться в соответствии с требованиями, которые применяются пользователями. Дополнительные сведения см. в разделе "Общие сведения о эффективности производительности".

При наличии большого объема изменений выполнение тысяч конвейеров в Azure Synapse Analytics для каждого изменения в коллекции может привести к невыполненности очередных конвейеров. Чтобы повысить производительность в этом сценарии, рассмотрите следующие подходы:

  • Используйте код на основе хранилища Служба приложений, который записывает документы JSON с изменениями в Data Lake Storage. Не свяжите триггер на основе хранилища с конвейером. Вместо этого используйте запланированный триггер с коротким интервалом, например каждые две или пять минут. При запуске запланированного триггера он принимает все файлы в указанном каталоге Data Lake Storage и обновляет выделенный пул SQL для каждого из них.
  • Измените код сетки событий Служба приложений. Программируйте его, чтобы добавить микропакет около 100 изменений в хранилище BLOB-объектов, прежде чем добавить новый раздел в событие с метаданными, которые включают имя файла. При этом изменении активируется только один конвейер для одного большого двоичного объекта с 100 изменениями. Вы можете настроить размер микропакета в соответствии с вашим сценарием. Используйте небольшие микропакеты с высокой частотой, чтобы предоставить обновления, близкие к реальному времени. Или используйте более крупные микропакеты с более низкой частотой для отложенных обновлений и снижения затрат.

Дополнительные сведения о повышении производительности и масштабируемости действия копирования конвейера Azure Synapse Analytics см. в действие Copy руководстве по производительности и масштабируемости.

Развертывание этого сценария

Сведения о реализации этого решения см. в разделе "Решение синхронизации в режиме реального времени" для интеграции MongoDB Atlas с Synapse.

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.

Основные авторы:

Другие участники:

Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.

Следующие шаги

Для получения дополнительных сведений о решении обратитесь partners@mongodb.comк ним.

Дополнительные сведения о MongoDB см. в следующих ресурсах:

Дополнительные сведения о компонентах решения Azure см. в следующих ресурсах: