다음을 통해 공유


구체화된 보기 모니터링

적용 대상: ✅Microsoft Fabric✅Azure Data Explorer

다음과 같은 방법으로 구체화된 뷰의 상태를 모니터링합니다.

  • Azure Portal에서 구체화된 뷰 메트릭을 모니터링 합니다 .
    • 구체화된 뷰 연령 메트릭 MaterializedViewAgeSeconds 을 사용하여 보기의 새로 고침을 모니터링해야 합니다. 이 메트릭은 모니터링할 기본 메트릭이어야 합니다.

참고 항목

구체화는 지속적인 오류가 있더라도 데이터를 건너뛰지 않습니다. 뷰는 항상 원본 테이블의 모든 레코드에 따라 쿼리의 최신 스냅샷을 반환하도록 보장됩니다. 일정한 오류로 인해 쿼리 성능이 크게 저하되지만 뷰 쿼리에서 잘못된 결과가 발생하지는 않습니다.

비정상 구체화된 뷰 문제 해결

메트릭은 MaterializedViewHealth 구체화된 뷰가 정상인지 여부를 나타냅니다. 구체화된 뷰가 비정상 상태가 되기 전에 메트릭에 의해 표시된 해당 기간은 MaterializedViewAgeSeconds 점차 증가합니다.

구체화된 뷰는 다음과 같은 이유로 비정상 상태가 될 수 있습니다.

  • 구체화 프로세스가 실패합니다. MaterializedViewResult 메트릭.show materialized-view failures 명령은 오류의 근본 원인을 식별하는 데 도움이 될 수 있습니다.
  • 원본 테이블의 변경으로 인해 시스템에서 구체화된 뷰를 자동으로 사용하지 않도록 설정했을 수 있습니다. 명령에서 .show materialized-view 반환된 열을 확인하여 보기가 IsEnabled 비활성화되었는지 확인할 수 있습니다. 구체화된 뷰 제한 사항 및 알려진 문제에 대한 자세한 정보 보기
  • 데이터베이스에 들어오는 모든 데이터를 정시에 구체화할 수 있는 충분한 용량이 없습니다. 이 경우 실행에 실패하지 않을 수 있습니다. 그러나 수집 속도를 따라갈 수 없으므로 보기의 연령이 점차 증가합니다. 이 상황에 대한 몇 가지 근본 원인이 있을 수 있습니다.
    • 데이터베이스에는 구체화된 뷰가 더 많으며 데이터베이스에 모든 보기를 실행할 수 있는 충분한 용량이 없습니다. 동시에 실행되는 구체화된 뷰 수에 대한 기본 설정을 변경하려면 구체화된 뷰 용량 정책을 참조하세요.
    • 새로 수집된 데이터가 뷰의 큰 부분과 교차하고 각 구체화 주기에서 업데이트할 레코드가 많기 때문에 구체화 속도가 느립니다. 이것이 보기의 성능에 영향을 미치는 이유에 대해 자세히 알아보려면 구체화된 뷰의 작동 방식을 참조 하세요.

MaterializedViewResult 메트릭

메트릭은 MaterializedViewResult 구체화 주기의 결과에 대한 정보를 제공하며 구체화된 뷰 상태의 문제를 식별하는 데 사용할 수 있습니다. 메트릭에는 차원과 MaterializedViewName Result 차원이 포함됩니다Database.

차원에는 Result 다음 값 중 하나가 있을 수 있습니다.

  • 성공: 구체화가 성공적으로 완료되었습니다.

  • SourceTableNotFound: 구체화 뷰의 원본 테이블이 삭제되었습니다. 구체화된 뷰는 결과적으로 자동으로 비활성화됩니다.

  • SourceTableSchemaChange: 원본 테이블의 스키마가 구체화된 뷰 정의와 호환되지 않는 방식으로 변경되었습니다(구체화된 뷰 쿼리는 구체화된 뷰 스키마와 일치하지 않음). 구체화된 뷰는 결과적으로 자동으로 비활성화됩니다.

  • InsufficientCapacity: 데이터베이스에 구체화된 뷰를 구체화할 수 있는 충분한 용량이 없습니다. 이는 수집 용량이 누락되었거나 구체화된 뷰 용량이 누락되었음을 나타낼 수 있습니다. 용량 부족 오류는 일시적일 수 있지만 자주 발생하는 경우 데이터베이스를 확장하거나 정책에서 관련 용량을 늘리는 것이 좋습니다.

  • InsufficientResources: 데이터베이스에 구체화된 뷰를 구체화할 수 있는 충분한 리소스(CPU/메모리)가 없습니다. 이 오류는 일시적일 수 있지만 되풀이되는 경우 데이터베이스를 확장하거나 확장해 봅니다.

    예를 들어 다음 명령은 구체화하는 동안 노드당 최대 64GB(메모리)를 사용하도록 구체화된 뷰 워크로드 그룹을 변경합니다(기본값은 15GB).

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

    참고 항목

    MaxMemoryPerQueryPerNode는 각 노드의 총 메모리의 50% 이상으로 설정할 수 없습니다.

팔로워 데이터베이스의 구체화된 뷰

구체화된 뷰는 팔로워 데이터베이스에서 정의할 수 있습니다. 그러나 이러한 구체화된 뷰의 모니터링은 구체화된 뷰가 정의된 리더 데이터베이스를 기반으로 해야 합니다. 특별한 사항

리소스 사용량 추적

구체화된 뷰 리소스 사용: 구체화된 뷰 구체화 프로세스에서 사용하는 리소스는 명령을 사용하여 .show commands-and-queries 추적할 수 있습니다. 다음(바꾸기 DatabaseNameViewName)을 사용하여 특정 보기에 대한 레코드를 필터링합니다.

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