.disable | .enable materialized-view
具体化されたビューの具体化プロセスを無効または有効にします。
Note
具体化されたビューの無効化/有効化に関連する重要なパフォーマンス上の影響があるため、このコマンドの使用を続行する前に、それらを理解していることを確認してください。 詳細については、「 マテリアライズド ビューの有効化/無効化のパフォーマンスへの影響 」セクションを参照してください。
アクセス許可
これらのコマンドを実行するには、少なくとも Materialized View Admin が必要です。
構文
.enable
| disable
materialized-view
MaterializedViewName
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
MaterializedViewName | string |
✔️ | マテリアライズドビューの名。 |
返品
具体化されたビューが既にコマンドを設定しようとしている状態の場合、コマンドは失敗し、その場合を示すエラーが表示されます。
それ以外の場合は、IsEnabled プロパティが変更された具体化されたビューに関する詳細を返します。
[Output Schema]\(出力スキーマ\):
名前 | 種類 | 説明 |
---|---|---|
Name | string |
マテリアライズドビューの名。 |
SourceTable | string |
ビューが定義されているソース テーブルの名前。 |
クエリ | string |
具体化されたビューのクエリ定義。 |
MaterializedTo | datetime |
ソース テーブルのマテリアライズド ingestion_time() タイムスタンプの最大値。 詳細については、マテリアライズドビューのしくみ を参照してください。 |
LastRun | datetime |
前回具体化が実行された時刻。 |
LastRunResult | string |
最後の実行の結果。 正常に実行された場合は Completed を返します。それ以外の場合は Failed を返します。 |
IsHealthy | bool |
true ビューが正常と見なされる場合、false それ以外の場合。 ビューは、直近の 1 時間まで正常にマテリアライズされた場合に正常と見なされます (MaterializedTo が ago(1h) より大きい)。 |
IsEnabled | bool |
true ビューが有効になっている場合 (「具体化されたビューを無効化または有効化」を参照)。 |
フォルダー | string |
具体化されたビューが作成されるフォルダー。 |
DocString | string |
具体化されたビューに割り当てられた説明。 |
AutoUpdateSchema | bool |
ビューの自動更新が有効になっているかどうか。 |
EffectiveDateTime | datetime |
ビューの有効な日時。作成時に決定されます ( .create materialized-view 参照)。 |
ルックバック | timespan |
重複が予想される期間を制限する期間。 |
例
具体化されたビューを有効にする
次のコマンドは、具体化されたビュー ViewName を有効にします。
.enable materialized-view ViewName
出力
Name | 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
出力
Name | 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)
具体化されたビューの有効化/無効化によるパフォーマンスへの影響
- 具体化されたビューが無効になっている場合、具体化は一時停止され、データベースのリソースは消費されません。 無効にした場合でも、具体化されたビューにクエリすることは可能ですが、パフォーマンスが低下する可能性があります。 無効になっている具体化されたビューのパフォーマンスは、無効にされた後にソース テーブルに取り込まれたレコードの数によって異なります。
- 以前に無効にされた具体化されたビューを有効にすることができます。 再有効化すると、具体化されたビューでは一時停止された時点からの具体化が続行されます。スキップされるレコードはありません。 ビューが長時間無効になっていた場合は、追いつくのに時間がかかる場合があります。
- ビューを無効にすることは、ビューがデータベースの正常性に影響を与える可能性がある場合にのみ推奨されます。