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

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

最終更新日:Mar 07, 2025

マテリアライズドビューは、データウェアハウスシナリオにおいて強力なツールです。ビューとは異なり、マテリアライズドビューはビューからのクエリ結果を保存して、データ分析を高速化し、抽出、変換、書き出し(ETL)操作を簡素化します。マテリアライズドビューは、レポート分析、ダッシュボード表示、ビジネスインテリジェンス(BI)ツールからのクエリなど、さまざまなシナリオに適しています。

マテリアライズドビューとは

マテリアライズドビューは、単一テーブルまたは複数テーブルクエリの事前計算された結果を格納する AnalyticDB for MySQL の内部テーブルです。マテリアライズドビューのデータをクエリすると、AnalyticDB for MySQL はベーステーブルにアクセスすることなく、事前計算されたクエリ結果を返します。これにより、クエリの応答時間が大幅に向上します。

XIHE エンジンのみを使用してマテリアライズドビューを作成できます。 Spark エンジンを使用してマテリアライズドビューを作成することはできません。

マテリアライズドビューのベーステーブルをクエリする場合、AnalyticDB for MySQL はクエリのパフォーマンス向上にも役立ちます。 AnalyticDB for MySQL は、クエリがマテリアライズドビューのクエリと完全または部分的に一致することを検出すると、マテリアライズドビューを使用してクエリを書き直し、事前計算されたクエリ結果を返してクエリの応答時間を向上させます。

マテリアライズドビューは、最新の更新からのデータを表示するため、ベーステーブルの最新データを反映していない可能性があります。マテリアライズドビューは、各クエリの後で自動的にデータを更新しません。マテリアライズドビューのデータの適時性と正確性を確保するために、スケジュールされた間隔での自動更新、ベーステーブルの上書き時の自動更新、手動更新など、マテリアライズドビューの更新トリガーメカニズムを設定できます。

次の表に、マテリアライズドビューの機能を示します。

更新ポリシー

ベーステーブルタイプ

更新トリガーメカニズム

クエリタイプ

クエリ書き換え

完全更新

  • AnalyticDB for MySQL の内部テーブル(パーティションテーブル、非パーティションテーブル、レプリケートされたテーブルを含む)

  • AnalyticDB for MySQL の外部テーブル

  • マテリアライズドビュー

  • ビュー

  • スケジュールされた間隔での自動更新

  • ベーステーブルの上書き時の自動更新

  • 手動更新

任意のクエリ

サポート対象 (V3.1.4)

高速更新 (V3.1.9.0)

  • AnalyticDB for MySQL の内部テーブル(パーティションテーブル (V3.2.3.0) および非パーティションテーブルを含む)

スケジュールされた間隔での自動更新

  • 単一テーブルクエリ (V3.1.9.0)

  • 複数テーブル結合クエリ (V3.2.1.0)

マテリアライズドビューの制限と機能の更新については、このトピックの「制限」セクションと「マテリアライズドビューの機能更新」セクションをご参照ください。

適用可能なシナリオ

マテリアライズドビューは、定期的なクエリまたは繰り返されるクエリを高速化する場合に適しています。

  • 同じサブクエリを含む複数のクエリ

    複数のクエリにリソースを大量に消費する集計関数を使用する同じサブクエリが含まれている場合、マテリアライズドビューを作成して、サブクエリのすべてのクエリ結果を事前計算して保存できます。サブクエリを含むクエリを実行すると、AnalyticDB for MySQL はクエリ書き換え機能を使用してマテリアライズドビューをクエリします。これにより、クエリの応答時間が向上し、計算リソースの使用量が削減されます。

  • 定期的な複数テーブル結合操作

    複数テーブルを定期的に結合する場合、テーブルに基づいてマテリアライズドビューを作成できます。マテリアライズドビューは、テーブルの結合結果を事前計算して保存し、定期的にデータを自動更新します。テーブルで結合操作を実行すると、AnalyticDB for MySQL は複数テーブル結合操作を繰り返すことなく、マテリアライズドビューから結果を返します。これにより、クエリの応答時間が大幅に向上します。

  • データレイククエリの高速化

    外部テーブルでクエリを実行すると、AnalyticDB for MySQL は外部テーブルに基づいて作成されたマテリアライズドビューを使用してクエリを書き直します。これにより、データレイク分析が高速化されます。

マテリアライズドビューの機能更新

  • V3.1.4 以降:マテリアライズドビューのクエリ書き換え機能がサポートされています。

  • V3.1.4.7 以降:

    • OR REPLACE キーワードがサポートされています。既存のマテリアライズドビューと同じ名前を使用するマテリアライズドビューを作成する場合、AnalyticDB for MySQL は新しいマテリアライズドビューを作成し、元のマテリアライズドビューを削除します。

    • AnalyticDB for MySQL クラスタに作成できるマテリアライズドビューの最大数が 8 から 64 に増加しました。

  • V3.1.9.0 以降:単一テーブルマテリアライズドビューは高速更新をサポートしています。

  • V3.1.9.3 以降:ジョブリソースグループを使用して、Enterprise Edition、Basic Edition、および Data Lakehouse Edition クラスタの弾性マテリアライズドビューを作成および更新できます。

  • V3.2.0.0 以降:複数テーブルマテリアライズドビューは高速更新をサポートしています。

  • V3.2.2.1 以降:高速更新をサポートするマテリアライズドビューの場合、マテリアライズドビュークエリは MAX()、MIN()、AVG()、APPROX_DISTINCT()、および COUNT(DISTINCT) 関数をサポートしています。

  • V3.2.3.0 以降:パーティションテーブルをベーステーブルとして使用して、高速更新をサポートするマテリアライズドビューを作成できます。

  • V3.2.3.1 以降:高速更新をサポートするマテリアライズドビューのベーステーブルで INSERT OVERWRITE 文と TRUNCATE 文を実行できます。

マテリアライズドビューでは、次の操作を実行できます。

マテリアライズドビューの顧客事例については、「顧客事例」をご参照ください。