マテリアライズドビューを作成した後は、AnalyticDB for MySQL クラスター内のすべてのマテリアライズドビューを管理できます。たとえば、マテリアライズドビューのリフレッシュ記録の確認、マテリアライズドビューの定義の確認、マテリアライズドビューで使用される弾性リソースグループの変更、クエリ再書き込み機能の有効化または無効化、およびマテリアライズドビューの削除などが可能です。
マテリアライズドビューの定義の確認
マテリアライズドビューを作成するために使用された DDL 文を確認できます。
必要な権限
マテリアライズドビューに対する SELECT 権限が必要です。この権限を取得するには、特権アカウントまたは GRANT 権限を持つ標準アカウントが、コンソールの アカウント管理 ページ、または GRANT SELECT ON database.mv_name TO username; ステートメントの実行を通じて、ご利用のアカウントに SELECT 権限を付与します。
構文
SHOW CREATE MATERIALIZED VIEW <mv_name>例
マテリアライズドビュー compl_mv1 の作成に使用された DDL 文を確認します。
SHOW CREATE MATERIALIZED VIEW demo.compl_mv1;マテリアライズドビューのメタデータの確認
フィールドの説明
information_schema.mv_info テーブルには、すべてのマテリアライズドビューのメタデータが格納されています。単一のマテリアライズドビューの定義を確認したい場合は、SHOW CREATE MATERIALIZED VIEW ステートメントの実行を推奨します。
以下の表では、information_schema.mv_info テーブルの一般的なフィールドについて説明します。
フィールド | 説明 |
MV_SCHEMA | マテリアライズドビューが存在するデータベースの名前です。 |
MV_NAME | マテリアライズドビューの名前です。 |
MV_DEFINITION | マテリアライズドビューを作成するために使用された DDL 文です。 |
MV_QUERY | マテリアライズドビューの元の SQL クエリです。 |
FIRST_REFRESH_TIME | マテリアライズドビューが自動リフレッシュ用に設定されている場合の、最初のリフレッシュ時刻です。 |
NEXT_REFRESH_TIME_FUNC | マテリアライズドビューが自動リフレッシュ用に設定されている場合の、次のリフレッシュ時刻を導出する関数です。 |
OWNER | マテリアライズドビューの作成者です。 |
QUERY_SCHEMA | マテリアライズドビュー作成ステートメントが実行されたデータベースの名前です。 |
REFRESH_CONDITION | リフレッシュのトリガー機構です。
|
REFRESH_STATE | マテリアライズドビューのリフレッシュポリシーです。
|
UPDATE_TIME | マテリアライズドビューのメタデータが最後に更新された時刻です。 |
例
クラスター内のすべてのマテリアライズドビューの数をカウントします。
SELECT count(*) FROM information_schema.mv_info;すべてのマテリアライズドビューのメタデータを確認します。
SELECT * FROM information_schema.mv_info;
すべてのマテリアライズドビューの確認
指定したデータベース内で、ご利用のアカウントが SELECT 権限を持つすべてのマテリアライズドビューを確認できます。SQL パターンを指定すると、そのパターンに一致するすべてのマテリアライズドビューが返されます。
必要な権限
指定したデータベース内のすべてのマテリアライズドビューに対する SELECT 権限が必要です。この権限がない場合、特権アカウントまたは GRANT 権限を持つ標準アカウントが、コンソールの アカウント ページ、または SQL ステートメント GRANT SELECT ON database.* TO username; を使用して、ご利用のアカウントに権限を付与します。
構文
現在のデータベース内のすべてのマテリアライズドビューを確認します。
SHOW MATERIALIZED VIEWS [LIKE 'pattern']特定のデータベース内のすべてのマテリアライズドビューを確認します。現在のデータベース以外のデータベースを指定できます。
SELECT * FROM information_schema.mv_info WHERE mv_schema='schema_name';例
現在のデータベース内のすべてのマテリアライズドビューを確認します。
SHOW MATERIALIZED VIEWS;現在のデータベース内で、名前が「compl」で始まるすべてのマテリアライズドビューを確認します。
SHOW MATERIALIZED VIEWS LIKE 'compl%';説明`LIKE 'pattern'` の使用方法については、「文字列関数」をご参照ください。
demo データベース内のすべてのマテリアライズドビューを確認します。
SELECT * FROM information_schema.mv_info WHERE mv_schema='demo';
マテリアライズドビューのリフレッシュ記録の確認
自動リフレッシュ記録の確認
構文
以下のステートメントを実行することで、マテリアライズドビューの自動リフレッシュ記録(開始時刻、終了時刻、ステータス、クエリ ID を含む)を確認できます。
SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema='<schema_name>' AND mv_name = '<mv_name>';information_schema.mv_auto_refresh_jobs テーブルには、最大 1,024 件のマテリアライズドビューの自動リフレッシュ記録が格納されます。このテーブルには、START WITH または NEXT パラメーターを使用して定期的な間隔で自動リフレッシュが設定されたマテリアライズドビューのみが含まれます。
information_schema.mv_auto_refresh_jobs テーブルには、作成直後の最初のリフレッシュ記録は含まれません。
例
demo データベース内のマテリアライズドビュー compl_mv1 のすべての自動リフレッシュ記録を確認します。
SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema = 'demo' AND mv_name = 'compl_mv1';demo データベース内のマテリアライズドビュー compl_mv1 の、最も新しい保留中の自動リフレッシュジョブを確認します。
SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema = 'demo' AND mv_name = 'compl_mv1' AND state = 'PENDING';
フィールドの説明
一般的なフィールドの説明です。
フィールド | 説明 |
MV_SCHEMA | マテリアライズドビューが存在するデータベースの名前です。 |
MV_NAME | マテリアライズドビューの名前です。 |
PROCESS_ID | リフレッシュタスクのプロセス ID です。 |
SCHEDULED_START_TIME | リフレッシュジョブの予定開始時刻です。 |
START_TIME | リフレッシュジョブの実際の開始時刻です。 |
END_TIME | リフレッシュジョブの実際の終了時刻です。 |
STATE | ステータスを更新します。
|
手動リフレッシュ記録の確認
過去 30 日間の手動リフレッシュ記録を確認するには、SQL 監査機能を使用します。「SQL 監査」タブのキーワード欄に
REFRESH MATERIALIZED VIEW mv_nameを入力します。これにより、各手動リフレッシュの実行時刻、所要時間、IP アドレス、ユーザー名を確認できます。説明SQL 監査機能を有効化する必要があります。この機能を有効化する前に発生した SQL 操作は監査ログに記録されません。

過去 14 日間の手動および自動リフレッシュ記録を確認するには、SQL 診断および最適化機能を使用します。「SQL 診断および最適化」タブで、マテリアライズドビューの名前(例:
compl_mv1)を入力します。これにより、作成、手動リフレッシュ、自動リフレッシュ、変更など、関連するすべての SQL クエリの開始時刻、ユーザー名、所要時間、クエリ ID を確認できます。
マテリアライズドビューの変更
標準マテリアライズドビューを 弾性マテリアライズドビュー に変更したり、使用するリソースグループを変更したり、クエリ再書き込み機能を有効化または無効化したり、名前を変更したりできます。
定義、リフレッシュポリシー、リフレッシュトリガー機構などの他のプロパティは変更できません。
必要な権限
マテリアライズドビューに対する ALTER 権限が必要です。この権限がない場合、特権アカウントまたは GRANT 権限を持つ標準アカウントが、コンソールの アカウント管理 ページ、または SQL ステートメント GRANT ALTER ON database.mv_name TO username; を使用して、ご利用のアカウントに ALTER 権限を付与します。
構文
ALTER MATERIALIZED VIEW <mv_name>
[MV_PROPERTIES=<MV_PROPERTIES>]
[ENABLE|DISABLE QUERY REWRITE]
[RENAME <new_mv_name>]MV_PROPERTIES: `mv_resource_group` パラメーターと `mv_refresh_hints` パラメーターを含む、マテリアライズドビューのプロパティです。mv_resource_group:マテリアライズドビューで使用されるリソースグループです。指定されたリソースグループが存在しない場合、マテリアライズドビューの作成時にエラーが発生します。
mv_refresh_hints:マテリアライズドビューのヒントパラメーターです。「構成およびヒント構成パラメーター」トピックの「一般的なヒントパラメーター」セクションをご参照ください。
重要ALTER ステートメントで指定された
<MV_PROPERTIES>パラメーターの値は、マテリアライズドビュー作成時に指定された<MV_PROPERTIES>パラメーターの値を上書きします。たとえば、マテリアライズドビューを作成する際に、
mv_resource_groupおよびmv_refresh_hintsパラメーターを設定したとします。その後、mv_resource_groupパラメーターのみを `ALTER` 文で設定すると、mv_resource_groupパラメーターが変更され、文を実行した後にmv_refresh_hintsパラメーターが消去されます。ENABLE|DISABLE QUERY REWRITE:クエリ再書き込み機能を有効化または無効化します。RENAME <new_mv_name>:マテリアライズドビューの名前を変更します。
例
マテリアライズドビュー
compl_mv1のクエリ再書き込み機能を有効化します。ALTER MATERIALIZED VIEW compl_mv1 ENABLE QUERY REWRITE;弾性マテリアライズドビュー
job_mvで使用されるリソースグループを変更します。ALTER MATERIALIZED VIEW job_mv MV_PROPERTIES='{ "mv_resource_group":"my_job_rg_2", "mv_refresh_hints":{"query_priority":"NORMAL"} }';標準マテリアライズドビュー
compl_mv1を弾性マテリアライズドビューに変更します。ALTER MATERIALIZED VIEW compl_mv1 MV_PROPERTIES='{ "mv_resource_group":"my_job_rg_2" }';マテリアライズドビュー mv1 の名前を mv2 に変更します。
ALTER MATERIALIZED VIEW mv1 RENAME mv2;
マテリアライズドビューの削除
マテリアライズドビューを物理的に削除すると、マテリアライズドビュー自体および対応するデータが削除されます。
マテリアライズドビューを削除するために DROP TABLE を実行すると、エラーが返されます。例: demo.myview11 is materialized view, use DROP MATERIALIZED VIEW。
必要な権限
マテリアライズドビューに対する DROP 権限が必要です。この権限がない場合、特権アカウントまたは GRANT 権限を持つ標準アカウントが、コンソールの アカウント ページ、または SQL ステートメント GRANT DROP ON database.mv_name TO username; を使用して、ご利用のアカウントに DROP 権限を付与します。
構文
DROP MATERIALIZED VIEW <mv_name>例
マテリアライズドビュー compl_mv1 を削除します。
DROP MATERIALIZED VIEW compl_mv1;