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

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

最終更新日:Mar 04, 2025

マテリアライズドビューを作成した後、AnalyticDB for MySQL クラスタ内のすべてのマテリアライズドビューを管理できます。たとえば、マテリアライズドビューのリフレッシュレコードのクエリ、マテリアライズドビューの定義のクエリ、マテリアライズドビューによって使用されるエラステイック リソースグループ の変更、クエリ書き換え機能の有効化または無効化、マテリアライズドビューの削除などを行うことができます。

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

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

必要な権限

マテリアライズドビューに対する SELECT 権限が必要です。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 権限が必要です。SELECT 権限を取得するには、特権アカウント を作成します。GRANT 権限を持つ 標準アカウント を作成し、[アカウント] ページで、または GRANT SELECT ON database.* TO username; 文を実行することで、標準アカウント に SELECT 権限を付与することもできます。

構文

現在のデータベース内のすべてのマテリアライズドビューをクエリします。

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' の構文の詳細については、「文字列関数」トピックの「LIKE」セクションをご参照ください。
  • 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';

次の表に、information_schema.mv_auto_refresh_jobs テーブルの一般的なフィールドを示します。

フィールド

説明

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 監査機能を使用します。[XIHE SQL 監査] タブのキーワードフィールドに REFRESH MATERIALIZED VIEW mv_name と入力すると、時刻、期間、IP アドレス、データベースアカウント など、手動リフレッシュレコードに関する情報を表示できます。

    SQL 監査機能は個別に有効にする必要があります。SQL 監査機能が有効になる前に行われた SQL 操作は、監査ログには含まれません。

    image

  • 過去 14 日以内に行われたマテリアライズドビューの手動および自動リフレッシュレコードをクエリするには、SQL 診断と最適化機能を使用します。[SQL 診断と最適化] タブで compl_mv1 などのマテリアライズドビューの名前を入力すると、開始時刻、データベースアカウント、期間、クエリ ID など、マテリアライズドビューのすべての SQL クエリに関する情報を表示できます。

    image

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

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

名前、定義、リフレッシュポリシー、リフレッシュトリガーメカニズムなど、マテリアライズドビューの他のプロパティは変更できません。

必要な権限

マテリアライズドビューに対する ALTER 権限が必要です。ALTER 権限を取得するには、特権アカウント を作成します。GRANT 権限を持つ 標準アカウント を作成し、[アカウント] ページで、または GRANT ALTER ON database.mv_name TO username; 文を実行することで、標準アカウント に ALTER 権限を付与することもできます。

構文

ALTER MATERIALIZED VIEW <mv_name>
[MV_PROPERTIES=<MV_PROPERTIES>]
[ENABLE|DISABLE QUERY REWRITE]
  • 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:クエリ書き換え機能を有効または無効にします。

  • 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"
    }';

マテリアライズドビューの削除

マテリアライズドビューを物理的に削除すると、マテリアライズドビューと対応するデータが削除されます。

DROP TABLE 文を実行してマテリアライズドビューを削除すると、demo.myview11 is materialized view, use DROP MATERIALIZED VIEW のような エラーメッセージ が返されます。

必要な権限

マテリアライズドビューに対する DROP 権限が必要です。DROP 権限を取得するには、特権アカウント を作成します。GRANT 権限を持つ 標準アカウント を作成し、[アカウント] ページで、または GRANT DROP ON database.mv_name TO username; 文を実行することで、標準アカウント に DROP 権限を付与することもできます。

構文

DROP MATERIALIZED VIEW <mv_name>

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

DROP MATERIALIZED VIEW compl_mv1;