共用方式為


.disable | .enable materialized-view

停用或啟用具體化檢視的具體化程式。

注意

由於有一些與停用/啟用具體化檢視相關聯的重要效能影響,因此請先確定您已熟悉它們,再繼續進行此命令的使用。 如需詳細資訊,請參閱 啟用/停用具體化檢視的效能影響 一節。

權限

您必須至少有具體化檢視 管理員 才能執行這些命令。

語法

.enable | disablematerialized-viewMaterializedViewName

深入瞭解 語法慣例

參數

名稱 類型 必要 Description
MaterializedViewName string ✔️ 具體化檢視的名稱。

傳回

如果具體化檢視已經在嘗試將它設定為 的狀態中,命令就會失敗,並出現錯誤,指出是這種情況。

否則,它會傳回IsEnabled屬性已變更之具體化檢視的詳細數據。

輸出架構:

名稱 類型 Description
名稱 string 具體化檢視的名稱。
SourceTable string 定義檢視的來源資料表的名稱。
查詢 string 具體化檢視的查詢定義。
MaterializedTo datetime 源數據表中具體化ingestion_time () 时间戳上限。 如需詳細資訊,請參閱具體化檢視的運作方式
LastRun datetime 上次執行具體化的時間。
LastRunResult string 上次執行的結果。 若為成功執行,傳回 Completed,否則為 Failed
IsHealthy bool 當檢視狀況良好時為 true,否則為 false。 如果檢視已成功具體化到最後一個小時 (MaterializedTo 大於 ago(1h)),則會將檢視視為狀況良好。
IsEnabled bool 啟用檢視時為 true (請參閱停用或啟用具體化檢視)。
資料夾 string 建立具體化檢視的資料夾。
DocString string 指派給具體化檢視的描述。
AutoUpdateSchema bool 是否已啟用檢視的自動更新。
EffectiveDateTime datetime 檢視的有效日期時間,在建立期間決定 (請參閱 .create materialized-view) 。
回顧 timespan 時間範圍會限制預期重複項目的時間週期。

範例

啟用具體化檢視

下列命令會啟用具體化檢視 ViewName:

.enable materialized-view ViewName

輸出

名稱 SourceTable 查詢 MaterializedTo LastRun LastRunResult IsHealthy IsEnabled 資料夾 DocString AutoUpdateSchema EffectiveDateTime 回顧
ViewName TableName TableName |summarize arg_max (Column3, *) by Column1 2023-02-26T16:40:03.3345704Z 2023-02-26T16:44:15.9033667Z 已完成 true true false 2023-02-23T14:01:42.5172342Z

停用具體化檢視

下列命令會停用具體化檢視 ViewName:

.disable materialized-view ViewName

輸出

名稱 SourceTable 查詢 MaterializedTo LastRun LastRunResult IsHealthy IsEnabled 資料夾 DocString AutoUpdateSchema EffectiveDateTime 回顧
ViewName TableName TableName |summarize arg_max (Column3, *) by Column1 2023-02-26T16:40:03.3345704Z 2023-02-26T16:44:15.9033667Z 已完成 true false false 2023-02-23T14:01:42.5172342Z

備註

停用具體化檢視

您可以使用下列任何一種方式停用具體化檢視:

  • 系統自動停用:如果具體化失敗且有永久錯誤,則具體化檢視會自動停用。 此程序會在下列執行個體中發生:
    • 與檢視定義不一致的結構描述變更。
    • 對來源資料表所做的變更,造成具體化檢視查詢在語意上無效。
  • 明確停用具體化檢視: 例如,如果具體化檢視對叢集的健康情況造成負面影響 (,例如耗用太多 CPU) ,請使用 .disable materialized-view 命令停用檢視。

具體化檢視和數據列層級安全性

如果具體化檢視已停用,而且當檢視停用時,有人在檢視的源數據表上定義數據 列層級安全策略 ,但具體化檢視並未定義數據列層級安全策略,則啟用檢視會因為安全性考慮而失敗。 若要減輕這個錯誤,您可以:

  • 在具體化檢視上定義資料列層級安全性原則。
  • 藉由將 allowMaterializedViewsWithoutRowLevelSecurity 屬性新增至啟用原則命令,選擇忽略錯誤。 例如:
    .enable materialized-view MV with (allowMaterializedViewsWithoutRowLevelSecurity=true)

啟用/停用具體化檢視的效能影響

  • 當具體化檢視停用時,具體化將會暫停,且不會使用叢集的資源。 即使在停用的情況下也可以查詢具體化檢視,但是效能可能會很差。 已停用具體化檢視的效能取決於從來源資料表停用之後擷取到其中的記錄數目。
  • 您可以啟用先前已停用的具體化檢視。 重新啟用時,具體化檢視將會從其所離開的點繼續具體化,且不會略過任何記錄。 如果停用此檢視很長一段時間,可能需要很長的時間才能趕上進度。
  • 建議只有當您懷疑檢視影響到叢集的健康情況時,才停用檢視。