Udostępnij za pośrednictwem


Monitorowanie zmaterializowanych widoków

Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer

Monitoruj kondycję zmaterializowanego widoku w następujący sposób:

  • Monitorowanie zmaterializowanych metryk widoku w witrynie Azure Portal.
    • Zmaterializowana metryka MaterializedViewAgeSeconds wieku widoku powinna służyć do monitorowania świeżości widoku. Ta powinna być metryka podstawowa do monitorowania.

Uwaga

Materializacja nigdy nie pomija żadnych danych, nawet jeśli występują stałe błędy. Widok jest zawsze gwarantowany, aby zwrócić najbardziej aktualną migawkę zapytania na podstawie wszystkich rekordów w tabeli źródłowej. Stałe błędy znacznie obniżają wydajność zapytań, ale nie spowodują nieprawidłowych wyników w zapytaniach wyświetlania.

Rozwiązywanie problemów ze zmaterializowanymi widokami w złej kondycji

MaterializedViewHealth Metryka wskazuje, czy zmaterializowany widok jest w dobrej kondycji. Zanim zmaterializowany widok stanie się w złej MaterializedViewAgeSeconds kondycji, jego wiek, zanotowany przez metrykę, stopniowo wzrasta.

Zmaterializowany widok może stać się w złej kondycji z dowolnego lub wszystkich następujących powodów:

  • Proces materializacji kończy się niepowodzeniem. Metryka MaterializedViewResult i .show materialized-view failures polecenie mogą pomóc zidentyfikować główną przyczynę błędu.
  • System mógł automatycznie wyłączyć zmaterializowany widok ze względu na zmiany w tabeli źródłowej. Możesz sprawdzić, czy widok jest wyłączony, sprawdzając kolumnę zwróconą IsEnabled z .show materialized-view polecenia. Zobacz więcej szczegółów w zmaterializowanych ograniczeniach widoków i znanych problemach
  • Baza danych nie ma wystarczającej pojemności, aby zmaterializować wszystkie przychodzące dane na czas. W takim przypadku może nie wystąpić błędy w wykonaniu. Jednak wiek widoku stopniowo wzrasta, ponieważ nie jest w stanie nadążyć za szybkością pozyskiwania. Może istnieć kilka głównych przyczyn tej sytuacji:
    • Istnieje więcej zmaterializowanych widoków w bazie danych, a baza danych nie ma wystarczającej pojemności do uruchamiania wszystkich widoków. Zobacz zmaterializowane zasady pojemności widoku, aby zmienić ustawienia domyślne liczby zmaterializowanych widoków wykonywanych współbieżnie.
    • Materializacja jest niska, ponieważ nowo pozyskane dane przecinają dużą część widoku i istnieje wiele rekordów do zaktualizowania w każdym cyklu materializacji. Aby dowiedzieć się więcej o tym, dlaczego ma to wpływ na wydajność widoku, zobacz , jak działają zmaterializowane widoki.

MaterializedViewResult metryka

MaterializedViewResult Metryka zawiera informacje o wyniku cyklu materializacji i może służyć do identyfikowania problemów w zmaterializowanym stanie kondycji widoku. Metryka zawiera Database wymiar i i MaterializedViewName Result .

Wymiar Result może mieć jedną z następujących wartości:

  • Powodzenie: Materializacja została ukończona pomyślnie.

  • SourceTableNotFound: tabela źródłowa widoku materializacji została porzucona. W rezultacie zmaterializowany widok jest automatycznie wyłączony.

  • SourceTableSchemaChange: schemat tabeli źródłowej został zmieniony w sposób, który nie jest zgodny z zmaterializowaną definicją widoku (zmaterializowane zapytanie widoku nie pasuje do zmaterializowanego schematu widoku). W rezultacie zmaterializowany widok jest automatycznie wyłączony.

  • InsufficientCapacity: baza danych nie ma wystarczającej pojemności, aby zmaterializować zmaterializowany widok. Może to oznaczać brak pojemności pozyskiwania lub brak zmaterializowanej pojemności widoków. Niewystarczające awarie pojemności mogą być przejściowe, ale jeśli powtarzają się często, zalecamy skalowanie bazy danych lub zwiększenie odpowiedniej pojemności w zasadach.

  • InsufficientResources: baza danych nie ma wystarczających zasobów (procesora CPU/pamięci), aby zmaterializować zmaterializowany widok. Ten błąd może być przejściowy, ale jeśli powtarza się, spróbuj przeskalować bazę danych w górę lub na out.

    • Jeśli proces materializacji osiągnie limity pamięci, limity grup obciążeń widoków $materialized można zwiększyć w celu obsługi większej ilości pamięci lub procesora CPU w celu wykorzystania procesu materializacji.

    Na przykład następujące polecenie spowoduje zmianę zmaterializowanej grupy obciążeń widoków w celu użycia maksymalnie 64 gigabajtów (GB) pamięci na węzeł podczas materializacji (wartość domyślna to 15 GB):

    .alter-merge workload_group ['$materialized-views'] ```
    {
      "RequestLimitsPolicy": {
        "MaxMemoryPerQueryPerNode": {
          "Value": 68719241216
        }
      }
    } ```
    

    Uwaga

    MaxMemoryPerQueryPerNode nie można ustawić na więcej niż 50% całkowitej pamięci każdego węzła.

Zmaterializowane widoki w kolejnych bazach danych

Zmaterializowane widoki można zdefiniować w bazach danych obserwowanych. Jednak monitorowanie tych zmaterializowanych widoków powinno być oparte na bazie danych lidera, w której zdefiniowany jest zmaterializowany widok. Szczególnie:

  • Metryki związane z zmaterializowanym wykonywaniem widoku (MaterializedViewResult, MaterializedViewExtentsRebuild) są obecne tylko w bazie danych lidera. Metryki związane z monitorowaniem (MaterializedViewAgeSeconds, MaterializedViewHealth, MaterializedViewRecordsInDelta) będą również wyświetlane w kolejnych bazach danych.

Śledzenie użycia zasobów

Zmaterializowane użycie zasobów widoków: zasoby używane przez zmaterializowany proces materializacji widoków można śledzić za pomocą .show commands-and-queries polecenia . Przefiltruj rekordy dla określonego widoku przy użyciu następujących wartości (zastąp DatabaseName i ViewName):

.show commands-and-queries 
| where Database  == "DatabaseName" and ClientActivityId startswith "DN.MaterializedViews;ViewName;"