Bagikan melalui


Memantau tampilan materialisasi

Pantau kesehatan tampilan material dengan cara berikut:

Catatan

Materialisasi tidak pernah melewatkan data apa pun, bahkan jika ada kegagalan konstan. Tampilan selalu dijamin untuk mengembalikan snapshot kueri terbaru, berdasarkan semua catatan di tabel sumber. Kegagalan konstan akan secara signifikan menurunkan performa kueri, tetapi tidak akan menyebabkan hasil yang salah dalam kueri tampilan.

Pemecahan masalah tampilan materialisasi yang tidak sehat

Metrik MaterializedViewHealth menunjukkan apakah tampilan materialisasi itu sehat. Sebelum tampilan materialisasi menjadi tidak sehat, usianya, dicatat oleh MaterializedViewAgeSeconds metrik, secara bertahap meningkat.

Pandangan yang terwujud dapat menjadi tidak sehat karena salah satu atau semua alasan berikut:

  • Proses materialisasi gagal. Metrik MaterializedViewResult dan .show materialized-view failures perintah dapat membantu mengidentifikasi akar penyebab kegagalan.
  • Sistem mungkin telah secara otomatis menonaktifkan tampilan materialisasi, karena perubahan pada tabel sumber. Anda dapat memeriksa apakah tampilan dinonaktifkan dengan memeriksa kolom yang IsEnabled dikembalikan dari .show materialized-view perintah. Lihat detail selengkapnya dalam batasan tampilan materialisasi dan masalah yang diketahui
  • Kluster tidak memiliki kapasitas yang cukup untuk mewujudkan semua data yang masuk tepat waktu. Dalam hal ini, mungkin tidak ada kegagalan dalam eksekusi. Namun, usia tampilan secara bertahap meningkat, karena tidak dapat mengikuti tingkat penyerapan. Mungkin ada beberapa akar penyebab untuk situasi ini:
    • Ada tampilan yang lebih terwujud dalam kluster, dan kluster tidak memiliki kapasitas yang memadai untuk menjalankan semua tampilan. Lihat kebijakan kapasitas tampilan terwujud untuk mengubah pengaturan default untuk jumlah tampilan materialisasi yang dijalankan secara bersamaan.
    • Materialisasi lambat karena ada terlalu banyak catatan untuk diperbarui di setiap siklus materialisasi. Untuk mempelajari selengkapnya tentang mengapa hal ini berdampak pada performa tampilan, lihat cara kerja tampilan materialisasi. Jumlah jangkauan yang memerlukan pembaruan di setiap siklus disediakan dalam MaterializedViewExtentsRebuild metrik.

Metrik MaterializedViewResult

Metrik MaterializedViewResult memberikan informasi tentang hasil siklus materialisasi, dan dapat digunakan untuk mengidentifikasi masalah dalam status kesehatan tampilan material. Metrik mencakup Database dan MaterializedViewName dan Result dimensi.

Dimensi Result bisa memiliki salah satu nilai berikut ini:

  • Success: Materialisasi selesai dengan sukses.

  • SourceTableNotFound: Tabel sumber dari tampilan materialisasi dijatuhkan. Tampilan materialisasi secara otomatis dinonaktifkan sebagai hasilnya.

  • SourceTableSchemaChange: Skema tabel sumber telah berubah dengan cara yang tidak kompatibel dengan definisi tampilan materialisasi (kueri tampilan materialisasi tidak cocok dengan skema tampilan materialisasi). Tampilan materialisasi secara otomatis dinonaktifkan sebagai hasilnya.

  • InsufficientCapacity: Kluster tidak memiliki kapasitas yang cukup untuk mewujudkan tampilan materialisasi. Ini dapat menunjukkan kapasitas penyerapan yang hilang atau kapasitas tampilan material yang hilang. Kegagalan kapasitas yang tidak memadai dapat bersifat sementara, tetapi jika mereka sering kali kami sarankan untuk meluaskan skala kluster atau meningkatkan kapasitas yang relevan dalam kebijakan.

  • InsufficientResources: Kluster tidak memiliki sumber daya yang memadai (CPU/memori) untuk mewujudkan tampilan yang terwujud. Kegagalan ini mungkin sementara, tetapi jika menempati kembali, coba tingkatkan atau keluarkan skala kluster.

    • Jika proses materialisasi mencapai batas memori, batas grup beban kerja tampilan $materialized dapat ditingkatkan untuk mendukung lebih banyak memori atau CPU agar proses materialisasi dapat dikonsumsi.

    Misalnya, perintah berikut akan mengubah grup beban kerja tampilan materialisasi untuk menggunakan maksimal 64 gigabyte (GB) memori per simpul selama materialisasi (nilai defaultnya adalah 15 GB):

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

    Catatan

    MaxMemoryPerQueryPerNode tidak dapat diatur ke lebih dari 50% dari total memori setiap simpul.

Tampilan materialisasi dalam database pengikut

Tampilan materialisasi dapat didefinisikan dalam database pengikut. Namun, pemantauan tampilan materialisasi ini harus didasarkan pada database pemimpin, di mana tampilan terwujud ditentukan. Khususnya:

  • Metrik yang terkait dengan eksekusi tampilan materialisasi (MaterializedViewResult, MaterializedViewExtentsRebuild) hanya ada dalam database pemimpin. Metrik yang terkait dengan pemantauan (MaterializedViewAgeSeconds, MaterializedViewHealth, MaterializedViewRecordsInDelta) juga akan muncul di database pengikut.
  • Perintah .show materialized-view failures hanya berfungsi di database pemimpin.

Konsumsi sumber daya CPU

Konsumsi sumber daya pandangan materialisasi: sumber daya yang dikonsumsi oleh proses materialisasi pandangan materialisasi dapat dilacak menggunakan perintah .show commands-and-queries. Filter catatan untuk tampilan tertentu menggunakan yang berikut (ganti DatabaseName dan ViewName):

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