.disable | .enable materialized-view
停用或啟用具體化檢視的具體化程式。
注意
由於有一些與停用/啟用具體化檢視相關聯的重要效能影響,因此請先確定您已熟悉它們,再繼續進行此命令的使用。 如需詳細資訊,請參閱 啟用/停用具體化檢視的效能影響 一節。
權限
您必須至少有具體化檢視 管理員 才能執行這些命令。
語法
.enable
| disable
materialized-view
MaterializedViewName
深入瞭解 語法慣例。
參數
名稱 | 類型 | 必要 | 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)
啟用/停用具體化檢視的效能影響
- 當具體化檢視停用時,具體化將會暫停,且不會使用叢集的資源。 即使在停用的情況下也可以查詢具體化檢視,但是效能可能會很差。 已停用具體化檢視的效能取決於從來源資料表停用之後擷取到其中的記錄數目。
- 您可以啟用先前已停用的具體化檢視。 重新啟用時,具體化檢視將會從其所離開的點繼續具體化,且不會略過任何記錄。 如果停用此檢視很長一段時間,可能需要很長的時間才能趕上進度。
- 建議只有當您懷疑檢視影響到叢集的健康情況時,才停用檢視。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應