Modifier

Partager via


Analyser des données opérationnelles sur MongoDB Atlas à l’aide d’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 tirer des insights des 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 les pools SQL dédiés Azure Synapse Analytics synchronisés avec les modifications apportées à la source de données MongoDB Atlas.

Apache®, Apache Sparket le logo de flamme sont des marques déposées ou des marques de la Fondation Apache Software aux États-Unis et/ou dans d’autres pays. Aucune approbation par Apache Software Foundation n’est implicite par l’utilisation de ces marques.

Le logo MongoDB Atlas est une marque de MongoDB. Aucune approbation n’est implicite par l’utilisation de cette marque.

Architecture

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

diagramme d’architecture qui montre le flux de données de MongoDB Atlas vers les applications d’analyse. Les étapes intermédiaires incluent une API de flux de modification et Azure Synapse Analytics.

Télécharger un fichier PowerPoint de tous les diagrammes de 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 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 Event Grid, un déclencheur personnalisé basé sur des événements 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 de 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 en quasi-temps réel. Les données alimentent également les applications en aval. MongoDB Atlas fonctionne en tant que récepteur à l’aide d’un connecteur de 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.

  • flux de modification dans MongoDB Atlas donnent aux applications l’accès 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 particulier.

  • 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 principal que cette solution utilise pour l’ingestion, le traitement et l’analytique des données.

  • Data Lake Storage offre des fonctionnalités de stockage et de traitement des données. En tant que lac de données basé sur 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.

  • pipelines Azure Synapse Analytics sont utilisés pour effectuer des opérations d’extraction, de transformation, 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 dans le 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 de mappage sont des transformations de données visuellement conçues dans Azure Synapse Analytics. Les flux de données permettent aux ingénieurs de données 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 des pipelines Azure Synapse Analytics qui utilisent des clusters Apache Spark mis à l’échelle. Vous pouvez placer les activités de flux de données en fonctionnement à l’aide des fonctionnalités existantes de planification, de contrôle, de flux et de supervision d’Azure Synapse Analytics.

  • 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é d’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.

  • déclencheurs Azure Synapse 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 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 d’analyse. Dans cette solution, Power BI fournit un moyen d’utiliser les données traitées pour effectuer une analyse avancée et 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 des données à partir d’applications internes, de services clients et d’API tierces à partir de plusieurs canaux. En utilisant des pipelines Azure Synapse 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 lots

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

Avec les données historiques, vous pouvez récupérer toutes les données à la fois. Vous pouvez également récupérer des données de manière incrémentielle pendant des périodes spécifiques à l’aide d’un filtre en mode batch. 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 de récepteur dans Azure Synapse Analytics.

diagramme d’architecture montrant les connecteurs source et récepteur qui connectent les données des consommateurs au stockage de données Azure Synapse Analytics et MongoDB.

Pour plus d’informations sur la configuration et la configuration des connecteurs, consultez les ressources suivantes :

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 le stockage d’objets blob Data Lake Storage en tant que fichier Parquet, Avro, JSON, text ou CSV. Vous pouvez ensuite transformer ces fichiers ou les joindre à d’autres fichiers à partir d’autres sources de données dans des environnements cloud multiclouds, multiclouds ou multiclouds.

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 à partir 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 à cette fin 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’analyse. 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’insights basés sur des données en temps réel, et non sur des données obsolètes. Un délai de quelques heures dans la livraison des insights peut tenir le processus décisionnel et entraîner une perte d’avantage concurrentiel. Cette solution alimente la prise de décision critique 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 les sections suivantes décrivent.

Capturer les modifications de MongoDB Atlas

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

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

La solution présente deux options pour déclencher un pipeline Azure Synapse Analytics une fois que l’objet blob est é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. Toutefois, cette option peut ne pas être l’approche recommandé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 se trouve en dehors d’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 le déclencheur d’événement reçoit le nom de fichier en tant que paramètre, puis utilise le fichier pour mettre à jour le pool SQL dédié.

Propager les modifications à 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 :

  • Vente au détail

    • Création d’informations sur le regroupement de produits et la promotion des produits
    • Optimisation du stockage à froid qui utilise le streaming IoT
    • Optimisation du réapprovisionnement de l’inventaire
    • Ajout de valeur à la distribution omnicanal
  • Banque et finance

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

    • 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
  • Fabrication

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

Voici deux exemples spécifiques :

  • Comme décrit précédemment dans d’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écision 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 'intégration Batch décrit également, vous pouvez planifier un pipeline pour récupérer régulièrement des données MongoDB. 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’analyse 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 plus en détail deux cas d’usage du secteur 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’un ensemble 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 :

  • Données du catalogue de produits de MongoDB
  • Données de ventes d’Azure SQL

Les deux jeux 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 stylet et le remplissage en fonction de l’encre est élevée. Les données de ventes indiquent que le stylet a un volume de ventes élevé dans la zone spécifiée.

Diagramme montrant les étapes de pipeline et les graphiques qui affichent les ventes de stylet par produit, année, région et affinité. Les ventes de stylos sont les plus élevées en 2022 dans le Sud.

L’analyse fait deux suggestions pour produire de meilleures ventes :

  • Regroupement du stylet et du remplissage en fonction de l’encre
  • Promotion de l’offre groupée dans certains domaines

Promotion du produit

Pour promouvoir la vente d’un produit, vous pouvez recommander le produit aux clients qui s’intéressent à des produits connexes. L’objectif est d’utiliser des données de vente 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 d’autres recommandations de produit. Les données incluent les modèles d’achat des clients, les profits, les affinités produit, le volume des ventes des produits et les paramètres du catalogue de produits.

Diagrammes qui montrent les phases de pipeline et un flux de travail pour un modèle IA. Les champs de données incluent l’ID client, le prix, les ventes et le bénéfice.

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 d’ensembles guidants qui peuvent être utilisés pour améliorer la qualité d’une charge de travail. Pour plus d’informations, consultez Microsoft Azure Well-Architected Framework.

Sécurité

La sécurité offre des garanties contre les attaques délibérées et l’abus de vos données et systèmes précieux. Pour plus d’informations, consultez Vue d’ensemble du pilier de 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 sécurité 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, utilisez 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 au fil du temps et en effectuant une mise à l’échelle pour répondre aux besoins de l’entreprise sans trop de dépenses. Par exemple, vous pouvez suspendre les pools SQL dédiés lorsque vous ne vous attendez pas à une charge. Vous pouvez les reprendre ultérieurement.
  • 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 le nombre de cœurs approprié et les valeurs de durée de vie (TTL).
  • Pour en savoir plus sur la gestion des coûts des composants de solution clés, consultez les ressources suivantes :

Efficacité des performances

L’efficacité des performances est la capacité de votre charge de travail à être mise à l’échelle pour répondre aux exigences qui y sont placées par les utilisateurs de manière efficace. Pour plus d’informations, consultez vue d’ensemble de l’efficacité des performances.

Lorsqu’il existe un volume élevé de modifications, l’exécution de milliers de pipelines dans Azure Synapse Analytics pour chaque modification de la collection peut entraîner un backlog de pipelines mis en file d’attente. Pour améliorer les performances dans ce scénario, tenez compte des approches suivantes :

  • Utilisez le code 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 avec le pipeline. Utilisez plutôt un déclencheur planifié à un intervalle court, par exemple toutes les deux ou cinq minutes. Lorsque le déclencheur planifié s’exécute, il prend tous les fichiers dans le répertoire Data Lake Storage spécifié et met à jour le pool SQL dédié pour chacun d’eux.
  • Modifiez le code Event Grid App Service. 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 de 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. Vous pouvez également utiliser des micro-lots plus volumineux à une fréquence inférieure pour les mises à jour retardées et réduire la surcharge.

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 de performances et d’extensibilité de l’activité de copie.

Déployer ce scénario

Pour plus d’informations sur l’implémentation de cette solution, consultez Real-Time Solution de synchronisation pour MongoDB Atlas Integration avec 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 les ressources suivantes :

Pour plus d’informations sur les composants de solution Azure, consultez les ressources suivantes :