Поделиться через


Мониторинг материализованных представлений

Область применения: ✅Microsoft Fabric✅Azure Data Explorer

Следите за работоспособностью материализованного представления следующими способами:

  • Отслеживайте материализованные метрики представления в портал Azure.
    • Материализованное представление возрастной метрики MaterializedViewAgeSeconds следует использовать для отслеживания свежести представления. Это должна быть основная метрика для мониторинга.

Примечание.

Материализация никогда не пропускает какие-либо данные, даже если возникают постоянные сбои. Представление всегда гарантирует получение самого актуального моментального снимка запроса на основе всех записей в исходной таблице. Константные сбои значительно ухудшают производительность запросов, но не вызывают неправильных результатов в представлении запросов.

Устранение неполадок неработоспособных материализованных представлений

MaterializedViewHealth Метрика указывает, является ли материализованное представление работоспособным. Прежде чем материализованное представление становится неработоспособным, его возраст, отмеченный MaterializedViewAgeSeconds метрикой, постепенно увеличивается.

Материализованное представление может стать неработоспособным по любым или всем следующим причинам:

  • Процесс материализации завершается ошибкой. Метрика MaterializedViewResult и .show materialized-view failures команда могут помочь определить первопричину сбоя.
  • Система, возможно, автоматически отключила материализованное представление из-за изменений в исходной таблице. Вы можете проверить, отключается ли представление, проверив столбец, IsEnabled возвращенный командой.show materialized-view. Дополнительные сведения об ограничениях материализованных представлений и известных проблемах
  • База данных не имеет достаточной емкости для материализации всех входящих данных вовремя. В этом случае в выполнении могут не возникать сбои. Однако возраст представления постепенно увеличивается, так как он не в состоянии следить за скоростью приема. В этой ситуации может быть несколько первопричин:
    • В базе данных есть более материализованные представления, и база данных не имеет достаточной емкости для выполнения всех представлений. См. политику емкости материализованного представления, чтобы изменить параметры по умолчанию для количества материализованных представлений, выполняемых одновременно.
    • Материализация медленна, так как только что приема данных пересекается с большой частью представления, и в каждом цикле материализации существует множество записей. Дополнительные сведения о том, почему это влияет на производительность представления, см . сведения о работе материализованных представлений.

Метрика MaterializedViewResult

MaterializedViewResult Метрика содержит сведения о результатах цикла материализации и может использоваться для выявления проблем в состоянии работоспособности материализованного представления. Метрика включает Database и MaterializedViewName Result измерение.

Измерение Result может иметь одно из следующих значений:

  • Успех: Материализация успешно завершена.

  • SourceTableNotFound: исходная таблица представления материализации была удалена. Материализованное представление автоматически отключается в результате.

  • SourceTableSchemaChange: схема исходной таблицы изменилась так, как не совместима с определением материализованного представления (материализованный запрос представления не соответствует схеме материализованного представления). Материализованное представление автоматически отключается в результате.

  • Недостаточный объем. База данных не имеет достаточной емкости для материализации материализованного представления. Это может указывать на отсутствие емкости приема или отсутствие емкости материализованных представлений. Недостаточные сбои емкости могут быть временными, но если они часто повторяются, рекомендуется масштабировать базу данных или увеличивать соответствующую емкость в политике.

  • Недостаточно ресурсов: база данных не имеет достаточных ресурсов (ЦП/памяти), чтобы материализовать материализованное представление. Этот сбой может быть временным, но если он повторно выполняет попытку масштабирования базы данных вверх или из нее.

    • Если процесс материализации достигает ограничений памяти, ограничения группы рабочих нагрузок $materialized-представления можно увеличить, чтобы поддерживать больше памяти или ЦП для используемого процесса материализации.

    Например, следующая команда изменит группу рабочих нагрузок материализованных представлений, чтобы использовать максимум 64 гигабайт (ГБ) памяти на узел во время материализации (значение по умолчанию составляет 15 ГБ):

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

    Примечание.

    MaxMemoryPerQueryPerNode не может быть задано более 50 % от общего объема памяти каждого узла.

Материализованные представления в базах данных подписчиков

Материализованные представления можно определить в базах данных подписчиков. Однако мониторинг этих материализованных представлений должен основываться на базе данных лидера, где определяется материализованное представление. В частности:

  • Метрики , связанные с материализованным выполнением представления (MaterializedViewResult, MaterializedViewExtentsRebuild), присутствуют только в базе данных лидера. Метрики, связанные с мониторингом (MaterializedViewAgeSeconds, MaterializedViewHealth, ), MaterializedViewRecordsInDeltaтакже будут отображаться в базах данных подписчиков.
  • Команда .show materialized-view failures работает только в базе данных лидера.

Отслеживание потребления ресурсов

Использование ресурсов материализованных представлений: ресурсы, используемые материализованным процессом материализации представлений .show commands-and-queries , можно отслеживать с помощью команды. Фильтрация записей для определенного представления с помощью следующих элементов (замена DatabaseName и ViewName):

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