Partilhar via


Monitorizar vistas materializadas

Monitorize o estado de funcionamento da vista materializada das seguintes formas:

Nota

A materialização nunca ignora dados, mesmo que existam falhas constantes. A vista é sempre garantida para devolver o instantâneo mais atualizado da consulta, com base em todos os registos na tabela de origem. As falhas constantes irão degradar significativamente o desempenho das consultas, mas não causarão resultados incorretos nas consultas de visualização.

Resolução de problemas de vistas materializadas em mau estado de funcionamento

A MaterializedViewHealth métrica indica se uma vista materializada está em bom estado de funcionamento. Antes de uma vista materializada ficar em mau estado de funcionamento, a MaterializedViewAgeSeconds sua idade, notada pela métrica, aumenta gradualmente.

Uma vista materializada pode ficar em mau estado de funcionamento por qualquer ou todos os seguintes motivos:

  • O processo de materialização está a falhar. A métrica MaterializedViewResult e o .show materialized-view failures comando podem ajudar a identificar a causa da falha.
  • O sistema pode ter desativado automaticamente a vista materializada, devido a alterações à tabela de origem. Pode verificar se a vista está desativada ao verificar a IsEnabled coluna devolvida pelo .show materialized-view comando . Veja mais detalhes em limitações de vistas materializadas e problemas conhecidos
  • O cluster não tem capacidade suficiente para materializar todos os dados recebidos a tempo. Neste caso, podem não existir falhas na execução. No entanto, a idade da vista aumenta gradualmente, uma vez que não consegue acompanhar a taxa de ingestão. Podem existir várias causas para esta situação:
    • Existem vistas mais materializadas no cluster e o cluster não tem capacidade suficiente para executar todas as vistas. Veja a política de capacidade de vista materializada para alterar as predefinições do número de vistas materializadas executadas em simultâneo.
    • A materialização é lenta porque existem demasiados registos para atualizar em cada ciclo de materialização. Para saber mais sobre o motivo pelo qual isto afeta o desempenho da vista, veja como funcionam as vistas materializadas. O número de extensões que requerem atualizações em cada ciclo é fornecido na MaterializedViewExtentsRebuild métrica .

MaterializedViewResult metric (Métrica MaterializedViewResult)

A MaterializedViewResult métrica fornece informações sobre o resultado de um ciclo de materialização e pode ser utilizada para identificar problemas no estado de funcionamento da vista materializada. A métrica inclui e DatabaseMaterializedViewName e uma Result dimensão.

A Result dimensão pode ter um dos seguintes valores:

  • Êxito: a materialização foi concluída com êxito.

  • SourceTableNotFound: a tabela de origem da vista de materialização foi removida. Como resultado, a vista materializada é desativada automaticamente.

  • SourceTableSchemaChange: o esquema da tabela de origem foi alterado de uma forma que não é compatível com a definição de vista materializada (a consulta de vista materializada não corresponde ao esquema de vista materializada). Como resultado, a vista materializada é desativada automaticamente.

  • InsufficientCapacity: o cluster não tem capacidade suficiente para materializar a vista materializada. Isto pode indicar capacidade de ingestão em falta ou capacidade de vistas materializadas em falta. As falhas de capacidade insuficientes podem ser transitórias, mas se se verificarem frequentemente, recomendamos que aumente horizontalmente o cluster ou aumente a capacidade relevante na política.

  • InsufficientResources: O cluster não tem recursos suficientes (CPU/memória) para materializar a vista materializada. Esta falha pode ser transitória, mas se ocorrer novamente, tente aumentar ou reduzir verticalmente o cluster.

    Por exemplo, o comando seguinte irá alterar o grupo de cargas de trabalho de vistas materializadas para utilizar um máximo de 64 gigabytes (GB) de memória por nó durante a materialização (o valor predefinido é 15 GB):

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

    Nota

    MaxMemoryPerQueryPerNode não pode ser definido para mais de 50% da memória total de cada nó.

Vistas materializadas em bases de dados de seguidores

As vistas materializadas podem ser definidas em bases de dados de seguidores. No entanto, a monitorização destas vistas materializadas deve basear-se na base de dados de preenchimento, onde a vista materializada é definida. Especificamente:

  • As métricas relacionadas com a execução materializada de vistas (MaterializedViewResult, MaterializedViewExtentsRebuild) só estão presentes na base de dados de coordenador. As métricas relacionadas com a monitorização (MaterializedViewAgeSeconds, MaterializedViewHealth, MaterializedViewRecordsInDelta) também serão apresentadas nas bases de dados de seguimento.
  • O comando .show materialized-view failures só funciona na base de dados leader.

Controlar o consumo de recursos

Consumo de recursos de vistas materializadas: os recursos consumidos pelo processo de materialização de vistas materializadas podem ser controlados com o .show commands-and-queries comando . Filtre os registos para uma vista específica com o seguinte (substituir DatabaseName e ViewName):

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