次の方法で共有


具体化されたビューを監視する

適用対象: ✅Microsoft FabricAzure データ エクスプローラー

次の方法で、具体化されたビューの正常性を監視します:

  • Azure portal* で具体化されたビュー*のメトリック*をモニター*します。
    • 具体化されたビューの年齢メトリック MaterializedViewAgeSeconds を使用して、ビューの鮮度を監視する必要があります。 これは監視する主要なメトリックである必要があります。

Note

具体化は、一定の故障がある場合でも、データをスキップすることはありません。 ビュー*は常に、ソース* テーブル*内のすべてのレコード*に基づき、クエリ*の最新のスナップショットを返すことが保証されます。 一定の故障によってクエリ*のパフォーマンス*を大幅に低下させますが、ビュー* クエリ*で結果*が不正確になることはありません。

異常のある具体化されたビュー*のトラブルシューティング

MaterializedViewHealthメトリック*は、具体化されたビュー*が正常であるかどうかを示します。 具体化されたビューが異常になる前に、 MaterializedViewAgeSeconds メトリックによって示されるその年齢が徐々に増加します。

具体化されたビュー*は、次のいずれかまたはすべての理由で異常になることがあります。

  • 具体化プロセス*が失敗しています。 MaterializedViewResult メトリック.show materialized-view failures コマンドは、エラーの根本原因を特定するのに役立ちます。
  • ソース テーブルが変更されたため、マテリアライズド ビューが自動的に無効になっている可能性があります。 ビューが無効になっているかどうかを確認するには、コマンドから返された IsEnabled.show materialized-view 確認。 詳細については、 具体化されたビューの制限事項と既知の問題に関するページを参照してください
  • データベースには、すべての受信データをオンタイムで具体化するための十分な容量がありません。 この場合、実行中に故障が発生していない可能性があります。 ただし、ビューはインジェスト率に追いつくことができないため、徐々に年齢が増加します。 この状況には、いくつかの根本原因が考えられます。
    • データベースには具体化されたビューが増え、データベースにはすべてのビューを実行するための十分な容量がありません。 同時に実行される具体化されたビュー*数の既定の設定*を変更するには、「具体化されたビュー*容量のポリシー*」を参照してください。
    • 新しく取り込まれたデータはビューの大部分と交差し、各具体化 サイクルで更新するレコードが多数存在するため、具体化は遅くなります。 これがビューのパフォーマンスに影響を与える理由の詳細については、「具体化されたビューのしくみを参照してください。

MaterializedViewResultメトリック

メトリックはMaterializedViewResult具体化サイクルの結果に関する情報を提供し、具体化されたビューの正常状態における問題を識別するために使用できます。 メトリックには、 DatabaseMaterializedViewName 、および Result ディメンションが含まれます。

Resultディメンションは次のいずれかの値を有します:

  • Success: 具体化は正常に完了しました。

  • SourceTableNotFound: 具体化ビュー*のソース* テーブル*を削除しました。 具体化されたビュー*は、結果として自動的に無効*にされます。

  • SourceTableSchemaChange: ソース テーブルのスキーマが、具体化されたビュー定義と互換性のない方法で変更されました (具体化されたビュー クエリが具体化されたビュー スキーマと一致しません)。 具体化されたビュー*は、結果として自動的に無効*にされます。

  • InsufficientCapacity: 具体化されたビューを具体化するための十分な容量がデータベースにありません。 取り込み容量が不足しているか、または具体化されたビュー容量が不足していることを示します。 容量の不十分なエラーは一時的なものになる可能性がありますが、繰り返し発生する場合は、データベースをスケールアウトするか、ポリシーで関連する容量を増やすことをお勧めします。

  • InsufficientResources: 具体化されたビューを具体化するのに十分なリソース (CPU/メモリ) がデータベースにありません。 このエラーは一時的なものである可能性がありますが、繰り返し発生する場合は、データベースをスケールアップまたはスケールアウトしてみてください。

    たとえば、次のコマンドは、具体化時にノードあたり最大 64 ギガバイト (GB) のメモリを使用するように具体化されたビューワークロード グループを変更します (既定値は 15 GB)。

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

    Note

    MaxMemoryPerQueryPerNode を各ノードの合計メモリの 50% を超える値に設定することはできません。

フォロワー データベースの具体化されたビュー

具体化されたビューは、 follower データベースで定義できます。 ただし、これらの具体化されたビューの監視は、具体化されたビューが定義されているリーダー データベースに基づく必要があります。 具体的には、次のように使用します。

  • 具体化されたビューの実行に関連するメトリック (MaterializedViewResultMaterializedViewExtentsRebuild) は、リーダー データベースにのみ存在します。 監視に関連するメトリック (MaterializedViewAgeSecondsMaterializedViewHealthMaterializedViewRecordsInDelta) もフォロワー データベースに表示されます。

リソース*消費量の追跡*

具体化されたビュー*のリソース*消費: 具体化されたビュー*の具体化プロセス*によって消費されるリソース*は、.show commands-and-queries コマンドを使用して追跡*できます。 次のものを使用して、特定のビュー*のレコード*をフィルタリングします (DatabaseNameViewName を置換*):

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