Modifier

Analyser les données opérationnelles sur MongoDB Atlas à l’aide de Azure Synapse Analytics

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

Cet article présente une solution permettant de dériver des insights à partir de données opérationnelles MongoDB Atlas. La solution connecte MongoDB Atlas à Azure Synapse Analytics. La connexion permet de transférer des données par lots et en temps réel. L’approche en temps réel maintient Azure Synapse pools SQL dédiés Analytics synchronisés avec les modifications apportées à la source de données MongoDB Atlas.

Apache®, Apache Spark et le logo représentant une flamme sont soit des marques déposées, soit des marques commerciales d’Apache Software Foundation aux États-Unis et/ou dans d’autres pays. L’utilisation de ces marques n’implique aucune approbation de l’Apache Software Foundation.

Le logo MongoDB Atlas est une marque de mongoDB. L’utilisation de cette marque n’implique aucune approbation de sa part.

Architecture

Le diagramme suivant montre comment synchroniser les données MongoDB Atlas avec Azure Synapse Analytics en temps réel.

Architecture diagram that shows data flow from MongoDB Atlas to analysis apps. Interim stages include a change stream API and Azure Synapse Analytics.

Téléchargez un fichier PowerPoint avec tous les diagrammes relatifs à cet article.

Dataflow

La solution présente deux options pour déclencher les pipelines qui capturent les modifications en temps réel dans le magasin de données opérationnel MongoDB Atlas (ODS) et synchronisent les données. Les étapes suivantes décrivent les deux options.

  1. Les modifications se produisent dans les données opérationnelles et transactionnelles stockées dans MongoDB Atlas. Les API de flux de modification Mongo Atlas informent les applications abonnées des modifications en temps réel.

  2. Une application web Azure App Service personnalisée s’abonne au flux de modification MongoDB. Il existe deux versions de l’application web, Event Grid et du stockage, une pour chaque version de la solution. Les deux versions d’application écoutent les modifications provoquées par une opération d’insertion, de mise à jour ou de suppression dans Atlas. Lorsque les applications détectent une modification, elles écrivent le document modifié en tant qu’objet blob dans Azure Data Lake Storage, qui est intégré à Azure Synapse Analytics. La version Event Grid de l’application crée également un événement dans Azure Event Grid lorsqu’elle détecte une modification dans Atlas.

  3. Les deux versions de la solution déclenchent le pipeline Azure Synapse Analytics :

    1. Dans la version d’Event Grid, un déclencheur basé sur des événements personnalisé est configuré dans Azure Synapse Analytics. Ce déclencheur s’abonne à la rubrique Event Grid dans laquelle l’application web publie. Le nouvel événement sur cette rubrique active le déclencheur Azure Synapse Analytics, ce qui entraîne l’exécution du pipeline de données Azure Synapse Analytics.
    2. Dans la version de stockage, un déclencheur basé sur le stockage est configuré dans Azure Synapse Analytics. Lorsque le nouvel objet blob est détecté dans le dossier Data Lake Storage intégré, ce déclencheur est activé, ce qui entraîne l’exécution du pipeline de données Azure Synapse Analytics.
  4. Dans une activité de copie, le pipeline Azure Synapse Analytics copie le document modifié complet de l’objet blob Data Lake Storage vers le pool SQL dédié. Cette opération est configurée pour effectuer un upsert sur une colonne sélectionnée. Si la colonne existe dans le pool SQL dédié, l’upsert met à jour la colonne. Si la colonne n’existe pas, l’upsert insère la colonne.

  5. Le pool SQL dédié est la fonctionnalité d’entreposage de données d’entreprise qui héberge la table mise à jour par le pipeline de données. L’activité de copie des données du pipeline conserve cette table synchronisée avec sa collection Atlas correspondante.

  6. Les rapports et visualisations Power BI affichent des analyses actuelles et quasiment en temps réel. Les données alimentent également les applications en aval. MongoDB Atlas fonctionne comme récepteur à l’aide d’un connecteur récepteur de pipeline de données Azure Synapse Analytics. Atlas fournit ensuite des applications personnalisées avec les données en temps réel.

Composants

  • MongoDB Atlas est une offre de base de données en tant que service de MongoDB. Cette plateforme de données d’application multicloud offre un traitement transactionnel, une recherche basée sur la pertinence, une analytique en temps réel et une synchronisation de données mobile-à-cloud. MongoDB propose également une solution locale, MongoDB Enterprise Advanced.

  • Les flux de modification dans MongoDB Atlas permettent aux applications d’accéder aux modifications de données en temps réel afin que les applications puissent réagir immédiatement à ces modifications. Les flux de modification permettent aux applications de recevoir des notifications sur les modifications apportées à un regroupement, une base de données ou un cluster de déploiement entier.

  • App Service et ses fonctionnalités Web Apps, Mobile Apps et API Apps fournissent une infrastructure pour la création, le déploiement et la mise à l’échelle d’applications web, d’applications mobiles et d’API REST. Cette solution utilise des applications web qui sont programmées dans ASP.NET. Le code est disponible sur GitHub :

  • Azure Synapse Analytics est le service central que cette solution utilise pour l'ingestion, le traitement et l'analyse des données.

  • Data Lake Storage fournit des fonctionnalités pour le stockage et le traitement des données. En tant que lac de données basé sur le stockage Blob, Data Lake Storage fournit une solution évolutive pour gérer de grands volumes de données provenant de plusieurs sources hétérogènes.

  • Azure Synapse pipelines Analytics sont utilisés pour effectuer des opérations d’extraction, de transformation et de chargement (ETL) sur les données. Azure Data Factory fournit un service similaire, mais vous pouvez créer des pipelines Azure Synapse Analytics dans Synapse Studio. Vous pouvez utiliser plusieurs activités au sein d'un même pipeline. Vous pouvez également créer des points de terminaison de dépendance pour connecter une activité à une autre activité dans le pipeline.

  • Les flux de données cartographiques sont des transformations de données conçues visuellement dans Azure Synapse Analytics. Les flux de données offrent aux ingénieurs de données un moyen de développer une logique de transformation des données sans écrire de code. Vous pouvez exécuter les flux de données résultants en tant qu'activités dans les pipelines Azure Synapse Analytics qui utilisent des clusters Apache Spark mis à l'échelle. Vous pouvez mettre en œuvre des activités de flux de données en utilisant les capacités existantes d'Azure Synapse Analytics en matière de planification, de contrôle, de flux et de surveillance.

  • Le pool SQL dédié fournit des fonctionnalités d’entreposage de données pour les données une fois les données traitées et normalisées. Cette fonctionnalité de Azure Synapse Analytics était anciennement appelée SQL Data Warehouse. Les pools SQL dédiés rendent les données affinées disponibles pour vos utilisateurs finaux et applications.

  • Azure Synapse déclencheurs Analytics offrent un moyen automatisé d’exécuter des pipelines. Vous pouvez planifier ces déclencheurs. Vous pouvez également configurer des déclencheurs basés sur des événements, tels que des déclencheurs d’événements de stockage et des déclencheurs d’événements personnalisés. La solution utilise les deux types de déclencheurs basés sur des événements.

  • Event Grid est un répartiteur d’événements serverless hautement évolutif. Vous pouvez utiliser Event Grid pour remettre des événements aux destinations de l’abonné.

  • Power BI est une collection de services logiciels et d’applications qui affichent des informations analytiques. Dans cette solution, Power BI fournit un moyen d’utiliser les données traitées pour effectuer une analyse avancée et pour dériver des insights.

Détails du scénario

MongoDB Atlas sert de couche de données opérationnelles de nombreuses applications d’entreprise. Cette base de données cloud stocke les données provenant d’applications internes, de services orientés client et d’API tierces à partir de plusieurs canaux. En utilisant Azure Synapse pipelines Analytics, vous pouvez combiner des données MongoDB Atlas avec des données relationnelles d’autres applications traditionnelles et des données non structurées à partir de sources telles que des journaux.

Intégration par lot

Dans Azure Synapse Analytics, vous pouvez intégrer de manière transparente des instances locales MongoDB et MongoDB Atlas en tant que ressource source ou puits. MongoDB est la seule base de données NoSQL qui possède des connecteurs source et récepteur pour Azure Synapse Analytics et Data Factory.

Avec les données d’historique, vous pouvez récupérer toutes les données en même temps. Vous pouvez également récupérer les données de manière incrémentielle pour des périodes spécifiques en utilisant un filtre en mode lot. Vous pouvez ensuite utiliser des pools SQL et des pools Apache Spark dans Azure Synapse Analytics pour transformer et analyser les données. Si vous devez stocker les résultats d’analyse ou de requête dans un magasin de données d’analyse, vous pouvez utiliser la ressource récepteur dans Azure Synapse Analytics.

Architecture diagram that shows the source and sink connectors that connect data from consumers to Azure Synapse Analytics and MongoDB data storage.

Pour plus d'informations sur l'installation et la configuration des connecteurs, consultez ces ressources :

Le connecteur source offre un moyen pratique d’exécuter Azure Synapse Analytics sur des données opérationnelles stockées dans MongoDB ou Atlas. Après avoir utilisé le connecteur source pour récupérer des données à partir d’Atlas, vous pouvez charger les données dans Data Lake Storage stockage d’objets blob sous la forme d’un fichier Parquet, Avro, JSON, texte ou CSV. Vous pouvez ensuite transformer ces fichiers ou les joindre à d'autres fichiers provenant d'autres sources de données dans des environnements multi-bases de données, multiclouds ou hybrides.

Vous pouvez utiliser les données que vous récupérez à partir de MongoDB Enterprise Advanced ou MongoDB Atlas dans les scénarios suivants :

  • Pour récupérer toutes les données d’une date particulière de MongoDB dans un lot. Vous chargez ensuite les données dans Data Lake Storage. À partir de là, vous utilisez un pool SQL serverless ou un pool Spark pour l’analyse, ou vous copiez les données dans un pool SQL dédié. Après avoir récupéré ce lot, vous pouvez appliquer des modifications aux données au fur et à mesure qu’elles se produisent, comme décrit dans Dataflow. Un exemple de pipeline storage-CopyPipeline_mdb_synapse_ded_pool_RTS est disponible dans le cadre de cette solution. Vous pouvez exporter le pipeline à partir de GitHub à cet objectif de chargement unique.

  • Pour produire des insights à une fréquence particulière, par exemple, pour un rapport quotidien ou horaire. Pour ce scénario, vous planifiez un pipeline pour récupérer régulièrement des données avant d’exécuter les pipelines d’analytique. Vous pouvez utiliser une requête MongoDB pour appliquer des critères de filtre et récupérer uniquement un certain sous-ensemble de données.

Synchronisation en temps réel

Les entreprises ont besoin d'informations basées sur des données en temps réel, et non sur des données périmées. Un retard de quelques heures dans la livraison des informations peut retarder le processus de décision et entraîner une perte d'avantage concurrentiel. Cette solution alimente les décisions critiques en propageant les modifications qui se produisent dans la base de données transactionnelle MongoDB vers le pool SQL dédié en temps réel.

Cette solution comporte trois parties, que décrivent les sections suivantes.

Capturer les modifications d’Atlas MongoDB

Le flux de modifications MongoDB capture les modifications qui se produisent dans la base de données. Les API de flux de modification permettent d’obtenir des informations sur les modifications apportées aux applications web App Service qui s’abonnent au flux de modifications. Ces applications écrivent les modifications apportées au stockage d’objets blob Data Lake Storage.

Déclencher un pipeline pour propager les modifications apportées à Azure Synapse Analytics

La solution présente deux options pour déclencher un pipeline Azure Synapse Analytics une fois l’objet blob écrit dans Data Lake Storage :

  • Déclencheur basé sur le stockage. Utilisez cette option si vous avez besoin d’une analytique en temps réel, car le pipeline est déclenché dès que l’objet blob avec la modification est écrit. Mais cette option peut ne pas être l’approche préférée lorsque vous avez un volume élevé de modifications de données. Azure Synapse Analytics limite le nombre de pipelines qui peuvent s’exécuter simultanément. Lorsque vous avez un grand nombre de modifications de données, vous pouvez atteindre cette limite.

  • Déclencheur personnalisé basé sur des événements. Ce type de déclencheur présente l’avantage qu’il est en dehors de Azure Synapse Analytics. Il est donc plus facile de contrôler. La version Event Grid de l’application web écrit le document de données modifié dans le stockage d’objets blob. En même temps, l’application crée un événement Event Grid. Les données de l’événement contiennent le nom de fichier de l’objet blob. Le pipeline que l'événement déclenche reçoit le nom du fichier comme paramètre et utilise ensuite le fichier pour mettre à jour le pool SQL dédié.

Propager les modifications apportées à un pool SQL dédié

Un pipeline Azure Synapse Analytics propage les modifications apportées à un pool SQL dédié. La solution fournit un pipeline CopyPipeline_mdb_synapse_ded_pool_RTS sur GitHub qui copie la modification dans l’objet blob de Data Lake Storage vers le pool SQL dédié. Ce pipeline est déclenché par le déclencheur stockage ou Event Grid.

Cas d’usage potentiels

Les cas d’usage de cette solution s’étendent sur de nombreuses industries et domaines :

  • Retail

    • Création d’une intelligence dans le regroupement de produits et la promotion des produits
    • Optimisation du stockage froid qui utilise le streaming IoT
    • Optimisation de la réapprovisionnement d’inventaire
    • Ajouter de la valeur à la distribution omnicanale
  • Banque et finances

    • Personnalisation des services financiers clients
    • Détection de transactions potentiellement frauduleuses
  • Télécommunications

    • Optimisation des réseaux de nouvelle génération
    • Optimisation de la valeur des réseaux de périphérie
  • Automobile

    • Optimisation du paramétrage des véhicules connectés
    • Détection d’anomalies dans la communication IoT dans les véhicules connectés
  • Industrie

    • Fourniture d’une maintenance prédictive pour les machines
    • Optimisation de la gestion du stockage et de l’inventaire

Voici deux exemples concrets :

  • Comme cet article décrit précédemment dans l’intégration Batch, vous pouvez récupérer des données MongoDB dans un lot, puis mettre à jour les données à mesure que des modifications se produisent. Cette fonctionnalité permet d’obtenir des insights en temps réel pour la prise de décisions et les conclusions juste-à-temps. Cette fonctionnalité est utile pour l’analyse des informations sensibles et critiques telles que les transactions financières et les données de détection des fraudes.
  • Comme l'intégration par lots le décrit également, vous pouvez programmer un pipeline pour récupérer les données MongoDB sur une base régulière. Cette fonctionnalité est utile dans les scénarios de vente au détail tels que la mise à jour des niveaux d’inventaire avec des données de ventes quotidiennes. Dans ce cas, les rapports d’analytique et les tableaux de bord ne sont pas d’importance critique, et l’analyse en temps réel ne vaut pas le coup.

Les sections suivantes examinent de plus près deux cas d’usage de l’industrie de la vente au détail.

Regroupement de produits

Pour promouvoir la vente d’un produit, vous pouvez vendre le produit dans le cadre d’une offre groupée avec d’autres produits connexes. L’objectif est d’utiliser des données de modèle de vente pour développer des stratégies de regroupement d’un produit dans des packages.

Il existe deux sources de données :

  • Les données du catalogue de produits de MongoDB
  • Données de vente provenant d'Azure SQL

Les deux ensembles de données sont migrés vers un pool SQL dédié Azure Synapse Analytics à l’aide d’un pipeline Azure Synapse Analytics. Les déclencheurs et les captures de données modifiées sont utilisés pour obtenir une synchronisation de données en quasi temps réel en plus des données migrées ponctuelles.

Les graphiques Power BI suivants montrent l’affinité entre les produits et les modèles de vente. L'affinité entre le stylo et la recharge à base d'encre est élevée. Les données de vente indiquent que le stylo a un volume de ventes élevé dans la zone spécifiée.

Diagram that shows pipeline stages and charts that show pen sales by product, year, region, and affinity. Pen sales are highest in 2022 in the South.

L'analyse fait deux suggestions pour obtenir de meilleures ventes :

  • Regroupement du stylo et du remplissage en fonction de l’encre
  • Promotion de l’offre groupée dans certaines régions

Promotion de produit

Pour promouvoir la vente d’un produit, vous pouvez recommander le produit aux clients qui s’intéressent aux produits connexes. L’objectif est d’utiliser des données de ventes et des données de modèle d’achat client pour développer des stratégies pour recommander un produit aux clients.

En utilisant Azure Synapse Analytics, vous pouvez développer des modèles IA et Machine Learning pour déterminer les produits à recommander aux clients.

Les diagrammes suivants montrent l’utilisation de différents types de données pour créer un modèle pour déterminer les autres recommandations de produit. Les données incluent les modèles d’achat des clients, les bénéfices, les affinités de produits, le volume de ventes des produits et les paramètres du catalogue de produits.

Diagrams that show pipeline stages and a workflow for an AI model. Data fields include the customer ID, price, sales, and profit.

Si votre modèle obtient une précision élevée, il fournit une liste de produits que vous pouvez recommander au client.

Considérations

Ces considérations implémentent les piliers d’Azure Well-Architected Framework qui est un ensemble de principes directeurs qui permettent d’améliorer la qualité d’une charge de travail. Pour plus d'informations, consultez Microsoft Azure Well-Architected Framework.

Sécurité

La sécurité fournit des garanties contre les attaques délibérées, et contre l’utilisation abusive de vos données et systèmes importants. Pour plus d’informations, consultez Vue d’ensemble du pilier Sécurité.

Pour plus d’informations sur les exigences de sécurité et les contrôles des composants Azure dans la solution, consultez la section de sécurité de la documentation de chaque produit.

Optimisation des coûts

L’optimisation des coûts consiste à examiner les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d’informations, consultez Vue d’ensemble du pilier d’optimisation des coûts.

  • Pour estimer le coût des produits et configurations Azure, consultez la calculatrice de prix Azure.
  • Azure vous aide à éviter les coûts inutiles en identifiant le nombre correct de ressources pour vos besoins, en analysant les dépenses dans le temps et en évoluant pour répondre aux besoins de l'entreprise sans dépenser trop. Par exemple, vous pouvez suspendre les pools SQL dédiés lorsque vous ne prévoyez aucune charge. Vous pouvez les reprendre plus tard.
  • Vous pouvez remplacer App Service par Azure Functions. En orchestrant les fonctions dans un pipeline Azure Synapse Analytics, vous pouvez réduire les coûts.
  • Pour réduire le coût du cluster Spark, choisissez le type de calcul de flux de données approprié. Les options générales et optimisées en mémoire sont disponibles. Choisissez également les valeurs de nombre de cœurs et de durée de vie (TTL) appropriées.
  • Pour en savoir plus sur la gestion des coûts des composants de solution clés, consultez ces ressources :

Efficacité des performances

L'efficacité des performances est la capacité de votre charge de travail à évoluer pour répondre aux demandes des utilisateurs de manière efficace. Pour plus d’informations, consultez Vue d’ensemble du pilier d’efficacité des performances.

Lorsque le volume de modifications est élevé, l'exécution de milliers de pipelines dans Azure Synapse Analytics pour chaque modification de la collection peut entraîner une accumulation de pipelines en file d'attente. Pour améliorer les performances dans ce scénario, tenez compte des approches suivantes :

  • Utilisez le code de App Service basé sur le stockage, qui écrit les documents JSON avec les modifications apportées à Data Lake Storage. Ne liez pas le déclencheur basé sur le stockage au pipeline. Utilisez plutôt un déclencheur planifié à un court intervalle, par exemple toutes les deux ou cinq minutes. Lorsque le déclencheur planifié s’exécute, il prend tous les fichiers du répertoire Data Lake Storage spécifié et met à jour le pool SQL dédié pour chacun d’eux.
  • Modifiez le code App Service Event Grid. Programmez-le pour ajouter un micro-lot d’environ 100 modifications au stockage d’objets blob avant d’ajouter la nouvelle rubrique à l’événement avec les métadonnées qui incluent le nom de fichier. Avec cette modification, vous ne déclenchez qu’un seul pipeline pour un objet blob avec les 100 modifications. Vous pouvez ajuster la taille du micro-lot en fonction de votre scénario. Utilisez de petits micro-lots à une fréquence élevée pour fournir des mises à jour proches du temps réel. Ou utilisez des micro-lots plus volumineux à une fréquence inférieure pour les mises à jour retardées et une surcharge réduite.

Pour plus d’informations sur l’amélioration des performances et de l’extensibilité de l’activité de copie de pipeline Azure Synapse Analytics, consultez Guide des performances et de l'évolutivité de l'activité de copie.

Déployer ce scénario

Pour plus d’informations sur l’implémentation de cette solution, consultez la solution de synchronisation en temps réel pour l’intégration d’Atlas MongoDB à Synapse.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteurs principaux :

Autres contributeurs :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes

Pour plus d'informations sur la solution, contactez partners@mongodb.com.

Pour plus d'informations sur MongoDB, consultez ces ressources :

Pour plus d'informations sur les composants de solution Azure, consultez ces ressources :