すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:マテリアライズドビューの管理

最終更新日:Mar 03, 2026

マテリアライズドビューを作成した後は、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

リフレッシュのトリガー機構です。

  • DEMAND:システムがスケジュールに基づいて、マテリアライズドビューのリフレッシュを自動または手動でトリガーできます。

  • OVERWRITE:基盤テーブルが上書きされたときに自動的にリフレッシュされます。

REFRESH_STATE

マテリアライズドビューのリフレッシュポリシーです。

  • COMPLETE:完全リフレッシュです。

  • FAST:増分更新を実行します。

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

ステータスを更新します。

  • PENDING:リフレッシュジョブがトリガーを待機中です。

  • RUNNING:リフレッシュジョブが進行中です。複数のマテリアライズドビューが同時にリフレッシュされる場合、これらのビューはコンピューティングリソースの確保を待機している可能性があります。

  • FINISHED:リフレッシュジョブが完了しました。

  • FAILED:リフレッシュジョブが失敗しました。リフレッシュジョブが失敗した場合、許容回数に達するまで再試行されます。再試行可能回数は最大 10 回です。10 回の再試行後に依然として失敗した場合、リフレッシュジョブはキャンセルされます。

  • TIMEOUT:リフレッシュジョブがタイムアウトし、完了できませんでした。TIMEOUT 状態のリフレッシュジョブは再トリガー可能です。

手動リフレッシュ記録の確認

  • 過去 30 日間の手動リフレッシュ記録を確認するには、SQL 監査機能を使用します。「SQL 監査」タブのキーワード欄に REFRESH MATERIALIZED VIEW mv_name を入力します。これにより、各手動リフレッシュの実行時刻、所要時間、IP アドレス、ユーザー名を確認できます。

    説明

    SQL 監査機能を有効化する必要があります。この機能を有効化する前に発生した SQL 操作は監査ログに記録されません。

    image

  • 過去 14 日間の手動および自動リフレッシュ記録を確認するには、SQL 診断および最適化機能を使用します。「SQL 診断および最適化」タブで、マテリアライズドビューの名前(例:compl_mv1)を入力します。これにより、作成、手動リフレッシュ、自動リフレッシュ、変更など、関連するすべての SQL クエリの開始時刻、ユーザー名、所要時間、クエリ ID を確認できます。

    image

マテリアライズドビューの変更

標準マテリアライズドビューを 弾性マテリアライズドビュー に変更したり、使用するリソースグループを変更したり、クエリ再書き込み機能を有効化または無効化したり、名前を変更したりできます。

定義、リフレッシュポリシー、リフレッシュトリガー機構などの他のプロパティは変更できません。

必要な権限

マテリアライズドビューに対する 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;