Editar

Compartir a través de


Análisis de datos operativos en MongoDB Atlas mediante Azure Synapse Analytics

Azure App Service
Azure Data Lake Storage
Azure Event Grid
Azure Synapse Analytics
Power BI

En este artículo se presenta una solución para derivar información de datos operativos de MongoDB Atlas. La solución conecta MongoDB Atlas a Azure Synapse Analytics. La conexión permite transferir datos en lotes y en tiempo real. El enfoque en tiempo real mantiene los grupos de SQL dedicados de Azure Synapse Analytics sincronizados con los cambios en el origen de datos de MongoDB Atlas.

Apache®, Apache Sparky el logotipo de llama son marcas comerciales registradas o marcas comerciales de Apache Software Foundation en Estados Unidos y/o en otros países. El uso de estas marcas no implica ninguna aprobación de The Apache Software Foundation.

El logotipo de MongoDB Atlas es una marca comercial de MongoDB. El uso de esta marca no implica ninguna aprobación.

Arquitectura

En el diagrama siguiente se muestra cómo sincronizar datos de MongoDB Atlas con Azure Synapse Analytics en tiempo real.

diagrama de arquitectura que muestra el flujo de datos de MongoDB Atlas a las aplicaciones de análisis. Las fases provisionales incluyen una API de flujo de cambios y Azure Synapse Analytics.

Descargar un archivo de PowerPoint de todos los diagramas de este artículo.

Flujo de datos

La solución presenta dos opciones para desencadenar las canalizaciones que capturan los cambios en tiempo real en el almacén de datos operativos (ODS) de MongoDB Atlas y sincronizan los datos. En los pasos siguientes se describen ambas opciones.

  1. Los cambios se producen en los datos operativos y transaccionales almacenados en MongoDB Atlas. Las API de flujo de cambios de Mongo Atlas notifican a las aplicaciones suscritas sobre los cambios en tiempo real.

  2. Una aplicación web personalizada de Azure App Service se suscribe al flujo de cambios de MongoDB. Hay dos versiones de la aplicación web, Event Grid y almacenamiento, una para cada versión de la solución. Ambas versiones de la aplicación escuchan los cambios causados por una operación de inserción, actualización o eliminación en Atlas. Cuando las aplicaciones detectan un cambio, escriben el documento cambiado como un blob en Azure Data Lake Storage, que se integra con Azure Synapse Analytics. La versión de Event Grid de la aplicación también crea un nuevo evento en Azure Event Grid cuando detecta un cambio en Atlas.

  3. Ambas versiones de la solución desencadenan la canalización de Azure Synapse Analytics:

    1. En la versión de Event Grid, se configura un desencadenador personalizado basado en eventos en Azure Synapse Analytics. Ese desencadenador se suscribe al tema de Event Grid en el que se publica la aplicación web. El nuevo evento de ese tema activa el desencadenador de Azure Synapse Analytics, lo que hace que se ejecute la canalización de datos de Azure Synapse Analytics.
    2. En la versión de almacenamiento, se configura un desencadenador basado en almacenamiento en Azure Synapse Analytics. Cuando se detecta el nuevo blob en la carpeta integrada de Data Lake Storage, ese desencadenador se activa, lo que hace que se ejecute la canalización de datos de Azure Synapse Analytics.
  4. En una actividad de copia, la canalización de Azure Synapse Analytics copia el documento cambiado completo del blob de Data Lake Storage al grupo de SQL dedicado. Esta operación está configurada para realizar una upsert en una columna seleccionada. Si la columna existe en el grupo de SQL dedicado, upsert actualiza la columna. Si la columna no existe, el upsert inserta la columna.

  5. El grupo de SQL dedicado es la característica de almacenamiento de datos empresariales que hospeda la tabla que actualiza la canalización de datos. La actividad de copia de datos de la canalización mantiene esa tabla sincronizada con su colección Atlas correspondiente.

  6. Los informes y visualizaciones de Power BI muestran análisis actuales y casi en tiempo real. Los datos también se alimentan de aplicaciones de bajada. MongoDB Atlas funciona como receptor mediante un conector receptor de canalización de datos de Azure Synapse Analytics. A continuación, Atlas proporciona aplicaciones personalizadas con los datos en tiempo real.

Componentes

  • MongoDB Atlas es una oferta de base de datos como servicio de MongoDB. Esta plataforma de datos de aplicaciones multinube ofrece procesamiento transaccional, búsqueda basada en relevancia, análisis en tiempo real y sincronización de datos móviles a la nube. MongoDB también ofrece una solución local, MongoDB Enterprise Advanced.

  • Flujos de cambio en MongoDB Atlas proporcionan a las aplicaciones acceso a cambios de datos en tiempo real para que las aplicaciones puedan reaccionar inmediatamente a esos cambios. Los flujos de cambio proporcionan una manera de que las aplicaciones reciban notificaciones sobre los cambios en una colección, una base de datos o un clúster de implementación completo.

  • app Service y sus características web Apps, Mobile Apps y API Apps proporcionan un marco para crear, implementar y escalar aplicaciones web, aplicaciones móviles y API REST. Esta solución usa aplicaciones web programadas en ASP.NET. El código está disponible en GitHub:

  • azure Synapse Analytics es el servicio principal que esta solución usa para la ingesta, el procesamiento y el análisis de datos.

  • data Lake Storage proporciona funcionalidades para almacenar y procesar datos. Como lago de datos basado en Blob Storage, Data Lake Storage proporciona una solución escalable para administrar grandes volúmenes de datos de varios orígenes heterogéneos.

  • canalizaciones de Azure Synapse Analytics se usan para realizar operaciones de extracción, transformación y carga (ETL) en los datos. Azure Data Factory proporciona un servicio similar, pero puede crear canalizaciones de Azure Synapse Analytics en Synapse Studio. Puede usar varias actividades dentro de la misma canalización. También puede crear puntos de conexión de dependencia para conectar una actividad con otra actividad en la canalización.

  • Flujos de datos de asignación se diseñan visualmente transformaciones de datos en Azure Synapse Analytics. Los flujos de datos proporcionan una manera de que los ingenieros de datos desarrollen lógica de transformación de datos sin escribir código. Puede ejecutar los flujos de datos resultantes como actividades dentro de las canalizaciones de Azure Synapse Analytics que usan clústeres de Apache Spark escaladas horizontalmente. Puede poner las actividades de flujo de datos en funcionamiento mediante las funcionalidades existentes de programación, control, flujo y supervisión de Azure Synapse Analytics existentes.

  • grupo de SQL dedicado proporciona funcionalidades de almacenamiento de datos para los datos después de procesar y normalizar los datos. Esta característica de Azure Synapse Analytics se conocía anteriormente como SQL Data Warehouse. Los grupos de SQL dedicados hacen que los datos refinados estén disponibles para los usuarios finales y las aplicaciones.

  • desencadenadores de Azure Synapse Analytics proporcionan una manera automatizada de ejecutar canalizaciones. Puede programar estos desencadenadores. También puede configurar desencadenadores basados en eventos, como desencadenadores de eventos de almacenamiento y desencadenadores de eventos personalizados. La solución usa ambos tipos de desencadenadores basados en eventos.

  • event Grid es un agente de eventos sin servidor altamente escalable. Puede usar Event Grid para entregar eventos a destinos de suscriptor.

  • power BI es una colección de servicios de software y aplicaciones que muestran información de análisis. En esta solución, Power BI proporciona una manera de usar los datos procesados para realizar análisis avanzados y derivar información.

Detalles del escenario

MongoDB Atlas actúa como la capa de datos operativa de muchas aplicaciones empresariales. Esta base de datos en la nube almacena datos de aplicaciones internas, servicios orientados al cliente y API de terceros de varios canales. Mediante el uso de canalizaciones de Azure Synapse Analytics, puede combinar datos de MongoDB Atlas con datos relacionales de otras aplicaciones tradicionales y datos no estructurados de orígenes como registros.

Integración de Batch

En Azure Synapse Analytics, puede integrar sin problemas instancias locales de MongoDB y MongoDB Atlas como un recurso de origen o receptor. MongoDB es la única base de datos NoSQL que tiene conectores de origen y receptor para Azure Synapse Analytics y Data Factory.

Con los datos históricos, puede recuperar todos los datos a la vez. También puede recuperar los datos de forma incremental durante períodos específicos mediante un filtro en modo por lotes. Después, puede usar grupos de SQL y grupos de Apache Spark en Azure Synapse Analytics para transformar y analizar los datos. Si necesita almacenar los resultados de análisis o consulta en un almacén de datos de análisis, puede usar el recurso receptor en Azure Synapse Analytics.

diagrama de arquitectura que muestra los conectores de origen y receptor que conectan los datos de los consumidores a Azure Synapse Analytics y el almacenamiento de datos de MongoDB.

Para más información sobre cómo configurar y configurar los conectores, consulte estos recursos:

El conector de origen proporciona una manera cómoda de ejecutar Azure Synapse Analytics sobre los datos operativos almacenados en MongoDB o Atlas. Después de usar el conector de origen para recuperar datos de Atlas, puede cargarlos en Data Lake Storage Blob Storage como un archivo Parquet, Avro, JSON, text o CSV. Después, puede transformar estos archivos o combinarlos con otros archivos de otros orígenes de datos en entornos de nube híbrida, multinube o varias bases de datos.

Puede usar los datos que recupera de MongoDB Enterprise Advanced o MongoDB Atlas en los escenarios siguientes:

  • Para recuperar todos los datos de una fecha determinada de MongoDB en un lote. A continuación, cargue los datos en Data Lake Storage. Desde allí, se usa un grupo de SQL sin servidor o un grupo de Spark para su análisis, o bien se copian los datos en un grupo de SQL dedicado. Después de recuperar este lote, puede aplicar cambios a los datos a medida que se produzcan, como se describe en Flujo de datos. Una Storage-CopyPipeline_mdb_synapse_ded_pool_RTS de canalización de ejemplo está disponible como parte de esta solución. Puede exportar la canalización desde GitHub para este propósito de carga única.

  • Para generar información con una frecuencia determinada, por ejemplo, para un informe diario o por hora. En este escenario, programa una canalización para recuperar datos de forma periódica antes de ejecutar las canalizaciones de análisis. Puede usar una consulta de MongoDB para aplicar criterios de filtro y recuperar solo un determinado subconjunto de datos.

Sincronización en tiempo real

Las empresas necesitan información basada en datos en tiempo real, no en datos obsoletos. Un retraso de unas pocas horas en la entrega de información puede contener el proceso de toma de decisiones y dar lugar a una pérdida de ventaja competitiva. Esta solución impulsa la toma de decisiones críticas mediante la propagación de cambios que se producen en la base de datos transaccional de MongoDB al grupo de SQL dedicado en tiempo real.

Esta solución tiene tres partes, que se describen en las secciones siguientes.

Captura de los cambios de MongoDB Atlas

El flujo de cambios de MongoDB captura los cambios que se producen en la base de datos. Las API de flujo de cambios hacen que la información sobre los cambios estén disponibles para las aplicaciones web de App Service que se suscriben a la secuencia de cambios. Estas aplicaciones escriben los cambios en El almacenamiento de blobs de Data Lake Storage.

Desencadenamiento de una canalización para propagar los cambios en Azure Synapse Analytics

La solución presenta dos opciones para desencadenar una canalización de Azure Synapse Analytics después de escribir el blob en Data Lake Storage:

  • Un desencadenador basado en almacenamiento. Use esta opción si necesita análisis en tiempo real, ya que la canalización se desencadena en cuanto se escribe el blob con el cambio. Pero es posible que esta opción no sea el enfoque preferido cuando tenga un gran volumen de cambios de datos. Azure Synapse Analytics limita el número de canalizaciones que se pueden ejecutar simultáneamente. Cuando tenga un gran número de cambios de datos, puede alcanzar ese límite.

  • Un desencadenador personalizado basado en eventos. Este tipo de desencadenador tiene la ventaja de que está fuera de Azure Synapse Analytics, por lo que es más fácil controlarlo. La versión de Event Grid de la aplicación web escribe el documento de datos modificado en Blob Storage. Al mismo tiempo, la aplicación crea un nuevo evento de Event Grid. Los datos del evento contienen el nombre de archivo del blob. La canalización que desencadena el evento recibe el nombre de archivo como parámetro y, a continuación, usa el archivo para actualizar el grupo de SQL dedicado.

Propagación de los cambios a un grupo de SQL dedicado

Una canalización de Azure Synapse Analytics propaga los cambios en un grupo de SQL dedicado. La solución proporciona una canalización de CopyPipeline_mdb_synapse_ded_pool_RTS en GitHub que copia el cambio en el blob de Data Lake Storage al grupo de SQL dedicado. Esta canalización se desencadena mediante el desencadenador de Almacenamiento o Event Grid.

Casos de uso potenciales

Los casos de uso de esta solución abarcan muchos sectores y áreas:

  • Venta al por menor

    • Creación de inteligencia en la agrupación de productos y la promoción de productos
    • Optimización del almacenamiento en frío que usa el streaming de IoT
    • Optimización de la reposición del inventario
    • Adición de valor a la distribución omnicanal
  • Banca y finanzas

    • Personalización de servicios financieros de clientes
    • Detección de transacciones potencialmente fraudulentas
  • Telecomunicaciones

    • Optimización de redes de próxima generación
    • Maximizar el valor de las redes perimetrales
  • Automotor

    • Optimización de la parametrización de vehículos conectados
    • Detección de anomalías en la comunicación de IoT en vehículos conectados
  • Fabricación

    • Proporcionar mantenimiento predictivo para maquinaria
    • Optimización de la administración de almacenamiento e inventario

Estos son dos ejemplos específicos:

  • Como en este artículo se describe anteriormente en integración de Batch, puede recuperar datos de MongoDB en un lote y, a continuación, actualizar los datos a medida que se produzcan cambios. Esta funcionalidad permite obtener información en tiempo real para la toma de decisiones just-in-time y las conclusiones. Esta funcionalidad es útil para el análisis de información confidencial y crítica, como transacciones financieras y datos de detección de fraudes.
  • Como integración de Batch también se describe, puede programar una canalización para recuperar datos de MongoDB de forma periódica. Esta funcionalidad es útil en escenarios comerciales, como la actualización de niveles de inventario con datos de ventas diarios. En tales casos, los informes de análisis y los paneles no son de importancia crítica y el análisis en tiempo real no merece la pena el esfuerzo.

En las secciones siguientes se examinan más detenidamente dos casos de uso del sector minorista.

Agrupación de productos

Para promover la venta de un producto, puede vender el producto como parte de una agrupación junto con otros productos relacionados. El objetivo es usar los datos del patrón de ventas para desarrollar estrategias para agrupar un producto en paquetes.

Hay dos orígenes de datos:

  • Datos del catálogo de productos de MongoDB
  • Datos de ventas de Azure SQL

Ambos conjuntos de datos se migran a un grupo de SQL dedicado de Azure Synapse Analytics mediante una canalización de Azure Synapse Analytics. Los desencadenadores y las capturas de datos modificados se usan para lograr una sincronización de datos casi en tiempo real sobre los datos migrados de un solo uso.

Los siguientes gráficos de Power BI muestran la afinidad entre los productos y los patrones de ventas. La afinidad del lápiz y el relleno basado en entrada de lápiz es alta. Los datos de ventas muestran que el lápiz tiene un gran volumen de ventas en el área especificada.

Diagrama que muestra las fases y gráficos de canalización que muestran las ventas de lápiz por producto, año, región y afinidad. Las ventas de lápiz son más altas en 2022 en el Sur.

El análisis realiza dos sugerencias para obtener mejores ventas:

  • Agrupación de la pluma y el relleno basado en entrada de lápiz
  • Promoción de la agrupación en determinadas áreas

Promoción de productos

Para promover la venta de un producto, puede recomendar el producto a los clientes interesados en productos relacionados. El objetivo es usar datos de ventas y datos de patrón de compra de clientes para desarrollar estrategias para recomendar un producto a los clientes.

Mediante Azure Synapse Analytics, puede desarrollar modelos de inteligencia artificial y aprendizaje automático para determinar qué productos recomendar a los clientes.

En los diagramas siguientes se muestra el uso de varios tipos de datos para crear un modelo para determinar recomendaciones alternativas de producto. Los datos incluyen patrones de compra de clientes, ganancias, afinidades de producto, el volumen de ventas de los productos y parámetros del catálogo de productos.

Diagramas que muestran las fases de canalización y un flujo de trabajo para un modelo de IA. Los campos de datos incluyen el identificador de cliente, el precio, las ventas y el beneficio.

Si el modelo logra una alta precisión, proporciona una lista de productos que puede recomendar al cliente.

Consideraciones

Estas consideraciones implementan los pilares de Azure Well-Architected Framework, que es un conjunto de principios rectores que se pueden usar para mejorar la calidad de una carga de trabajo. Para obtener más información, consulte Microsoft Azure Well-Architected Framework.

Seguridad

La seguridad proporciona garantías contra ataques deliberados y el abuso de sus valiosos datos y sistemas. Para obtener más información, consulte Información general sobre el pilar de seguridad.

Para obtener información detallada sobre los requisitos de seguridad y los controles de los componentes de Azure de la solución, consulte la sección de seguridad de la documentación de cada producto.

Optimización de costos

La optimización de costos consiste en examinar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para obtener más información, consulte Información general sobre el pilar de optimización de costos.

  • Para calcular el costo de los productos y configuraciones de Azure, use la calculadora de precios de Azure .
  • Azure le ayuda a evitar costos innecesarios mediante la identificación del número correcto de recursos para sus necesidades, mediante el análisis del gasto a lo largo del tiempo y el escalado para satisfacer las necesidades empresariales sin sobrecargar. Por ejemplo, puede pausar los grupos de SQL dedicados cuando no se espera ninguna carga. Puede reanudarlos más adelante.
  • Puede reemplazar App Service por Azure Functions. Mediante la orquestación de las funciones dentro de una canalización de Azure Synapse Analytics, puede reducir los costos.
  • Para reducir el costo del clúster de Spark, elija el tipo de proceso de flujo de datos adecuado. Hay opciones generales y optimizadas para memoria disponibles. Elija también los valores adecuados de recuento de núcleos y período de vida (TTL).
  • Para más información sobre cómo administrar los costos de los componentes clave de la solución, consulte estos recursos:

Eficiencia del rendimiento

La eficacia del rendimiento es la capacidad de la carga de trabajo para escalar para satisfacer las demandas que los usuarios les han puesto de forma eficaz. Para obtener más información, consulte Introducción al pilar de eficiencia del rendimiento.

Cuando hay un gran volumen de cambios, ejecutar miles de canalizaciones en Azure Synapse Analytics para cada cambio de la colección puede dar lugar a un trabajo pendiente de canalizaciones en cola. Para mejorar el rendimiento en este escenario, tenga en cuenta los siguientes enfoques:

  • Use el código de App Service basado en almacenamiento, que escribe los documentos JSON con los cambios en Data Lake Storage. No vincule el desencadenador basado en almacenamiento con la canalización. En su lugar, use un desencadenador programado en un intervalo corto, como cada dos o cinco minutos. Cuando se ejecuta el desencadenador programado, toma todos los archivos del directorio de Data Lake Storage especificado y actualiza el grupo de SQL dedicado para cada uno de ellos.
  • Modifique el código de App Service de Event Grid. Programe para agregar un microproceso de alrededor de 100 cambios al almacenamiento de blobs antes de agregar el nuevo tema al evento con los metadatos que incluyen el nombre de archivo. Con esta modificación, solo se desencadena una canalización para un blob con los 100 cambios. Puede ajustar el tamaño del microproceso para adaptarlo a su escenario. Use microprocesos pequeños con una alta frecuencia para proporcionar actualizaciones cercanas al tiempo real. O bien, use microprocesos más grandes con una frecuencia menor para las actualizaciones retrasadas y una sobrecarga reducida.

Para más información sobre cómo mejorar el rendimiento y la escalabilidad de la actividad de copia de canalización de Azure Synapse Analytics, consulte Guía de escalabilidad y rendimiento de la actividad de copia.

Implementación de este escenario

Para obtener información sobre cómo implementar esta solución, consulte Real-Time Sync Solution for MongoDB Atlas Integration with Synapse.

Colaboradores

Microsoft mantiene este artículo. Originalmente fue escrito por los siguientes colaboradores.

Autores principales:

  • Diana Annie Jenosh | Arquitecto sénior de soluciones
  • de Babu Srinivasan | Arquitecto sénior de soluciones
  • Utsav Talwar | Arquitecto de soluciones asociadas

Otros colaboradores:

Para ver perfiles de LinkedIn no públicos, inicie sesión en LinkedIn.

Pasos siguientes

Para obtener más información sobre la solución, póngase en contacto con partners@mongodb.com.

Para obtener información sobre MongoDB, consulte estos recursos:

Para obtener información sobre los componentes de la solución de Azure, consulte estos recursos: