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

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

最終更新日:Jun 23, 2026

マテリアライズドビューを作成した後、ご利用のクラスターでそれらを管理できます。これには、リフレッシュレコードと定義のクエリ、使用するリソースグループの変更、クエリリライト機能の有効化または無効化、およびそれらの削除が含まれます。

マテリアライズドビュー定義のクエリ

マテリアライズドビューの作成に使用された DDL ステートメントをクエリできます。

権限

マテリアライズドビューに対する SELECT 権限が必要です。この権限がない場合は、特権アカウントまたは GRANT 権限を持つ標準アカウントが、コンソールの アカウント管理 ページで、または次の SQL ステートメントを実行して権限を付与する必要があります: GRANT SELECT ON database.mv_name TO username;

構文

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 クエリ (query_body)。

FIRST_REFRESH_TIME

自動リフレッシュが構成されている場合の、最初のリフレッシュ時刻。

NEXT_REFRESH_TIME_FUNC

自動リフレッシュが構成されている場合に、次のリフレッシュ時刻を導出する関数。

OWNER

マテリアライズドビューの作成者。

QUERY_SCHEMA

`CREATE MATERIALIZED VIEW` ステートメントが実行されたデータベース。

REFRESH_CONDITION

リフレッシュのトリガーメカニズム。

  • DEMAND:定期タスクまたは手動コマンドがリフレッシュをトリガーします。

  • OVERWRITE:ベーステーブルへの上書きがリフレッシュをトリガーします。

REFRESH_STATE

マテリアライズドビューのリフレッシュメソッド。

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

  • FAST:増分リフレッシュ。

UPDATE_TIME

このメタデータ行の最終更新時刻。

  • クラスター内のマテリアライズドビューをカウントします。

    SELECT count(*) FROM information_schema.mv_info;
  • すべてのマテリアライズドビューのメタデータをクエリします。

    SELECT * FROM information_schema.mv_info;

マテリアライズドビューの一覧表示

指定されたデータベース内で、SELECT 権限を持つマテリアライズドビューを一覧表示します。パターンを指定した場合、名前がそのパターンに一致するマテリアライズドビューのみが返されます。

権限

指定されたデータベース内のすべてのマテリアライズドビューに対する 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';

リフレッシュレコードのクエリ

自動リフレッシュレコード

構文

次の SQL ステートメントを使用して、指定されたマテリアライズドビューの自動リフレッシュレコードをクエリします。レコードには、リフレッシュの開始時刻 (START_TIME)、終了時刻 (END_TIME)、ステータス (STATE)、およびプロセス ID (PROCESS_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:リフレッシュが進行中です。多くのマテリアライズドビューが同時にリフレッシュを開始した場合、ジョブが計算リソースを待機している間、`RUNNING` と表示されることがあります。

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

  • FAILED:リフレッシュに失敗しました。ジョブは最大 10 回自動的に再試行されます。それでも失敗した場合、システムはそのジョブをスキップし、次のスケジュールされたリフレッシュを待ちます。

  • TIMEOUT:リフレッシュジョブは不明な状態にあり、完了しませんでした。タイムアウトしたジョブは再度リフレッシュされます。

手動リフレッシュレコード

  • SQL 監査機能を使用すると、過去 30 日間のマテリアライズドビューの手動リフレッシュのレコードをクエリできます。クエリ時に、キーワード REFRESH MATERIALIZED VIEW mv_name を入力すると、手動リフレッシュに関する時間、持続時間、IP アドレス、ユーザー名などの情報を検索できます。

    説明

    SQL 監査機能は別途有効にする必要があります。この機能が有効になる前に実行された SQL 操作は記録されません。

  • 「SQL 診断・最適化」機能を使用して、過去 14 日間の手動リフレッシュと自動リフレッシュの両方のレコードをクエリできます。 クエリする際は、compl_mv1 などのマテリアライズドビューの名前を入力します。 関連するすべての SQL クエリ (作成、手動リフレッシュ、自動リフレッシュ、変更を含む) について、開始時刻、ユーザー名、持続時間、クエリ ID などの情報を取得できます。

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

標準のマテリアライズドビューを エラスティックマテリアライズドビュー に変換したり、使用するリソースグループを変更したり、クエリリライト機能を有効または無効にしたり、名前を変更したりできます。

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

権限

マテリアライズドビューに対する ALTER 権限が必要です。この権限がない場合は、特権アカウントまたは GRANT 権限を持つ標準アカウントが、コンソールの アカウント管理 ページで、または次の SQL ステートメントを実行して権限を付与する必要があります: GRANT ALTER ON database.mv_name TO username;

構文

ALTER MATERIALIZED VIEW <mv_name>
[MV_PROPERTIES=<MV_PROPERTIES>]
[ENABLE|DISABLE QUERY REWRITE]
[RENAME <new_mv_name>]
[BINLOG={TRUE|FALSE}]
  • MV_PROPERTIES:マテリアライズドビューのプロパティを指定します。これには `mv_resource_group` および `mv_refresh_hints` パラメーターが含まれます。

    `mv_resource_group`:マテリアライズドビューが使用するリソースグループを指定します。指定されたリソースグループが存在しない場合、マテリアライズドビューの作成時にエラーが返されます。

    `mv_refresh_hints`:マテリアライズドビューのパラメーターを設定します。サポートされている構成パラメーターの詳細については、「共通ヒント」をご参照ください。

    重要

    `ALTER` ステートメントで指定された <MV_PROPERTIES> プロパティは、マテリアライズドビューの作成時に指定された <MV_PROPERTIES> プロパティを完全に上書きします。

    例えば、マテリアライズドビューを作成し、mv_resource_groupmv_refresh_hints の両方のパラメーターを設定した後に、mv_resource_group パラメーターのみを指定する ALTER 文を実行すると、mv_resource_group パラメーターは更新され、mv_refresh_hints パラメーターはクリアされます。

  • ENABLE|DISABLE QUERY REWRITE:クエリリライト機能を有効化または無効化します。

  • RENAME <new_mv_name>:マテリアライズドビューの名前を変更します。

  • BINLOG={TRUE|FALSE}:マテリアライズドビューの binlog 機能を有効化または無効化します。これは、クラスターカーネルバージョン 3.2.5.0 以降でサポートされています。

  • マテリアライズドビュー 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 MATERIALIZED VIEW <mv_name>

マテリアライズドビュー compl_mv1 を削除します。

DROP MATERIALIZED VIEW compl_mv1;