Opanowanie centrum monitorowania w Microsoft Fabric
By Mirko Peters ·
Kiedy po raz pierwszy zagłębiłem się w Microsoft Fabric, jego złożoność mnie przytłoczyła. Godzinami przeglądałem logi, przekonany, że istnieje „magiczna pigułka”, która uprości moje procesy danych. Wszystko zmieniło się dopiero wtedy, gdy zacząłem badać praktyczne techniki optymalizacji…
Automatically translated with AI from the original post. Read the English original
Kiedy po raz pierwszy zagłębiłem się w Microsoft Fabric, jego złożoność mnie przytłoczyła. Godzinami przeglądałem logi, przekonany, że istnieje „magiczna pigułka”, która uprości moje procesy danych. Wszystko zmieniło się dopiero wtedy, gdy zacząłem badać praktyczne techniki optymalizacji. W tym wpisie chętnie podzielę się swoimi ustaleniami, a konkretnie tym, jak opanować wydajność w Microsoft Fabric.
Aby zgłębić te zagadnienia jeszcze dokładniej i posłuchać dyskusji, która zainspirowała ten przewodnik, koniecznie zajrzyj do powiązanego odcinka podcastu: DP-600 Training 3/4: Data Flow, SQL, and Delta Optimization.
Zrozumienie centrum monitorowania: Twoje centrum dowodzenia
Gdy mowa o zarządzaniu operacjami na danych, centrum monitorowania jest Twoim centrum dowodzenia. Ale czym dokładnie jest centrum monitorowania? Potraktuj je jak scentralizowany pulpit, który zapewnia pełny wgląd we wszystkie działania związane z danymi. Zostało zaprojektowane tak, aby pomóc Ci monitorować wydajność, wykrywać problemy i szybko podejmować świadome decyzje.
Czym jest centrum monitorowania?
Centrum monitorowania to nie tylko zbiór metryk. To potężne narzędzie do zrozumienia ekosystemu danych. Konsoliduje różne wskaźniki wydajności w jednym interfejsie, dzięki czemu łatwiej śledzić to, co naprawdę ważne. Wyobraź sobie rozwiązywanie układanki bez widoku wszystkich elementów. Tak właśnie wygląda zarządzanie danymi bez wglądu, jaki daje centrum monitorowania.
Kluczowe metryki, na które warto zwracać uwagę przy problemach z wydajnością
Jednym z kluczy do skutecznego monitorowania jest wiedza, na które metryki się skupić. Oto kilka podstawowych wskaźników:
- Zużycie jednostek pojemności: Ta metryka pokazuje, jaka część przydzielonych zasobów jest wykorzystywana. Jej monitorowanie pozwala zapobiegać ograniczaniu przepustowości, a nawet błędom zapytań.
- Metryki błędów odświeżania: Śledzenie błędów odświeżania pomaga wykrywać wąskie gardła w aktualizacji danych. Jeśli dane nie są odświeżane poprawnie, Twoje analizy mogą być nieaktualne.
- Progi ograniczania przepustowości: Świadomość, kiedy zbliżasz się do limitów zasobów, pomoże Ci skuteczniej zarządzać operacjami.
Jak zawsze powtarzam:
„Skupienie się na metrykach pojemności znacznie upraszcza rozwiązywanie problemów.”
Ten cytat trafia do wielu użytkowników, którzy gubią się w morzu danych. Koncentrując się na tych kluczowych metrykach, możemy przebić się przez szum i dotrzeć do sedna problemów z wydajnością.
Typowe pułapki w monitorowaniu operacji na danych
Choć centrum monitorowania jest niezwykle cennym zasobem, istnieją typowe pułapki, które mogą ograniczać jego skuteczność:
- Przeciążenie informacjami: Przy tak wielu dostępnych metrykach łatwo się zagubić. Nie każda informacja jest krytyczna. Skup się na tym, co naprawdę wpływa na wydajność.
- Brak kontekstu: Metryki mogą powiedzieć, co się dzieje, ale często nie wyjaśniają dlaczego. Połączenie metryk z informacjami kontekstowymi jest niezbędne.
- Ignorowanie trendów: Monitorowanie powinno być proaktywne. Nie reaguj wyłącznie na awarie; szukaj trendów, które wskazują na potencjalne problemy, zanim się nasilą.
Zrozumienie tych pułapek pomoże Ci skuteczniej poruszać się po strategii monitorowania. Pamiętaj, że celem nie jest samo gromadzenie danych, ale ich zrozumienie.
Potrzeba wniosków, które można wykorzystać, zamiast nadmiaru danych
W świecie napędzanym danymi łatwo ulec pokusie gromadzenia jak największej ilości informacji. Jednak więcej danych nie zawsze oznacza lepsze decyzje. Centrum monitorowania podkreśla znaczenie wniosków, które można wykorzystać w praktyce. Nie chodzi o to, by tonąć w danych, ale o wydobycie wartościowych wniosków, które mogą przynieść poprawę wydajności.
Na przykład, choć zużycie jednostek pojemności jest kluczową metryką, zrozumienie jego związku z błędami odświeżania może dostarczyć głębszych wniosków. Ta zależność ułatwia skuteczniejszą diagnozę problemów. Koncentrując się na takich wnioskach, możemy usprawnić działania i zwiększyć ogólną wydajność.
Podsumowując, Centrum monitorowania to Twoje podstawowe narzędzie do optymalizacji operacji na danych. Koncentrując się na kluczowych metrykach, unikając typowych pułapek i stawiając na praktyczne wnioski, możemy sprawić, że nasze strategie zarządzania danymi będą nie tylko skuteczne, ale także wydajne. Czy jesteś gotowy, by przejąć kontrolę nad operacjami na danych?
Przyspieszanie przepływów danych: tabele pośrednie i szybkie kopiowanie
Czy kiedykolwiek irytowało Cię powolne przetwarzanie danych? Ja tak. Przepływy danych często wydają się ciągnąć w nieskończoność, zwłaszcza gdy trzeba obsłużyć duże ilości informacji. Ale co, jeśli powiem, że istnieją metody, które mogą znacząco przyspieszyć te procesy? W tej sekcji przyjrzymy się dwóm potężnym narzędziom: tabelom pośrednim i szybkiemu kopiowaniu.
Koncepcja tabel pośrednich wyjaśniona
Tabele pośrednie są jak tymczasowe obszary magazynowania. Przechowują dane pośrednie podczas przetwarzania. Wyobraź sobie, że gotujesz wielodaniowy obiad. Nie chciałbyś zapchać kuchni wszystkimi składnikami naraz, prawda? Zamiast tego możesz pokroić warzywa i odłożyć je na bok, zanim zaczniesz gotować. Tabele pośrednie robią to samo dla przepływów danych. Odciążając główny silnik przetwarzania z danych pośrednich, zmniejszają jego obciążenie.
Kiedy stosujemy tabele pośrednie, dzielimy przepływ pracy na łatwe do opanowania etapy. Ta metoda pozwala na szybsze przetwarzanie i zmniejsza ryzyko wąskich gardeł. Jak często powtarzam,
"Dzieląc proces na łatwe do opanowania etapy, możemy znacząco skrócić czas wykonania."
Ta zasada sprawdza się szczególnie dobrze w zarządzaniu danymi.
Jak szybkie kopiowanie minimalizuje opóźnienia transferu
Przejdźmy teraz do szybkiego kopiowania. Ta funkcja ma kluczowe znaczenie dla przyspieszenia transferów danych. Traktuj ją jak pas szybkiego ruchu dla swoich danych. W scenariuszach, w których przenosisz duże ilości danych, szybkie kopiowanie minimalizuje opóźnienia, które mogłyby spowolnić całość. Osiąga to dzięki optymalizacji sposobu kopiowania danych w potokach, zapewniając szybkie przemieszczanie danych z jednego miejsca do drugiego.
Kiedy zacząłem korzystać z szybkiego kopiowania, zauważyłem ogromną różnicę. Transfery, które wcześniej trwały wieki, kończyły się w ułamku czasu. Ta wydajność ma ogromne znaczenie, zwłaszcza w środowiskach, w których czas to pieniądz.
Zastosowania w praktyce: poprawa przepustowości
Przyjrzyjmy się kilku praktycznym zastosowaniom tych koncepcji. Wiele organizacji odnotowało znaczną poprawę przepustowości po wdrożeniu tabel pośrednich i szybkiego kopiowania. Na przykład:
- Konsolidacja danych sprzedażowych: Firmy łączące dane sprzedażowe z wielu źródeł mogą skrócić czas wykonania z ponad godziny do zaledwie dwudziestu-trzydziestu minut.
- Hurtownie danych: W scenariuszach hurtowni danych tabele pośrednie usprawniają procesy ETL (Extract, Transform, Load), ułatwiając zarządzanie dużymi zbiorami danych i ich analizę.
- Raportowanie: Szybkie kopiowanie przyspiesza generowanie raportów, pozwalając osobom decyzyjnym szybko uzyskać dostęp do kluczowych danych.
Korzyści są oczywiste. Dzięki tym narzędziom organizacje mogą przekształcić ospałe przepływy pracy z danymi w wydajne procesy.
Równoważenie etapów transformacji z wydajnym zarządzaniem danymi
Choć tabele pośrednie i szybkie kopiowanie są potężne, muszą być częścią szerszej strategii. Ważne jest, aby równoważyć etapy transformacji z wydajnym zarządzaniem danymi. Oznacza to nie tylko koncentrację na szybkości, ale także zapewnienie integralności i dokładności danych. Bo co warte są szybkie dane, jeśli nie są wiarygodne?
Z mojego doświadczenia wynika, że całościowe podejście do zarządzania danymi daje najlepsze efekty. Regularne monitorowanie i dostosowywanie przepływów danych gwarantuje, że pozostaną wydajne w czasie. Pamiętaj, chodzi nie tylko o to, by przenosić dane szybciej, ale by robić to mądrzej.
Integrując tabele pośrednie i szybkie kopiowanie z naszymi strategiami przepływu danych, otwieramy drzwi do wielu możliwości. Dzięki optymalizacji procesów możemy osiągnąć lepszą wydajność, a ostatecznie lepsze wyniki biznesowe.
Rozwiązywanie problemów: rola dynamicznych widoków zarządzania
Gdy mowa o optymalizacji wydajności SQL, dynamiczne widoki zarządzania (DMV) są nieocenionym narzędziem. Ale czym właściwie są DMV? Mówiąc najprościej, to specjalne widoki w SQL Server, które dają wgląd w czasie rzeczywistym w kondycję i wydajność bazy danych. Traktuj DMV jak przepustkę za kulisy skomplikowanych problemów z wydajnością SQL. Pozwalają zobaczyć, co dzieje się za kulisami, rzucając światło na stan sesji, połączeń i wykonywania zapytań.
Czym są widoki zarządzania dynamicznego (DMV)?
DMV to predefiniowane widoki w SQL Server, które dostarczają obszernych informacji o wydajności serwera. Pomagają monitorować różne aspekty środowiska SQL, w tym:
- Sesje: informacje o aktualnie aktywnych połączeniach.
- Zapytania: wgląd w wykonywane zapytania i ich zużycie zasobów.
- Metryki wydajności: dane dotyczące wykorzystania procesora, przydziału pamięci i statystyk operacji wejścia/wyjścia.
Korzystając z tych widoków, mogę szybko wykryć problemy z wydajnością i podjąć działania optymalizacyjne w środowisku SQL.
Monitorowanie wydajności sesji i zapytań za pomocą DMV
Jedną z kluczowych zalet DMV jest możliwość monitorowania wydajności sesji i zapytań w czasie rzeczywistym. Kilkoma zapytaniami mogę uzyskać cenne informacje. Na przykład, jeśli chcę sprawdzić, które zapytania zużywają najwięcej zasobów, mogę uruchomić prosty zapytanie do DMV:
SELECT * FROM sys.dm_exec_query_stats;
To zapytanie zwraca szczegółowe statystyki dotyczące zapytań wykonywanych na serwerze. Dysponując tymi danymi, mogę świadomie zdecydować, które zapytania warto zoptymalizować.
Wykrywanie wąskich gardeł na podstawie analizy zapytań
DMV ułatwiają też wykrywanie wąskich gardeł w operacjach SQL. Analizując wnioski dotyczące zapytań, mogę wskazać konkretne zapytania powodujące opóźnienia. Jeśli na przykład zauważę, że dane zapytanie stale działa wolniej niż oczekiwano, mogę dokładniej przeanalizować metryki DMV związane z tym zapytaniem. Dzięki temu ustalam, czy problem leży w nieefektywnym projekcie zapytania, brakujących indeksach, czy w rywalizacji o zasoby.
Możliwość wykrywania wąskich gardeł to przełomowe rozwiązanie. Pozwala skupić wysiłki tam, gdzie są najbardziej potrzebne, zamiast tracić czas na mniej istotne optymalizacje. Wnioski płynące z DMV mogą prowadzić do znaczącej poprawy wydajności zapytań.
Studia przypadków pokazujące skrócenie czasu zapytań
Przyjrzyjmy się kilku praktycznym przykładom. W jednym przypadku miałem klienta, którego raporty generowały się zbyt długo. Dzięki DMV ustaliłem, że winowajcą jest konkretna procedura składowana. Procedura była słabo zaprojektowana i pobierała więcej danych, niż było potrzeba. Po optymalizacji zapytania i ograniczeniu zbioru danych udało się skrócić czas generowania raportu z ponad godziny do zaledwie piętnastu minut!
W innym przypadku baza danych często przekraczała limit czasu. Dzięki DMV zidentyfikowałem, że zbyt wiele zapytań rywalizowało o te same zasoby. Po analizie metryk wydajności mogłem zarekomendować zmiany w strategii indeksowania. Nie tylko poprawiło to wydajność zapytań, ale także zwiększyło ogólną stabilność systemu.
Te przykłady pokazują, jak DMV pomagają w rozwiązywaniu problemów i optymalizacji wydajności SQL. Zapewniają bezpośredni wgląd w problemy, co umożliwia ukierunkowane i skuteczne rozwiązania.
Podsumowując, DMV są niezbędnym elementem każdej strategii monitorowania wydajności SQL Server. Dzięki wglądowi w czasie rzeczywistym w sesje i zapytania pozwalają podejmować trafne decyzje, które prowadzą do znaczących usprawnień wydajności.
"DMV to Twoja przepustka za kulisy problemów z wydajnością SQL."
Gdy już zapanuję nad przepływem danych, DMV mogą jeszcze bardziej podnieść wydajność, bezpośrednio wpływając na moje zapytania SQL. Każdy wniosek uzyskany z DMV to krok naprzód w stronę bardziej efektywnego środowiska bazodanowego.
Optymalizacja obciążeń: ograniczanie przepustowości i wykorzystanie pojemności
Przy pracy z Microsoft Fabric jednym z największych wyzwań jest zarządzanie wydajnością. Czy kiedykolwiek miałeś wrażenie, że obciążenia działają ospale? To często objaw dławienia (throttlingu). Dziś chcę omówić, jak rozpoznawać wskaźniki throttlingu, dostosowywać obciążenia w celu optymalnego zarządzania pojemnością i skutecznie monitorować wykorzystanie zasobów. Przyjrzyjmy się też, jak rozpoznawanie wzorców zużycia jednostek pojemności może prowadzić do proaktywnego zarządzania.
Rozpoznawanie wskaźników throttlingu
Throttling może poważnie obniżyć efektywność. To jak uderzenie w ścianę podczas biegu. Posuwasz się naprzód, ale coś cię hamuje. Zrozumienie tych wskaźników jest kluczowe. Oto kilka typowych sygnałów:
- Spadki wydajności: jeśli przepływy danych nagle zwalniają, może to być sygnał throttlingu.
- Błędy zapytań: częste błędy zapytań mogą wskazywać, że osiągasz limity zasobów.
- Monitorowanie metryk: Obserwuj zużycie jednostek pojemności. Jeśli jest stale wysokie, możesz być blisko ograniczenia przepustowości (throttling).
Dzięki wczesnemu rozpoznawaniu tych wskaźników możemy podjąć działania, zanim wydajność zostanie poważnie ograniczona.
Dostosowywanie obciążeń w celu optymalnego zarządzania pojemnością
Co więc robimy, gdy rozpoznamy throttling? Czas dostosować nasze obciążenia. Potraktujmy to jak strojenie silnika. Chcesz, żeby wszystko działało płynnie i wydajnie. Oto kilka strategii:
- Rozdzielanie obciążeń: Zamiast kierować wszystkie zadania na jeden zasób, rozłóż je na kilka. Pomoże to uniknąć przeciążenia.
- Skalowanie zasobów: Jeśli zauważysz stały throttling, może być czas na zwiększenie zasobów. To jak przesiadka z małego samochodu do furgonetki, gdy trzeba przewieźć więcej towaru.
- Używanie tabel przejściowych (staging): Mogą one skuteczniej zarządzać danymi pośrednimi. Odciążają główne silniki, co pozwala osiągnąć lepszą wydajność.
Dostosowując obciążenia, możemy nie tylko przetrwać presję, ale także osiągać dobre wyniki.
Skuteczne monitorowanie wykorzystania zasobów
Monitorowanie wykorzystania zasobów to kolejny kluczowy element układanki. Nie wystarczy wprowadzać zmiany; musimy też sprawdzić, jak działają. Oto, jak to zrobić:
- Korzystaj z centrum monitorowania: To narzędzie dostarcza informacji o wydajności i pomaga wskazać wąskie gardła.
- Śledź zużycie jednostek pojemności: Ta metryka pokazuje, jaką część przydzielonych zasobów zużywają określone operacje.
- Konfiguruj alerty: Ustawiając alerty dla kluczowych metryk, będziemy na bieżąco i szybko zareagujemy na wszelkie problemy.
Dzięki skutecznemu monitorowaniu zasobów możemy podejmować świadome decyzje, które poprawiają wydajność.
Rozpoznawanie wzorców zużycia jednostek pojemności
Na koniec warto zrozumieć wzorce zużycia jednostek pojemności, co jest kluczowe dla proaktywnego zarządzania. To jak pilnowanie budżetu: jeśli widzisz trend przekraczania wydatków, wiesz, że trzeba zmienić nawyki. Oto, jak rozpoznawać te wzorce:
- Analizuj dane historyczne: Przejrzyj zużycie jednostek pojemności w czasie, aby zidentyfikować trendy.
- Wskazuj szczyty: Zwróć uwagę, kiedy zużycie jest najwyższe, i sprawdź, czy te szczyty są przewidywalne.
- Dopasuj zasoby do potrzeb: Znając wzorce zużycia, możesz dostosować zasoby do przewidywanego zapotrzebowania.
Poruszając się po złożonościach zarządzania obciążeniami, pamiętaj:
"Throttling to nie tylko limit; to wezwanie do przemyślenia strategii obciążeń."
Takie podejście może prowadzić do trwałej poprawy wydajności w środowisku Microsoft Fabric.
Podsumowując, rozpoznawanie wskaźników throttlingu, dostosowywanie obciążeń, monitorowanie wykorzystania zasobów oraz rozumienie zużycia jednostek pojemności są kluczowe dla optymalizacji naszych operacji. Dzięki tym krokom zwiększymy wydajność i zapewnimy płynniejszy przebieg pracy.
Podsumowanie: wyznaczanie ścieżki do mistrzostwa w wydajności
Kończąc nasze omówienie optymalizacji wydajności w Microsoft Fabric, chciałbym przypomnieć kluczowe strategie, o których rozmawialiśmy. Każda z nich odgrywa istotną rolę w zapewnieniu, że procesy zarządzania danymi działają płynnie i wydajnie.
Podsumowanie strategii optymalizacji
Omówiliśmy kilka skutecznych technik poprawy wydajności. Od korzystania z centrum monitorowania, które pozwala wskazać problemy, po stosowanie tabel przejściowych i szybkiego kopiowania w przepływach danych – każda z metod przyczynia się do sprawniejszego działania. Pamiętaj, że sedno optymalizacji to zrozumienie, na jakich metrykach się skupić i jak sprawić, by dane pracowały dla Ciebie.
Budowanie kultury proaktywnego monitorowania
Jedną z kluczowych lekcji jest znaczenie budowania kultury proaktywnego monitorowania. Nie chodzi wyłącznie o zaglądanie w metryki, gdy coś pójdzie nie tak. Chodzi o stałą ocenę wydajności i wprowadzanie korekt w razie potrzeby. Potraktuj to jak regularne badania kontrolne dla systemów danych. Tak jak nie ignorujemy swojego zdrowia, nie powinniśmy ignorować kondycji naszych operacji na danych.
Ciągłe uczenie się w adaptacji do aktualizacji Microsoft Fabric
Równie istotne jest ciągłe uczenie się. Krajobraz technologiczny stale się zmienia, a Microsoft Fabric nie jest tu wyjątkiem. Regularne aktualizowanie wiedzy i umiejętności pozwala dostosować się do nowych funkcji i ulepszeń. Jak często powtarzam: „Optymalizacja wydajności dotyczy procesu w równym stopniu co samych danych”. Oznacza to, że aktywne śledzenie najnowszych aktualizacji i najlepszych praktyk utrzyma Twoje umiejętności na wysokim poziomie, a systemy – zoptymalizowane.
Zachęta do eksperymentowania i dokumentowania doświadczeń
Na koniec zachęcam Cię do eksperymentowania ze strategiami, które omówiliśmy. Nie bój się spróbować czegoś nowego. Dokumentuj swoje doświadczenia. Co zadziałało? Co nie? Ta refleksyjna praktyka nie tylko utrwala wiedzę, ale też buduje zbiór wiedzy, do którego Ty i inni będziecie mogli sięgać w przyszłości.
Regularne aktualizowanie strategii wydajności jest niezbędne, bo technologia ewoluuje. Doświadczenie zdobyte w praktyce, połączone z ciągłym uczeniem się, prowadzi do mistrzostwa. Z każdym krokiem nie tylko zwiększasz wydajność swoich systemów, ale też budujesz swoją wiedzę ekspercką i pewność w korzystaniu z Microsoft Fabric.
Wdrażając te strategie w swojej organizacji, pamiętaj, że droga do opanowania możliwości Microsoft Fabric jest ciągła. Ucz się i optymalizuj! Każde udokumentowane doświadczenie, każda monitorowana metryka i każda udoskonalona strategia przyczynią się do Twojego rozwoju w tej dynamicznej dziedzinie.
Podsumowując, przejdźmy tę drogę razem. Droga do mistrzostwa w wydajności nie zawsze jest prosta, ale przy zaangażowaniu i ciekawości możemy ją z powodzeniem przebyć. Optymalizujmy, uczmy się i rozwijajmy nasze dążenie do doskonałości w zarządzaniu danymi. Aby usłyszeć szczegółowe omówienie dokładnie tych zagadnień, koniecznie posłuchaj powiązanego odcinka DP-600 Training 3/4: Data Flow, SQL, and Delta Optimization.
Często zadawane pytania
Jaką rolę w optymalizacji zapytań SQL odgrywają DMV i Query Insights?
DMV i Query Insights dostarczają wglądu w wydajność zapytań, ujawniając wzorce i wąskie gardła. Dzięki temu użytkownicy mogą wykrywać nieefektywności i optymalizować swoje zapytania SQL, aby uzyskać lepszą wydajność.
Jak partycjonowanie wpływa na wydajność zapytań w tabelach Delta?
Właściwe partycjonowanie, na przykład według roku i miesiąca, może znacząco poprawić wydajność zapytań, ponieważ pozwala Spark pomijać nieistotne partycje. Z kolei nadmierne partycjonowanie zwiększa narzut i spowalnia działanie, gdyż system musi zarządzać zbyt dużą liczbą małych plików.
Jakie znaczenie ma optymalizacja VOrder w tabelach Delta?
Optymalizacja VOrder zmienia kolejność wierszy i kolumn w plikach Parquet, aby zwiększyć efektywność odczytu w obciążeniach analitycznych. Dzięki temu Spark może odczytywać ciągłe bloki danych, bez skanowania nieistotnych fragmentów, co poprawia wydajność zapytań.
Dlaczego ciągłe monitorowanie metryk wydajności jest ważne po wstępnych optymalizacjach?
Ciągłe monitorowanie jest kluczowe, ponieważ pozwala wykrywać nowe wąskie gardła i nieefektywności, które mogą pojawić się wraz z ewolucją struktur danych lub wzrostem obciążenia. Dzięki temu korzyści z optymalizacji utrzymują się w dłuższej perspektywie.
Jakie korzyści daje włączenie nawyków monitorowania do regularnej pracy?
Włączenie nawyków monitorowania, takich jak okresowe sprawdzanie Monitoring Hub i aplikacji Capacity Metrics, pozwala szybko wykrywać problemy i wprowadzać proaktywne zmiany. Oszczędza to czas na rozwiązywanie incydentów i pomaga utrzymać optymalną wydajność.
Uzyskaj pełny dostęp do M365 Show - Mircosoft 365 Digital Workplace Daily na stronie m365.show/subscribe