Analizowanie danych operacyjnych w usłudze MongoDB Atlas przy użyciu usługi Azure Synapse Analytics

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

W tym artykule przedstawiono rozwiązanie do uzyskiwania szczegółowych informacji z danych operacyjnych usługi MongoDB Atlas. Rozwiązanie łączy usługę MongoDB Atlas z usługą Azure Synapse Analytics. Połączenie umożliwia transfer danych w partiach i w czasie rzeczywistym. Podejście w czasie rzeczywistym zapewnia synchronizację dedykowanych pul SQL usługi Azure Synapse Analytics ze zmianami w źródle danych Usługi MongoDB Atlas.

Apache®, Apache Spark i logo płomienia są zastrzeżonymi znakami towarowymi lub znakami towarowymi fundacji Apache Software Foundation w Stany Zjednoczone i/lub innych krajach. Użycie tych znaków nie jest dorozumiane przez fundację Apache Software Foundation.

Logo usługi MongoDB Atlas jest znakiem towarowym bazy danych MongoDB. Użycie tego znaku oznacza nie jest dorozumiane.

Architektura

Na poniższym diagramie przedstawiono sposób synchronizowania danych usługi MongoDB Atlas z usługą Azure Synapse Analytics w czasie rzeczywistym.

Diagram architektury przedstawiający przepływ danych z usługi MongoDB Atlas do aplikacji analitycznych. Etapy pośrednie obejmują interfejs API strumienia zmian i usługę Azure Synapse Analytics.

Pobierz plik programu PowerPoint ze wszystkich diagramów w tym artykule.

Przepływ danych

Rozwiązanie przedstawia dwie opcje wyzwalania potoków, które przechwytują zmiany w czasie rzeczywistym w operacyjnym magazynie danych Usługi MongoDB Atlas (ODS) i synchronizują dane. W poniższych krokach opisano obie opcje.

  1. Zmiany występują w danych operacyjnych i transakcyjnych przechowywanych w usłudze MongoDB Atlas. Interfejsy API strumienia zmian usługi Mongo Atlas powiadamiają subskrybowane aplikacje o zmianach w czasie rzeczywistym.

  2. Niestandardowa aplikacja internetowa usługi aplikacja systemu Azure subskrybuje strumień zmian bazy danych MongoDB. Istnieją dwie wersje aplikacji internetowej, usługi Event Grid i magazynu, po jednym dla każdej wersji rozwiązania. Obie wersje aplikacji nasłuchują zmian, które są spowodowane operacją wstawiania, aktualizowania lub usuwania w usłudze Atlas. Gdy aplikacje wykryją zmianę, zapisują zmieniony dokument jako obiekt blob w usłudze Azure Data Lake Storage, który jest zintegrowany z usługą Azure Synapse Analytics. Wersja usługi Event Grid aplikacji tworzy również nowe zdarzenie w usłudze Azure Event Grid, gdy wykryje zmianę w usłudze Atlas.

  3. Obie wersje rozwiązania wyzwalają potok usługi Azure Synapse Analytics:

    1. W wersji usługi Event Grid niestandardowy wyzwalacz oparty na zdarzeniach jest skonfigurowany w usłudze Azure Synapse Analytics. Ten wyzwalacz subskrybuje temat usługi Event Grid publikowany przez aplikację internetową. Nowe zdarzenie w tym temacie aktywuje wyzwalacz usługi Azure Synapse Analytics, co powoduje uruchomienie potoku danych usługi Azure Synapse Analytics.
    2. W wersji magazynu wyzwalacz oparty na magazynie jest konfigurowany w usłudze Azure Synapse Analytics. Po wykryciu nowego obiektu blob w zintegrowanym folderze usługi Data Lake Storage wyzwalacz jest aktywowany, co powoduje uruchomienie potoku danych usługi Azure Synapse Analytics.
  4. W działaniu kopiowania potok usługi Azure Synapse Analytics kopiuje pełny zmieniony dokument z obiektu blob usługi Data Lake Storage do dedykowanej puli SQL. Ta operacja jest skonfigurowana do wykonywania operacji upsert w wybranej kolumnie. Jeśli kolumna istnieje w dedykowanej puli SQL, upsert aktualizuje kolumnę. Jeśli kolumna nie istnieje, operacja upsert wstawia kolumnę.

  5. Dedykowana pula SQL to funkcja magazynowania danych przedsiębiorstwa, która hostuje tabelę aktualizowaną przez potok danych. Działanie kopiowania danych potoku przechowuje tabelę zsynchronizowaną z odpowiednią kolekcją atlasu.

  6. Raporty i wizualizacje usługi Power BI wyświetlają bieżące i niemal w czasie rzeczywistym analizy. Dane są również wprowadzane do aplikacji podrzędnych. Usługa MongoDB Atlas działa jako ujście przy użyciu łącznika ujścia potoku danych usługi Azure Synapse Analytics. Usługa Atlas udostępnia następnie aplikacje niestandardowe z danymi w czasie rzeczywistym.

Składniki

  • MongoDB Atlas to oferta typu baza danych jako usługa z bazy danych MongoDB. Ta wielochmurowa platforma danych aplikacji oferuje przetwarzanie transakcyjne, wyszukiwanie oparte na istotności, analizę w czasie rzeczywistym i synchronizację danych z urządzeniami przenośnymi do chmury. Baza danych MongoDB oferuje również rozwiązanie lokalne MongoDB Enterprise Advanced.

  • Strumienie zmian w usłudze MongoDB Atlas zapewniają aplikacjom dostęp do zmian danych w czasie rzeczywistym, dzięki czemu aplikacje mogą natychmiast reagować na te zmiany. Strumienie zmian umożliwiają aplikacjom odbieranie powiadomień o zmianach w określonej kolekcji, bazie danych lub całym klastrze wdrażania.

  • Usługa App Service i jej funkcje Web Apps, Mobile Apps i API Apps udostępniają platformę do tworzenia, wdrażania i skalowania aplikacji internetowych, aplikacji mobilnych i interfejsów API REST. To rozwiązanie korzysta z aplikacji internetowych, które są programowane w ASP.NET. Kod jest dostępny w witrynie GitHub:

  • Azure Synapse Analytics to podstawowa usługa używana przez to rozwiązanie do pozyskiwania, przetwarzania i analizy danych.

  • Usługa Data Lake Storage zapewnia możliwości przechowywania i przetwarzania danych. Jako usługa Data Lake, która jest oparta na usłudze Blob Storage, usługa Data Lake Storage udostępnia skalowalne rozwiązanie do zarządzania dużymi ilościami danych z wielu heterogenicznych źródeł.

  • Potoki usługi Azure Synapse Analytics służą do wykonywania operacji wyodrębniania, przekształcania i ładowania (ETL) na danych. Usługa Azure Data Factory oferuje podobną usługę, ale w programie Synapse Studio można tworzyć potoki usługi Azure Synapse Analytics. W tym samym potoku można użyć wielu działań. Możesz również utworzyć punkty końcowe zależności, aby połączyć jedno działanie z innym działaniem w potoku.

  • Przepływy danych mapowania są wizualnie projektowane przekształcenia danych w usłudze Azure Synapse Analytics. Przepływy danych umożliwiają inżynierom danych opracowywanie logiki przekształcania danych bez pisania kodu. Wynikowe przepływy danych można uruchamiać jako działania w potokach usługi Azure Synapse Analytics, które używają skalowanych w poziomie klastrów platformy Apache Spark. Działania przepływu danych można umieścić w działaniu przy użyciu istniejących funkcji planowania, sterowania, przepływu i monitorowania usługi Azure Synapse Analytics.

  • Dedykowana pula SQL zapewnia możliwości magazynowania danych dla danych po przetworzeniu i znormalizowaniu danych. Ta funkcja usługi Azure Synapse Analytics była wcześniej znana jako SQL Data Warehouse. Dedykowane pule SQL udostępniają uściślione dane użytkownikom końcowym i aplikacjom.

  • Wyzwalacze usługi Azure Synapse Analytics zapewniają zautomatyzowany sposób uruchamiania potoków. Te wyzwalacze można zaplanować. Można również skonfigurować wyzwalacze oparte na zdarzeniach, takie jak wyzwalacze zdarzeń magazynu i niestandardowe wyzwalacze zdarzeń. Rozwiązanie używa obu typów wyzwalaczy opartych na zdarzeniach.

  • Event Grid to wysoce skalowalny, bezserwerowy broker zdarzeń. Za pomocą usługi Event Grid można dostarczać zdarzenia do miejsc docelowych subskrybentów.

  • Power BI to kolekcja usług i aplikacji oprogramowania, które wyświetlają informacje analityczne. W tym rozwiązaniu usługa Power BI umożliwia korzystanie z przetworzonych danych w celu przeprowadzania zaawansowanej analizy i uzyskiwania szczegółowych informacji.

Szczegóły scenariusza

Usługa MongoDB Atlas służy jako warstwa danych operacyjnych wielu aplikacji dla przedsiębiorstw. Ta baza danych w chmurze przechowuje dane z aplikacji wewnętrznych, usług dostępnych dla klientów i interfejsów API innych firm z wielu kanałów. Korzystając z potoków usługi Azure Synapse Analytics, można połączyć dane usługi MongoDB Atlas z danymi relacyjnymi z innych tradycyjnych aplikacji i danych bez struktury ze źródeł, takich jak dzienniki.

Integracja partii

W usłudze Azure Synapse Analytics można bezproblemowo zintegrować wystąpienia lokalne bazy danych MongoDB i Usługę MongoDB Atlas jako zasób źródłowy lub ujścia. MongoDB to jedyna baza danych NoSQL, która zawiera łączniki źródła i ujścia dla usług Azure Synapse Analytics i Data Factory.

Za pomocą danych historycznych można pobrać wszystkie dane jednocześnie. Dane można również pobierać przyrostowo dla określonych okresów przy użyciu filtru w trybie wsadowym. Następnie możesz użyć pul SQL i pul platformy Apache Spark w usłudze Azure Synapse Analytics do przekształcania i analizowania danych. Jeśli musisz przechowywać wyniki analizy lub zapytań w magazynie danych analitycznych, możesz użyć zasobu ujścia w usłudze Azure Synapse Analytics.

Diagram architektury przedstawiający łączniki źródła i ujścia łączące dane od użytkowników z usługą Azure Synapse Analytics i magazynem danych MongoDB.

Aby uzyskać więcej informacji na temat konfigurowania i konfigurowania łączników, zobacz następujące zasoby:

Łącznik źródłowy zapewnia wygodny sposób uruchamiania usługi Azure Synapse Analytics na podstawie danych operacyjnych przechowywanych w bazie danych MongoDB lub Atlas. Po użyciu łącznika źródłowego do pobierania danych z usługi Atlas można załadować dane do magazynu obiektów blob usługi Data Lake Storage jako plik Parquet, Avro, JSON, tekst lub CSV. Następnie można przekształcić te pliki lub dołączyć je do innych plików z innych źródeł danych w środowiskach wielochmurowych, wielochmurowych lub hybrydowych.

Możesz użyć danych pobieranych z bazy danych MongoDB Enterprise Advanced lub MongoDB Atlas w następujących scenariuszach:

  • Aby pobrać wszystkie dane z określonej daty z bazy danych MongoDB w partii. Następnie załadujesz dane do usługi Data Lake Storage. Z tego miejsca do analizy użyjesz bezserwerowej puli SQL lub puli Spark albo skopiujesz dane do dedykowanej puli SQL. Po pobraniu tej partii można zastosować zmiany do danych w miarę ich występowania, zgodnie z opisem w temacie Przepływ danych. Przykładowy potok storage-CopyPipeline_mdb_synapse_ded_pool_RTS jest dostępny w ramach tego rozwiązania. Potok można wyeksportować z usługi GitHub na potrzeby jednorazowego ładowania.

  • Aby wygenerować szczegółowe informacje z określoną częstotliwością, na przykład dla raportu dziennego lub godzinowego. W tym scenariuszu należy zaplanować potok w celu regularnego pobierania danych przed uruchomieniem potoków analizy. Możesz użyć zapytania MongoDB, aby zastosować kryteria filtrowania i pobrać tylko określony podzestaw danych.

Synchronizacja w czasie rzeczywistym

Przedsiębiorstwa potrzebują szczegółowych informacji opartych na danych w czasie rzeczywistym, a nie nieaktualnych danych. Opóźnienie kilku godzin dostarczania szczegółowych informacji może powstrzymać proces podejmowania decyzji i spowodować utratę przewagi konkurencyjnej. To rozwiązanie napędza krytyczne podejmowanie decyzji przez propagowanie zmian występujących w transakcyjnej bazie danych MongoDB do dedykowanej puli SQL w czasie rzeczywistym.

To rozwiązanie zawiera trzy części, które opisano w poniższych sekcjach.

Przechwytywanie zmian w usłudze MongoDB Atlas

Strumień zmian bazy danych MongoDB przechwytuje zmiany, które występują w bazie danych. Interfejsy API strumienia zmian udostępniają informacje o zmianach w aplikacjach internetowych usługi App Service, które subskrybują strumień zmian. Te aplikacje zapisują zmiany w magazynie obiektów blob usługi Data Lake Storage.

Wyzwalanie potoku w celu propagowania zmian w usłudze Azure Synapse Analytics

Rozwiązanie przedstawia dwie opcje wyzwalania potoku usługi Azure Synapse Analytics po zapisaniu obiektu blob w usłudze Data Lake Storage:

  • Wyzwalacz oparty na magazynie. Użyj tej opcji, jeśli potrzebujesz analizy w czasie rzeczywistym, ponieważ potok zostanie wyzwolony natychmiast po zapisaniu obiektu blob ze zmianą. Jednak ta opcja może nie być preferowaną metodą w przypadku dużej ilości zmian danych. Usługa Azure Synapse Analytics ogranicza liczbę potoków, które mogą być uruchamiane współbieżnie. Jeśli masz dużą liczbę zmian danych, możesz osiągnąć ten limit.

  • Wyzwalacz niestandardowy oparty na zdarzeniach. Ten typ wyzwalacza ma przewagę nad tym, że znajduje się poza usługą Azure Synapse Analytics, dzięki czemu łatwiej jest kontrolować. Wersja usługi Event Grid aplikacji internetowej zapisuje zmieniony dokument danych w magazynie obiektów blob. Jednocześnie aplikacja tworzy nowe zdarzenie usługi Event Grid. Dane w zdarzeniu zawierają nazwę pliku obiektu blob. Potok wyzwalający zdarzenie odbiera nazwę pliku jako parametr, a następnie używa pliku do zaktualizowania dedykowanej puli SQL.

Propagacja zmian w dedykowanej puli SQL

Potok usługi Azure Synapse Analytics propaguje zmiany w dedykowanej puli SQL. Rozwiązanie udostępnia potok CopyPipeline_mdb_synapse_ded_pool_RTS w usłudze GitHub, który kopiuje zmiany w obiekcie blob z usługi Data Lake Storage do dedykowanej puli SQL. Ten potok jest wyzwalany przez wyzwalacz magazynu lub usługi Event Grid.

Potencjalne przypadki użycia

Przypadki użycia tego rozwiązania obejmują wiele branż i obszarów:

  • Retail

    • Budowanie inteligencji w pakietach produktów i podwyższanie poziomu produktu
    • Optymalizowanie magazynu zimnego korzystającego z przesyłania strumieniowego IoT
    • Optymalizowanie uzupełniania zapasów
    • Dodawanie wartości do dystrybucji wielokanałowej
  • Bankowość i finanse

    • Dostosowywanie usług finansowych klientów
    • Wykrywanie potencjalnie fałszywych transakcji
  • Telekomunikacja

    • Optymalizowanie sieci nowej generacji
    • Maksymalizowanie wartości sieci brzegowych
  • Motoryzacja

    • Optymalizowanie parametryzacji połączonych pojazdów
    • Wykrywanie anomalii w komunikacji IoT w połączonych pojazdach
  • Manufacturing

    • Zapewnianie konserwacji predykcyjnej maszyn
    • Optymalizowanie zarządzania magazynem i spisem

Oto dwa konkretne przykłady:

  • W tym artykule opisano wcześniej integrację z usługą Batch, możesz pobrać dane bazy danych MongoDB w partii, a następnie zaktualizować dane w miarę występowania zmian. Ta funkcja umożliwia uzyskiwanie szczegółowych informacji w czasie rzeczywistym w przypadku podejmowania i wniosków dotyczących podejmowania decyzji just in time. Ta funkcja jest przydatna do analizy poufnych i krytycznych informacji, takich jak transakcje finansowe i dane wykrywania oszustw.
  • Jak opisano również integrację usługi Batch, można zaplanować potok w celu regularnego pobierania danych bazy danych MongoDB. Ta funkcja jest przydatna w scenariuszach detalicznych, takich jak aktualizowanie poziomów zapasów przy użyciu codziennych danych sprzedaży. W takich przypadkach raporty analityczne i pulpity nawigacyjne nie mają krytycznego znaczenia, a analiza w czasie rzeczywistym nie jest warta wysiłku.

W poniższych sekcjach przyjrzymy się bliżej dwóm przypadkom użycia branży detalicznej.

Tworzenie pakietów produktów

Aby promować sprzedaż produktu, możesz sprzedawać produkt w ramach pakietu wraz z innymi powiązanymi produktami. Celem jest użycie danych wzorca sprzedaży w celu opracowania strategii tworzenia pakietów produktów w pakietach.

Istnieją dwa źródła danych:

  • Dane wykazu produktów z bazy danych MongoDB
  • Dane sprzedaży z usługi Azure SQL

Oba zestawy danych są migrowane do dedykowanej puli SQL usługi Azure Synapse Analytics przy użyciu potoku usługi Azure Synapse Analytics. Wyzwalacze i przechwytywanie zmian danych są używane do przeprowadzania synchronizacji danych niemal w czasie rzeczywistym na podstawie jednorazowych zmigrowanych danych.

Poniższe wykresy usługi Power BI pokazują koligację między produktami i wzorcami sprzedaży. Koligacja pióra i wypełniania na podstawie pisma odwrotowego jest wysoka. Dane sprzedaży pokazują, że pióro ma dużą wielkość sprzedaży w określonym obszarze.

Diagram przedstawiający etapy potoku i wykresy pokazujące sprzedaż piór według produktu, roku, regionu i koligacji. Sprzedaż piór jest najwyższa w 2022 r. na południu.

Analiza przedstawia dwie sugestie dotyczące uzyskania lepszej sprzedaży:

  • Łączenie długopisu i tuszu do ponownego wypełniania
  • Promowanie pakietu w niektórych obszarach

Promocja produktu

Aby promować sprzedaż produktu, możesz polecić produkt klientom, którzy są zainteresowani powiązanymi produktami. Celem jest użycie danych sprzedaży i danych wzorca zakupu klientów w celu opracowania strategii rekomendowania produktu klientom.

Korzystając z usługi Azure Synapse Analytics, można opracowywać modele sztucznej inteligencji i uczenia maszynowego, aby określić, które produkty mają być zalecane dla klientów.

Na poniższych diagramach przedstawiono użycie różnych typów danych w celu utworzenia modelu w celu określenia alternatywnych zaleceń dotyczących produktów. Dane obejmują wzorce zakupu klientów, zyski, koligacje produktów, wielkość sprzedaży produktów i parametry katalogu produktów.

Diagramy przedstawiające etapy potoku i przepływ pracy dla modelu sztucznej inteligencji. Pola danych obejmują identyfikator klienta, cenę, sprzedaż i zysk.

Jeśli model osiąga wysoką dokładność, udostępnia listę produktów, które można polecić klientowi.

Kwestie wymagające rozważenia

Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.

Aby uzyskać szczegółowe informacje na temat wymagań dotyczących zabezpieczeń i mechanizmów kontroli składników platformy Azure w rozwiązaniu, zobacz sekcję zabezpieczeń dokumentacji każdego produktu.

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

  • Aby oszacować koszt produktów i konfiguracji platformy Azure, skorzystaj z kalkulatora cen platformy Azure.
  • Platforma Azure pomaga uniknąć niepotrzebnych kosztów, identyfikując prawidłową liczbę zasobów dla Twoich potrzeb, analizując wydatki w czasie i skalując w celu zaspokojenia potrzeb biznesowych bez nadmiernego wydatków. Na przykład możesz wstrzymać dedykowane pule SQL, gdy nie oczekujesz żadnego obciążenia. Można je wznowić później.
  • Usługę App Service można zastąpić usługą Azure Functions. Organizowanie funkcji w potoku usługi Azure Synapse Analytics pozwala zmniejszyć koszty.
  • Aby zmniejszyć koszt klastra Spark, wybierz odpowiedni typ obliczeniowy przepływu danych. Dostępne są opcje ogólne i zoptymalizowane pod kątem pamięci. Wybierz również odpowiednie wartości liczby rdzeni i czasu wygaśnięcia (TTL).
  • Aby dowiedzieć się więcej na temat zarządzania kosztami kluczowych składników rozwiązania, zobacz następujące zasoby:

Efektywność wydajności

Wydajność to możliwość skalowania obciążenia w celu spełnienia wymagań, które są na nim umieszczane przez użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz Omówienie filaru wydajności.

W przypadku dużej liczby zmian uruchomienie tysięcy potoków w usłudze Azure Synapse Analytics dla każdej zmiany w kolekcji może spowodować wyświetlenie listy prac potoków w kolejce. Aby zwiększyć wydajność w tym scenariuszu, rozważ następujące podejścia:

  • Użyj kodu usługi App Service opartego na magazynie, który zapisuje dokumenty JSON ze zmianami w usłudze Data Lake Storage. Nie łącz wyzwalacza opartego na magazynie z potokiem. Zamiast tego użyj zaplanowanego wyzwalacza w krótkim odstępie czasu, na przykład co dwie lub pięć minut. Po uruchomieniu zaplanowanego wyzwalacza wszystkie pliki w określonym katalogu usługi Data Lake Storage są aktualizowane dedykowaną pulę SQL dla każdego z nich.
  • Zmodyfikuj kod usługi App Service usługi Event Grid. Zaprogramuj ją, aby dodać mikrosadę około 100 zmian do magazynu obiektów blob, zanim doda nowy temat do zdarzenia z metadanymi zawierającymi nazwę pliku. Ta modyfikacja powoduje wyzwolenie tylko jednego potoku dla jednego obiektu blob z 100 zmianami. Rozmiar mikrosadów można dostosować do swojego scenariusza. Używaj małych mikrosadów z dużą częstotliwością, aby udostępniać aktualizacje zbliżone do czasu rzeczywistego. Możesz też użyć większych mikrosadów z niższą częstotliwością w przypadku opóźnionych aktualizacji i zmniejszenia obciążenia.

Aby uzyskać więcej informacji na temat poprawy wydajności i skalowalności działania kopiowania potoków usługi Azure Synapse Analytics, zobacz działanie Kopiuj przewodnik dotyczący wydajności i skalowalności.

Wdrażanie tego scenariusza

Aby uzyskać informacje na temat implementowania tego rozwiązania, zobacz Rozwiązanie synchronizacji w czasie rzeczywistym dla integracji usługi MongoDB Atlas z usługą Synapse.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Autorzy zabezpieczeń:

Inni współautorzy:

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki

Aby uzyskać więcej informacji na temat rozwiązania, skontaktuj się z .partners@mongodb.com

Aby uzyskać informacje na temat bazy danych MongoDB, zobacz następujące zasoby:

Aby uzyskać informacje o składnikach rozwiązania platformy Azure, zobacz następujące zasoby: