Analýza provozních dat v MongoDB Atlas pomocí Azure Synapse Analytics

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

Tento článek představuje řešení pro odvození přehledů z provozních dat MongoDB Atlas. Řešení připojí MongoDB Atlas k Azure Synapse Analytics. Připojení umožňuje přenášet data v dávkách a v reálném čase. Přístup v reálném čase udržuje vyhrazené fondy SQL služby Azure Synapse Analytics synchronizované se změnami ve zdroji dat MongoDB Atlas.

Apache®, Apache Spark a logo plamene jsou registrované ochranné známky nebo ochranné známky nadace Apache Software Foundation v USA a/nebo v jiných zemích. Použití těchto značek nevyžaduje žádné doporučení Apache Software Foundation.

Logo MongoDB Atlas je ochranná známka MongoDB. Použití této značky nevyžaduje žádné doporučení.

Architektura

Následující diagram ukazuje, jak synchronizovat data MongoDB Atlas s Azure Synapse Analytics v reálném čase.

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

Stáhněte si powerpointový soubor všech diagramů v tomto článku.

Tok dat

Řešení nabízí dvě možnosti pro aktivaci kanálů, které zaznamenávají změny v reálném čase v úložišti provozních dat MongoDB Atlas (ODS) a synchronizují data. Následující kroky popisují obě možnosti.

  1. Změny probíhají v provozních a transakčních datech uložených v MongoDB Atlas. Rozhraní API streamu změn Mongo Atlas upozorňují odebírané aplikace na změny v reálném čase.

  2. Vlastní webová aplikace služby Aplikace Azure se přihlásí k odběru streamu změn MongoDB. Pro každou verzi řešení existují dvě verze webové aplikace, Event Gridu a úložiště. Obě verze aplikace naslouchají změnám způsobeným operací vložení, aktualizace nebo odstranění v atlasu. Když aplikace zjistí změnu, zapíšou změněný dokument jako objekt blob do Azure Data Lake Storage, který je integrovaný se službou Azure Synapse Analytics. Verze event Gridu aplikace také vytvoří novou událost v Azure Event Gridu, když zjistí změnu v Atlasu.

  3. Obě verze řešení aktivují kanál Azure Synapse Analytics:

    1. Ve verzi Event Gridu se ve službě Azure Synapse Analytics nakonfiguruje vlastní trigger založený na událostech. Tato aktivační událost se přihlásí k odběru tématu Event Gridu, do kterého webová aplikace publikuje. Nová událost v tomto tématu aktivuje trigger Azure Synapse Analytics, který způsobí spuštění datového kanálu Azure Synapse Analytics.
    2. Ve verzi úložiště je trigger založený na úložišti nakonfigurovaný ve službě Azure Synapse Analytics. Když se nový objekt blob zjistí v integrované složce Data Lake Storage, aktivuje se tento trigger, což způsobí spuštění datového kanálu Azure Synapse Analytics.
  4. V aktivitě kopírování kanál Azure Synapse Analytics zkopíruje celý změněný dokument z objektu blob Data Lake Storage do vyhrazeného fondu SQL. Tato operace je nakonfigurovaná tak, aby u vybraného sloupce udělala upsert . Pokud sloupec existuje ve vyhrazeném fondu SQL, upsert sloupec aktualizuje. Pokud sloupec neexistuje, upsert vloží sloupec.

  5. Vyhrazený fond SQL je funkce podnikového datového skladu, která je hostitelem tabulky, kterou datový kanál aktualizuje. Aktivita kopírování dat kanálu udržuje danou tabulku synchronizovanou s odpovídající kolekcí Atlas.

  6. Sestavy a vizualizace Power BI zobrazují aktuální a téměř analýzu v reálném čase. Data se také předá do podřízených aplikací. MongoDB Atlas funguje jako jímka pomocí konektoru jímky datového kanálu Azure Synapse Analytics. Atlas pak poskytuje vlastní aplikace s daty v reálném čase.

Komponenty

  • MongoDB Atlas je nabídka databáze jako služby od MongoDB. Tato multicloudová aplikační datová platforma nabízí transakční zpracování, vyhledávání založené na relevance, analýzu v reálném čase a synchronizaci dat z mobilních zařízení do cloudu. MongoDB také nabízí místní řešení MongoDB Enterprise Advanced.

  • Streamy změn v MongoDB Atlas poskytují aplikacím přístup ke změnám dat v reálném čase, aby aplikace mohly na tyto změny okamžitě reagovat. Streamy změn poskytují aplikacím způsob, jak přijímat oznámení o změnách konkrétní kolekce, databáze nebo celého clusteru nasazení.

  • Funkce App Service a jejích funkcí Web Apps, Mobile Apps a API Apps poskytují architekturu pro vytváření, nasazování a škálování webových aplikací, mobilních aplikací a rozhraní REST API. Toto řešení používá webové aplikace, které jsou naprogramované v ASP.NET. Kód je k dispozici na GitHubu:

  • Azure Synapse Analytics je základní služba, kterou toto řešení používá k příjmu, zpracování a analýze dat.

  • Data Lake Storage poskytuje možnosti pro ukládání a zpracování dat. Data Lake, které je postavené na službě Blob Storage, poskytuje škálovatelné řešení pro správu velkých objemů dat z více heterogenních zdrojů.

  • Kanály Azure Synapse Analytics slouží k provádění operací extrakce, transformace a načítání (ETL) s daty. Azure Data Factory poskytuje podobnou službu, ale kanály Azure Synapse Analytics můžete vytvářet v nástroji Synapse Studio. V rámci stejného kanálu můžete použít více aktivit. Můžete také vytvořit koncové body závislostí pro propojení jedné aktivity s jinou aktivitou v kanálu.

  • Mapování toků dat jsou vizuálně navržené transformace dat ve službě Azure Synapse Analytics. Toky dat poskytují datovým inženýrům způsob, jak vyvíjet logiku transformace dat bez psaní kódu. Výsledné toky dat můžete spustit jako aktivity v kanálech Azure Synapse Analytics, které používají clustery Apache Spark se škálováním na více systémů. Aktivity toku dat můžete nasadit do provozu pomocí stávajících možností plánování, řízení, toku a monitorování služby Azure Synapse Analytics.

  • Vyhrazený fond SQL poskytuje možnosti datových skladů pro data po zpracování a normalizaci dat. Tato funkce služby Azure Synapse Analytics se dříve označovala jako SQL Data Warehouse. Vyhrazené fondy SQL zpřístupňuje upřesňující data koncovým uživatelům a aplikacím.

  • Triggery Azure Synapse Analytics poskytují automatizovaný způsob spouštění kanálů. Tyto triggery můžete naplánovat. Můžete také nastavit triggery založené na událostech, jako jsou triggery událostí úložiště a vlastní triggery událostí. Řešení používá oba typy triggerů založených na událostech.

  • Event Grid je vysoce škálovatelný bezserverový zprostředkovatel událostí. Event Grid můžete použít k doručování událostí do cílů odběratele.

  • Power BI je kolekce softwarových služeb a aplikací, které zobrazují analytické informace. V tomto řešení poskytuje Power BI způsob, jak pomocí zpracovaných dat provádět pokročilou analýzu a odvozovat přehledy.

Podrobnosti scénáře

MongoDB Atlas slouží jako provozní datová vrstva mnoha podnikových aplikací. Tato cloudová databáze ukládá data z interních aplikací, služeb orientovaných na zákazníky a rozhraní API třetích stran z více kanálů. Pomocí kanálů Azure Synapse Analytics můžete kombinovat data MongoDB Atlas s relačními daty z jiných tradičních aplikací a nestrukturovaných dat ze zdrojů, jako jsou protokoly.

Dávková integrace

Ve službě Azure Synapse Analytics můžete bezproblémově integrovat místní instance MongoDB a MongoDB Atlas jako zdroj nebo prostředek jímky. MongoDB je jediná databáze NoSQL, která obsahuje konektory zdroje a jímky pro Azure Synapse Analytics a Data Factory.

Díky historickým datům můžete načíst všechna data najednou. Data můžete také načítat přírůstkově pro konkrétní období pomocí filtru v dávkovém režimu. Pak můžete pomocí fondů SQL a fondů Apache Sparku ve službě Azure Synapse Analytics transformovat a analyzovat data. Pokud potřebujete uložit výsledky analýzy nebo dotazu do analytického úložiště dat, můžete použít prostředek jímky ve službě 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.

Další informace o nastavení a konfiguraci konektorů najdete v těchto zdrojích informací:

Zdrojový konektor nabízí pohodlný způsob, jak spustit Azure Synapse Analytics nad provozními daty uloženými v MongoDB nebo Atlasu. Po načtení dat ze zdrojového konektoru z Atlasu můžete data načíst do úložiště objektů blob Data Lake Storage jako soubor Parquet, Avro, JSON, text nebo CSV. Tyto soubory pak můžete transformovat nebo je spojit s jinými soubory z jiných zdrojů dat ve více databázích, multicloudových nebo hybridních cloudových prostředích.

Data, která načítáte z MongoDB Enterprise Advanced nebo MongoDB Atlas, můžete použít v následujících scénářích:

  • Načtení všech dat z konkrétního data z MongoDB v dávce Pak načtete data do Data Lake Storage. Odtud použijete k analýze bezserverový fond SQL nebo fond Sparku nebo data zkopírujete do vyhrazeného fondu SQL. Po načtení této dávky můžete změny použít u dat, jak se vyskytují, jak je popsáno v toku dat. Jako součást tohoto řešení je k dispozici ukázkový kanál CopyPipeline_mdb_synapse_ded_pool_RTS úložiště. Kanál můžete exportovat z GitHubu pro tento jednorázový účel načítání.

  • Pokud chcete získat přehledy v určité frekvenci, například pro denní nebo hodinovou sestavu. V tomto scénáři naplánujete kanál, který bude pravidelně načítat data, než spustíte analytické kanály. Pomocí dotazu MongoDB můžete použít kritéria filtru a načíst pouze určitou podmnožinu dat.

Synchronizace v reálném čase

Podniky potřebují přehledy založené na datech v reálném čase, ne na zastaralých datech. Zpoždění několika hodin v doručení přehledu může udržet rozhodovací proces a vést ke ztrátě konkurenční výhody. Toto řešení podporuje důležité rozhodování šířením změn v transakční databázi MongoDB do vyhrazeného fondu SQL v reálném čase.

Toto řešení má tři části, které popisují následující části.

Zachycení změn MongoDB Atlas

Stream změn MongoDB zachycuje změny, ke kterým dochází v databázi. Rozhraní API streamu změn zpřístupňují informace o změnách dostupných webovým aplikacím služby App Service, které se přihlásí k odběru streamu změn. Tyto aplikace zapisují změny do úložiště objektů blob Data Lake Storage.

Aktivace kanálu pro šíření změn do Azure Synapse Analytics

Řešení představuje dvě možnosti aktivace kanálu Azure Synapse Analytics po zápisu objektu blob do Data Lake Storage:

  • Trigger založený na úložišti. Tuto možnost použijte, pokud potřebujete analýzu v reálném čase, protože kanál se aktivuje hned po zápisu objektu blob se změnou. Tato možnost ale nemusí být upřednostňovaným přístupem, pokud máte velký objem změn dat. Azure Synapse Analytics omezuje počet kanálů, které se dají spustit souběžně. Pokud máte velký počet změn dat, může dojít k dosažení tohoto limitu.

  • Vlastní trigger založený na událostech. Tento typ triggeru má výhodu, že je mimo Azure Synapse Analytics, takže je jednodušší řídit. Verze Služby Event Grid webové aplikace zapisuje změněný datový dokument do úložiště objektů blob. Současně aplikace vytvoří novou událost Event Gridu. Data v události obsahují název souboru objektu blob. Kanál, který událost aktivuje, obdrží název souboru jako parametr a pak tento soubor použije k aktualizaci vyhrazeného fondu SQL.

Rozšíření změn do vyhrazeného fondu SQL

Kanál Azure Synapse Analytics rozšíří změny do vyhrazeného fondu SQL. Řešení poskytuje kanál CopyPipeline_mdb_synapse_ded_pool_RTS na GitHubu, který kopíruje změnu v objektu blob ze služby Data Lake Storage do vyhrazeného fondu SQL. Tento kanál se aktivuje buď triggerem úložiště, nebo event Gridu.

Potenciální případy použití

Případy použití tohoto řešení zahrnují mnoho odvětví a oblastí:

  • Retail

    • Sestavování inteligentních informací do sdružování produktů a propagace produktů
    • Optimalizace studeného úložiště využívajícího streamování IoT
    • Optimalizace doplňování zásob
    • Přidání hodnoty do distribuce omnichannel
  • Bankovní a finanční sektor

    • Přizpůsobení zákaznických finančních služeb
    • Zjišťování potenciálně podvodných transakcí
  • Telekomunikace

    • Optimalizace sítí nové generace
    • Maximalizace hodnoty hraničních sítí
  • Automobilový průmysl

    • Optimalizace parametrizace připojených vozidel
    • Detekce anomálií v komunikaci IoT v připojených vozidlech
  • Výroba

    • Zajištění prediktivní údržby strojů
    • Optimalizace správy úložiště a inventáře

Tady jsou dva konkrétní příklady:

  • Jak tento článek popisuje dříve v integraci služby Batch, můžete načíst data MongoDB v dávce a pak aktualizovat data, jak dojde ke změnám. Tato funkce umožňuje přehledy v reálném čase pro rozhodování a závěry za běhu. Tato funkce je užitečná pro analýzu citlivých a důležitých informací, jako jsou finanční transakce a údaje o odhalování podvodů.
  • Jak popisuje integrace služby Batch, můžete naplánovat kanál, který bude pravidelně načítat data MongoDB. Tato funkce je užitečná ve scénářích maloobchodního prodeje, jako je aktualizace úrovní zásob s daty o denním prodeji. V takových případech analytické sestavy a řídicí panely nemají zásadní význam a analýza v reálném čase nestojí za to.

V následujících částech se podrobněji podíváme na dva případy použití maloobchodního odvětví.

Sdružování produktů

Chcete-li propagovat prodej produktu, můžete produkt prodávat jako součást sady společně s dalšími souvisejícími produkty. Cílem je použít data prodejního vzoru k vývoji strategií pro sdružování produktů do balíčků.

Existují dva zdroje dat:

  • Data katalogu produktů z MongoDB
  • Prodejní data z Azure SQL

Obě sady dat se migrují do vyhrazeného fondu SQL služby Azure Synapse Analytics pomocí kanálu Azure Synapse Analytics. Triggery a zachytávání dat změn se používají k dosažení synchronizace dat téměř v reálném čase nad jednorázovými migrovanými daty.

Následující grafy Power BI znázorňují spřažení mezi produkty a vzory prodeje. Spřažení pera a ručního doplňování je vysoké. Data o prodeji ukazují, že pero má v zadané oblasti vysoký objem prodeje.

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.

Analýza obsahuje dva návrhy pro zajištění lepšího prodeje:

  • Spojování pera a doplňování na bázi rukopisu
  • Podpora svazku v určitých oblastech

Propagace produktu

Chcete-li propagovat prodej produktu, můžete produkt doporučit zákazníkům, kteří mají zájem o související produkty. Cílem je použít prodejní data a data nákupního modelu zákazníků k vývoji strategií pro doporučování produktu zákazníkům.

Pomocí Azure Synapse Analytics můžete vyvíjet modely umělé inteligence a strojového učení, abyste zjistili, které produkty doporučujeme zákazníkům.

Následující diagramy znázorňují použití různých typů dat k vytvoření modelu pro určení alternativních doporučení produktů. Data zahrnují vzorce nákupu zákazníků, zisky, spřažení produktů, objem prodeje produktů a parametry katalogu produktů.

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

Pokud váš model dosahuje vysoké přesnosti, poskytuje seznam produktů, které můžete zákazníkům doporučit.

Důležité informace

Tyto aspekty implementují pilíře dobře architektuře Azure, což je sada hlavních principů, které je možné použít ke zlepšení kvality úlohy. Další informace naleznete v tématu Microsoft Azure Well-Architected Framework.

Zabezpečení

Zabezpečení poskytuje záruky proti záměrným útokům a zneužití cenných dat a systémů. Další informace najdete v tématu Přehled pilíře zabezpečení.

Podrobné informace o požadavcích na zabezpečení a kontrolních prvcích komponent Azure v řešení najdete v části zabezpečení dokumentace jednotlivých produktů.

Optimalizace nákladů

Optimalizace nákladů se zabývá způsoby, jak snížit zbytečné výdaje a zlepšit efektivitu provozu. Další informace najdete v tématu Přehled pilíře optimalizace nákladů.

  • Pokud chcete odhadnout náklady na produkty a konfigurace Azure, použijte cenovou kalkulačku Azure.
  • Azure pomáhá vyhnout se zbytečným nákladům tím, že identifikuje správný počet prostředků pro vaše potřeby, díky analýze výdajů v průběhu času a škálováním tak, aby vyhovovalo obchodním potřebám bez nadměrného využití. Vyhrazené fondy SQL můžete například pozastavit, když neočekáváte žádné zatížení. Můžete je později obnovit.
  • Službu App Service můžete nahradit službou Azure Functions. Orchestrací funkcí v rámci kanálu Azure Synapse Analytics můžete snížit náklady.
  • Pokud chcete snížit náklady na cluster Spark, zvolte správný výpočetní typ toku dat. K dispozici jsou obecné možnosti a možnosti optimalizované pro paměť. Zvolte také odpovídající počet jader a hodnoty TTL (Time to Live).
  • Další informace o správě nákladů na klíčové komponenty řešení najdete v těchto zdrojích informací:

Efektivita výkonu

Efektivita výkonu je schopnost vaší úlohy škálovat tak, aby splňovala požadavky, které na ni uživatelé umísťují efektivně. Další informace najdete v tématu Přehled pilíře efektivity výkonu.

Pokud dojde k velkému objemu změn, spuštění tisíců kanálů ve službě Azure Synapse Analytics pro každou změnu v kolekci může vést k backlogu kanálů ve frontě. Pokud chcete zvýšit výkon v tomto scénáři, zvažte následující přístupy:

  • Použijte kód služby App Service založený na úložišti, který zapisuje dokumenty JSON se změnami ve službě Data Lake Storage. Nespojujte trigger založený na úložišti s kanálem. Místo toho použijte naplánovanou aktivační událost v krátkém intervalu, například každých dva nebo pět minut. Když se naplánovaná aktivační událost spustí, vezme všechny soubory v zadaném adresáři Data Lake Storage a aktualizuje vyhrazený fond SQL pro každý z nich.
  • Upravte kód služby App Service služby Event Grid. Naprogramujte ho tak, aby se do úložiště objektů blob přidalo mikrodávkové množství přibližně 100 změn, než do události přidá nové téma s metadaty, která obsahují název souboru. Při této úpravě aktivujete pouze jeden kanál pro jeden objekt blob s 100 změnami. Velikost mikrodávkové dávky můžete upravit tak, aby vyhovovala vašemu scénáři. Pomocí malých mikrodávek s vysokou frekvencí můžete poskytovat aktualizace, které jsou blízko reálnému čase. Nebo používejte větší mikrodávkové dávky s nižší frekvencí pro zpožděné aktualizace a snížené režijní náklady.

Další informace o zlepšení výkonu a škálovatelnosti aktivity kopírování kanálu Azure Synapse Analytics najdete v aktivita Copy průvodci výkonem a škálovatelností.

Nasazení tohoto scénáře

Informace o implementaci tohoto řešení najdete v tématu Řešení synchronizace v reálném čase pro integraci MongoDB Atlas se službou Synapse.

Přispěvatelé

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autoři:

Další přispěvatelé:

Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.

Další kroky

Další informace o řešení získáte na adrese partners@mongodb.com.

Informace o MongoDB najdete v těchto zdrojích informací:

Informace o součástech řešení Azure najdete v těchto zdrojích informací: