Bewerken

Delen via


Operationele gegevens analyseren in MongoDB Atlas met behulp van Azure Synapse Analytics

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

Dit artikel bevat een oplossing voor het afleiden van inzichten uit operationele MongoDB Atlas-gegevens. De oplossing verbindt MongoDB Atlas met Azure Synapse Analytics. De verbinding maakt het mogelijk om gegevens over te dragen in batches en in realtime. De realtime benadering houdt toegewezen SQL-pools van Azure Synapse Analytics synchroon met wijzigingen in de MongoDB Atlas-gegevensbron.

Apache, Apache® Spark en het vlamlogo zijn gedeponeerde handelsmerken of handelsmerken van de Apache Software Foundation in de Verenigde Staten en/of andere landen. Er wordt geen goedkeuring door De Apache Software Foundation geïmpliceerd door het gebruik van deze markeringen.

Het MongoDB Atlas-logo is een handelsmerk van MongoDB. Er wordt geen goedkeuring geïmpliceerd door het gebruik van dit merk.

Architectuur

In het volgende diagram ziet u hoe u MongoDB Atlas-gegevens in realtime synchroniseert met Azure Synapse Analytics.

Architectuurdiagram met gegevensstroom van MongoDB Atlas naar analyse-apps. Tussentijdse fasen omvatten een wijzigingsstroom-API en Azure Synapse Analytics.

Download een PowerPoint-bestand van alle diagrammen in dit artikel.

Gegevensstroom

De oplossing biedt twee opties voor het activeren van de pijplijnen waarmee de realtime wijzigingen in het MongoDB Atlas-archief voor operationele gegevens (ODS) worden vastgelegd en de gegevens worden gesynchroniseerd. In de volgende stappen worden beide opties beschreven.

  1. Wijzigingen vinden plaats in de operationele en transactionele gegevens die zijn opgeslagen in MongoDB Atlas. De Api's van de Mongo Atlas-wijzigingsstroom melden geabonneerde toepassingen over de wijzigingen in realtime.

  2. Een aangepaste Azure-app Service-web-app abonneert zich op de MongoDB-wijzigingsstroom. Er zijn twee versies van de web-app, Event Grid en opslag, één voor elke versie van de oplossing. Beide app-versies luisteren naar wijzigingen die worden veroorzaakt door een invoeg-, update- of verwijderbewerking in Atlas. Wanneer de apps een wijziging detecteren, schrijven ze het gewijzigde document als blob naar Azure Data Lake Storage, dat is geïntegreerd met Azure Synapse Analytics. De Event Grid-versie van de app maakt ook een nieuwe gebeurtenis in Azure Event Grid wanneer er een wijziging in Atlas wordt gedetecteerd.

  3. Beide versies van de oplossing activeren de Azure Synapse Analytics-pijplijn:

    1. In de Event Grid-versie wordt een aangepaste trigger op basis van gebeurtenissen geconfigureerd in Azure Synapse Analytics. Deze trigger abonneert zich op het Event Grid-onderwerp waarnaar de web-app publiceert. Met de nieuwe gebeurtenis in dat onderwerp wordt de Azure Synapse Analytics-trigger geactiveerd, waardoor de Azure Synapse Analytics-gegevenspijplijn wordt uitgevoerd.
    2. In de opslagversie wordt een trigger op basis van opslag geconfigureerd in Azure Synapse Analytics. Wanneer de nieuwe blob wordt gedetecteerd in de geïntegreerde Data Lake Storage-map, wordt deze trigger geactiveerd, waardoor de Azure Synapse Analytics-gegevenspijplijn wordt uitgevoerd.
  4. In een kopieeractiviteit kopieert de Azure Synapse Analytics-pijplijn het volledige gewijzigde document van de Data Lake Storage-blob naar de toegewezen SQL-pool. Deze bewerking is geconfigureerd om een upsert uit te voeren op een geselecteerde kolom. Als de kolom bestaat in de toegewezen SQL-pool, werkt de upsert de kolom bij. Als de kolom niet bestaat, wordt de kolom door de upsert ingevoegd.

  5. De toegewezen SQL-pool is de functie voor datawarehousing voor ondernemingen die als host fungeert voor de tabel die door de gegevenspijplijn wordt bijgewerkt. De kopieergegevensactiviteit van de pijplijn houdt die tabel gesynchroniseerd met de bijbehorende Atlas-verzameling.

  6. In Power BI-rapporten en -visualisaties worden actuele en bijna realtime analyses weergegeven. De gegevens worden ook ingevoerd in downstreamtoepassingen. MongoDB Atlas fungeert als sink met behulp van een Azure Synapse Analytics-connector voor gegevenspijplijnen. Atlas biedt vervolgens aangepaste apps met de realtime gegevens.

Onderdelen

  • MongoDB Atlas is een database-as-a-service-aanbieding van MongoDB. Dit gegevensplatform voor toepassingen met meerdere clouds biedt transactionele verwerking, zoeken op relevantie, realtime analyses en synchronisatie van gegevens in de cloud. MongoDB biedt ook een on-premises oplossing, MongoDB Enterprise Advanced.

  • Wijzigingenstromen in MongoDB Atlas geven toepassingen toegang tot realtime gegevenswijzigingen, zodat de apps direct op deze wijzigingen kunnen reageren. De wijzigingsstromen bieden een manier voor toepassingen om meldingen te ontvangen over wijzigingen in een bepaalde verzameling, database of hele implementatiecluster.

  • App Service en de functies van App Service , Mobile Apps en API Apps bieden een framework voor het bouwen, implementeren en schalen van web-apps, mobiele apps en REST API's. Deze oplossing maakt gebruik van web-apps die zijn geprogrammeerd in ASP.NET. De code is beschikbaar op GitHub:

  • Azure Synapse Analytics is de kernservice die door deze oplossing wordt gebruikt voor gegevensopname, verwerking en analyse.

  • Data Lake Storage biedt mogelijkheden voor het opslaan en verwerken van gegevens. Als data lake die is gebouwd op Blob Storage, biedt Data Lake Storage een schaalbare oplossing voor het beheren van grote hoeveelheden gegevens uit meerdere heterogene bronnen.

  • Azure Synapse Analytics-pijplijnen worden gebruikt voor het uitvoeren van ETL-bewerkingen (extract, transform and load) op gegevens. Azure Data Factory biedt een vergelijkbare service, maar u kunt Azure Synapse Analytics-pijplijnen maken in Synapse Studio. U kunt meerdere activiteiten binnen dezelfde pijplijn gebruiken. U kunt ook afhankelijkheidseindpunten maken om een activiteit te verbinden met een andere activiteit in de pijplijn.

  • Toewijzingsgegevensstromen zijn visueel ontworpen gegevenstransformaties in Azure Synapse Analytics. Gegevensstromen bieden een manier voor data engineers om logica voor gegevenstransformatie te ontwikkelen zonder code te schrijven. U kunt de resulterende gegevensstromen uitvoeren als activiteiten in Azure Synapse Analytics-pijplijnen die gebruikmaken van uitgeschaalde Apache Spark-clusters. U kunt activiteiten voor gegevensstromen in werking zetten met behulp van bestaande azure Synapse Analytics-plannings-, controle-, stroom- en bewakingsmogelijkheden.

  • Toegewezen SQL-pool biedt mogelijkheden voor datawarehousing voor gegevens nadat de gegevens zijn verwerkt en genormaliseerd. Deze functie van Azure Synapse Analytics werd voorheen SQL Data Warehouse genoemd. Toegewezen SQL-pools maken de verfijnde gegevens beschikbaar voor uw eindgebruikers en toepassingen.

  • Azure Synapse Analytics-triggers bieden een geautomatiseerde manier om pijplijnen uit te voeren. U kunt deze triggers plannen. U kunt ook triggers op basis van gebeurtenissen instellen, zoals triggers voor opslaggebeurtenissen en aangepaste gebeurtenistriggers. De oplossing maakt gebruik van beide typen triggers op basis van gebeurtenissen.

  • Event Grid is een zeer schaalbare, serverloze gebeurtenisbroker. U kunt Event Grid gebruiken om gebeurtenissen te leveren aan abonneebestemmingen.

  • Power BI is een verzameling softwareservices en apps die analysegegevens weergeven. In deze oplossing biedt Power BI een manier om de verwerkte gegevens te gebruiken om geavanceerde analyses uit te voeren en inzichten af te leiden.

Scenariodetails

MongoDB Atlas fungeert als de operationele gegevenslaag van veel bedrijfstoepassingen. Deze clouddatabase slaat gegevens op uit interne toepassingen, klantgerichte services en API's van derden vanuit meerdere kanalen. Met behulp van Azure Synapse Analytics-pijplijnen kunt u MongoDB Atlas-gegevens combineren met relationele gegevens uit andere traditionele toepassingen en ongestructureerde gegevens uit bronnen zoals logboeken.

Batchintegratie

In Azure Synapse Analytics kunt u mongoDB on-premises exemplaren en MongoDB Atlas naadloos integreren als bron- of sinkresource. MongoDB is de enige NoSQL-database met bron- en sinkconnectors voor Azure Synapse Analytics en Data Factory.

Met historische gegevens kunt u alle gegevens tegelijk ophalen. U kunt gegevens ook incrementeel ophalen voor specifieke perioden met behulp van een filter in de batchmodus. Vervolgens kunt u SQL-pools en Apache Spark-pools in Azure Synapse Analytics gebruiken om de gegevens te transformeren en analyseren. Als u de analyse- of queryresultaten wilt opslaan in een analysegegevensarchief, kunt u de sink-resource in Azure Synapse Analytics gebruiken.

Architectuurdiagram met de bron- en sinkconnectors die gegevens van consumenten verbinden met Azure Synapse Analytics en MongoDB-gegevensopslag.

Zie deze resources voor meer informatie over het instellen en configureren van de connectors:

De bronconnector biedt een handige manier om Azure Synapse Analytics uit te voeren op operationele gegevens die zijn opgeslagen in MongoDB of Atlas. Nadat u de bronconnector hebt gebruikt om gegevens op te halen uit Atlas, kunt u de gegevens in Data Lake Storage-blobopslag laden als parquet-, Avro-, JSON-, tekst- of CSV-bestand. U kunt deze bestanden vervolgens transformeren of deze samenvoegen met andere bestanden uit andere gegevensbronnen in omgevingen met meerdere databases, meerdere clouds of hybride cloudomgevingen.

In de volgende scenario's kunt u de gegevens gebruiken die u ophaalt uit MongoDB Enterprise Advanced of MongoDB Atlas:

  • Als u alle gegevens van een bepaalde datum uit MongoDB in een batch wilt ophalen. Vervolgens laadt u de gegevens in Data Lake Storage. Van daaruit gebruikt u een serverloze SQL-pool of Spark-pool voor analyse of kopieert u de gegevens naar een toegewezen SQL-pool. Nadat u deze batch hebt opgehaald, kunt u wijzigingen toepassen op de gegevens zodra ze plaatsvinden, zoals beschreven in de gegevensstroom. Een voorbeeldpijplijn voor opslag CopyPipeline_mdb_synapse_ded_pool_RTS is beschikbaar als onderdeel van deze oplossing. U kunt de pijplijn exporteren vanuit GitHub voor dit eenmalige laaddoel.

  • Voor het produceren van inzichten met een bepaalde frequentie, bijvoorbeeld voor een dagelijks of uurrapport. Voor dit scenario plant u een pijplijn om regelmatig gegevens op te halen voordat u de analysepijplijnen uitvoert. U kunt een MongoDB-query gebruiken om filtercriteria toe te passen en alleen een bepaalde subset met gegevens op te halen.

Realtime synchronisatie

Ondernemingen hebben inzichten nodig die zijn gebaseerd op realtime gegevens, niet verouderde gegevens. Een vertraging van een paar uur in inzichtlevering kan het besluitvormingsproces in stand houden en leiden tot een verlies van concurrentievoordeel. Deze oplossing zorgt voor kritieke besluitvorming door wijzigingen door te geven die zich in de transactionele MongoDB-database voordoen in realtime aan de toegewezen SQL-pool.

Deze oplossing heeft drie delen, die in de volgende secties worden beschreven.

De Wijzigingen in MongoDB Atlas vastleggen

De MongoDB-wijzigingsstroom legt wijzigingen vast die zich in de database voordoen. De API's van de wijzigingsstroom maken informatie over wijzigingen die beschikbaar zijn voor App Service-web-apps die zich abonneren op de wijzigingsstroom. Deze apps schrijven de wijzigingen in de Data Lake Storage-blobopslag.

Een pijplijn activeren om de wijzigingen door te geven aan Azure Synapse Analytics

De oplossing biedt twee opties voor het activeren van een Azure Synapse Analytics-pijplijn nadat de blob naar Data Lake Storage is geschreven:

  • Een trigger op basis van opslag. Gebruik deze optie als u realtime-analyses nodig hebt, omdat de pijplijn wordt geactiveerd zodra de blob met de wijziging is geschreven. Maar deze optie is mogelijk niet de voorkeursbenadering wanneer u een groot aantal gegevenswijzigingen hebt. Azure Synapse Analytics beperkt het aantal pijplijnen dat gelijktijdig kan worden uitgevoerd. Wanneer u een groot aantal gegevenswijzigingen hebt, kunt u die limiet bereiken.

  • Een aangepaste trigger op basis van gebeurtenissen. Dit type trigger heeft het voordeel dat deze zich buiten Azure Synapse Analytics bevindt, dus het is gemakkelijker te beheren. De Event Grid-versie van de web-app schrijft het gewijzigde gegevensdocument naar de blobopslag. Tegelijkertijd maakt de app een nieuwe Event Grid-gebeurtenis. De gegevens in de gebeurtenis bevatten de bestandsnaam van de blob. De pijplijn die door de gebeurtenis wordt geactiveerd, ontvangt de bestandsnaam als parameter en gebruikt vervolgens het bestand om de toegewezen SQL-pool bij te werken.

De wijzigingen doorgeven aan een toegewezen SQL-pool

Met een Azure Synapse Analytics-pijplijn worden de wijzigingen doorgegeven aan een toegewezen SQL-pool. De oplossing biedt een CopyPipeline_mdb_synapse_ded_pool_RTS-pijplijn op GitHub waarmee de wijziging in de blob van Data Lake Storage naar de toegewezen SQL-pool wordt gekopieerd. Deze pijplijn wordt geactiveerd door de opslag- of Event Grid-trigger.

Potentiële gebruikscases

De gebruiksvoorbeelden voor deze oplossing omvatten veel branches en gebieden:

  • Retail

    • Intelligentie ontwikkelen in productbundeling en productpromotie
    • Koude opslag optimaliseren die gebruikmaakt van IoT-streaming
    • Voorraadaanvulling optimaliseren
    • Waarde toevoegen aan omnichannel-distributie
  • Bankwezen en financiën

    • Financiële dienstverlening van klanten aanpassen
    • Mogelijk frauduleuze transacties detecteren
  • Telecommunicatie

    • Netwerken van de volgende generatie optimaliseren
    • De waarde van edge-netwerken maximaliseren
  • Auto's

    • Parameterisatie van verbonden voertuigen optimaliseren
    • Afwijkingen detecteren in IoT-communicatie in verbonden voertuigen
  • Productie

    • Voorspellend onderhoud bieden voor machines
    • Opslag- en voorraadbeheer optimaliseren

Hier volgen twee specifieke voorbeelden:

  • Zoals in dit artikel eerder in Batch-integratie wordt beschreven, kunt u MongoDB-gegevens in een batch ophalen en vervolgens de gegevens bijwerken wanneer er wijzigingen optreden. Deze mogelijkheid maakt realtime inzichten mogelijk voor just-in-time besluitvorming en conclusies. Deze functionaliteit is handig voor analyse van gevoelige en kritieke informatie, zoals financiële transacties en fraudedetectiegegevens.
  • Zoals batch-integratie ook beschrijft, kunt u een pijplijn plannen om Regelmatig MongoDB-gegevens op te halen. Deze functionaliteit is handig in retailscenario's, zoals het bijwerken van voorraadniveaus met dagelijkse verkoopgegevens. In dergelijke gevallen zijn analyserapporten en dashboards niet van cruciaal belang en is realtimeanalyse niet de moeite waard.

In de volgende secties worden twee use cases voor de detailhandel nader bekeken.

Productbundeling

Om de verkoop van een product te promoten, kunt u het product verkopen als onderdeel van een bundel samen met andere gerelateerde producten. Het doel is om verkooppatroongegevens te gebruiken om strategieën te ontwikkelen voor het bundelen van een product in pakketten.

Er zijn twee gegevensbronnen:

  • De productcatalogusgegevens uit MongoDB
  • Verkoopgegevens van Azure SQL

Beide gegevenssets worden gemigreerd naar een toegewezen SQL-pool van Azure Synapse Analytics met behulp van een Azure Synapse Analytics-pijplijn. Triggers en wijzigingsgegevensopnamen worden gebruikt om een bijna realtime gegevenssynchronisatie te realiseren boven op de eenmalige gemigreerde gegevens.

In de volgende Power BI-grafieken ziet u de affiniteit tussen de producten en verkooppatronen. De affiniteit van de pen en op inkt gebaseerde opvulling is hoog. De verkoopgegevens tonen aan dat de pen een hoog verkoopvolume heeft in het opgegeven gebied.

Diagram met pijplijnfasen en -grafieken die de verkoop van pen per product, jaar, regio en affiniteit weergeven. De penverkoop is het hoogst in 2022 in het zuiden.

De analyse doet twee suggesties voor het opleveren van betere verkoop:

  • De pen en op inkt gebaseerde opvulling bundelen
  • Bevordering van de bundel op bepaalde gebieden

Productpromotie

Als u de verkoop van een product wilt promoten, kunt u het product aanbevelen aan klanten die geïnteresseerd zijn in gerelateerde producten. Het doel is om verkoopgegevens en klantpatroongegevens te gebruiken om strategieën te ontwikkelen voor het aanbevelen van een product aan klanten.

Met behulp van Azure Synapse Analytics kunt u AI- en machine learning-modellen ontwikkelen om te bepalen welke producten aan klanten moeten worden aanbevolen.

In de volgende diagrammen ziet u het gebruik van verschillende typen gegevens om een model te maken om alternatieve productaan aanbevelingen te bepalen. De gegevens omvatten aankooppatronen van klanten, winst, productaffiniteit, het verkoopvolume van de producten en parameters van de productcatalogus.

Diagrammen met pijplijnfasen en een werkstroom voor een AI-model. Gegevensvelden omvatten de klant-id, prijs, verkoop en winst.

Als uw model een hoge nauwkeurigheid bereikt, biedt het een lijst met producten die u aan de klant kunt aanbevelen.

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Beveiliging

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijler voor meer informatie.

Zie de beveiligingssectie van de documentatie van elk product voor gedetailleerde informatie over de beveiligingsvereisten en besturingselementen van de Azure-onderdelen in de oplossing.

Kostenoptimalisatie

Kostenoptimalisatie gaat over manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.

  • Als u de kosten van Azure-producten en -configuraties wilt schatten, gebruikt u de Azure-prijscalculator.
  • Azure helpt u onnodige kosten te voorkomen door het juiste aantal resources voor uw behoeften te identificeren, door uitgaven in de loop van de tijd te analyseren en door te schalen om te voldoen aan bedrijfsbehoeften zonder te veel te besteden. U kunt bijvoorbeeld de toegewezen SQL-pools onderbreken wanneer u geen belasting verwacht. U kunt ze later hervatten.
  • U kunt App Service vervangen door Azure Functions. Door de functies in een Azure Synapse Analytics-pijplijn te organiseren, kunt u de kosten verlagen.
  • Als u de kosten van het Spark-cluster wilt verlagen, kiest u het juiste rekentype voor de gegevensstroom. Er zijn algemene en voor geheugen geoptimaliseerde opties beschikbaar. Kies ook de juiste TTL-waarden (Core Count en Time-to-Live).
  • Zie deze resources voor meer informatie over het beheren van de kosten van belangrijke oplossingsonderdelen:

Prestatie-efficiëntie

Prestatie-efficiëntie is de mogelijkheid van uw workload om te schalen om te voldoen aan de eisen die door gebruikers op een efficiënte manier worden gesteld. Zie overzicht van de pijler Prestatie-efficiëntie voor meer informatie.

Wanneer er veel wijzigingen zijn, kan het uitvoeren van duizenden pijplijnen in Azure Synapse Analytics voor elke wijziging in de verzameling leiden tot een achterstand van pijplijnen in de wachtrij. Houd rekening met de volgende benaderingen om de prestaties in dit scenario te verbeteren:

  • Gebruik de App Service-code op basis van opslag, waarmee de JSON-documenten worden geschreven met de wijzigingen in Data Lake Storage. Koppel de trigger op basis van opslag niet aan de pijplijn. Gebruik in plaats daarvan een geplande trigger met een kort interval, zoals om de twee of vijf minuten. Wanneer de geplande trigger wordt uitgevoerd, worden alle bestanden in de opgegeven Data Lake Storage-map gebruikt en wordt de toegewezen SQL-pool voor elk van deze bestanden bijgewerkt.
  • Wijzig de Event Grid App Service-code. Program it to add a micro-batch of around 100 changes to the blob storage before it adds the new topic to the event with the metadata that includes the bestandsnaam. Met deze wijziging activeert u slechts één pijplijn voor één blob met de 100 wijzigingen. U kunt de grootte van de microbatch aanpassen aan uw scenario. Gebruik kleine microbatches met een hoge frequentie om updates te bieden die bijna in realtime zijn. Of gebruik grotere microbatches met een lagere frequentie voor vertraagde updates en verminderde overhead.

Zie Copy-activiteit handleiding voor prestaties en schaalbaarheid voor het kopiëren van azure Synapse Analytics-pijplijnen voor meer informatie over het verbeteren van de prestaties en schaalbaarheid.

Dit scenario implementeren

Zie Real-Time Sync Solution for MongoDB Atlas Integration with Synapse (Realtime synchronisatieoplossing voor MongoDB Atlas Integration met Synapse) voor meer informatie over het implementeren van deze oplossing.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Belangrijkste auteurs:

Andere Inzenders:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen

Neem voor meer informatie over de oplossing contact op partners@mongodb.com.

Zie deze resources voor meer informatie over MongoDB:

Zie deze resources voor informatie over azure-oplossingsonderdelen: