

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# 自動マテリアライズドビュー
<a name="materialized-view-auto-mv"></a>

このトピックでは、Amazon Redshift が自動マテリアライズドビューを使用してパフォーマンスを向上させる方法について説明します。Amazon Redshift は、データベースのアクティビティとパフォーマンスに基づいてマテリアライズドビューを自動的に作成します。Amazon Redshift は、デフォルトで自動マテリアライズドビューを使用します。

マテリアライズドビューは、Amazon Redshift でのクエリのパフォーマンスを向上させるための強力なツールです。これは、事前に計算された結果セットを保存することによって実現されます。既存の結果セットからレコードを取得できるため、類似したクエリが、毎回同じロジックを再実行する必要はありません。デベロッパーとアナリストは、ワークロードを分析した後にマテリアライズドビューを作成します。これにより、どのクエリが利益をもたらすか、各マテリアライズドビューのメンテナンスにコストをかけるべきかどうかを判断します。ワークロードの増加や変化にともない、パフォーマンス上のメリットを引き続き明確に提供するためには、これらのマテリアライズドビューを見直す必要があります。

Redshift の自動マテリアライズドビュー (AutoMV) 機能は、クエリのパフォーマンスを向上させるために、ワークロードのモニタリングと機械学習アルゴリズムに基づいてマテリアライズドビューを自動的に作成および管理します。AutoMV の主な機能は次のとおりです。
+ *継続的なモニタリング* - Redshift は、機械学習技術を使用してワークロードを継続的にモニタリングし、マテリアライズドビューの作成によるパフォーマンス向上の機会を特定します。
+ *自動作成と削除* - マテリアライズドビューがメリットを提供するとシステムが判断した場合、自動的に作成されて維持されます。逆に、以前に作成された AutoMV がパフォーマンス上のメリットを提供しなくなった場合は、自動的に削除されます。
+ *ユーザーアクティビティの要件なし* - AutoMV 機能は、クラスターで実行されているユーザーアクティビティまたはワークロードが少ない時間帯にのみ動作します。これにより、AutoMV オペレーションがお客様のワークロードに干渉したり、影響したりすることがなくなります。
+ *CPU 使用率の急上昇* - ワークロードのアクティビティがない時間帯では、AutoMV によるマテリアライズドビューの作成または更新により CPU 使用率が急上昇することがあります。これは、システムが利用可能なリソースを使用してマテリアライズドビューを作成および更新しているためで、通常の動作です。
+ *ユーザーワークロードの優先順位* - AutoMV オペレーションの進行中にワークロードが開始されると、AutoMV タスクは停止し、ユーザーワークロード用にリソースを解放します。これにより、ユーザーのワークロードが AutoMV オペレーションよりも優先されます。

AutoMV 機能により、ユーザーのアクティビティがない時間帯に CPU 使用率が急上昇することがありますが、この機能はお客様のワークロードに影響することなく透過的に動作します。システムは、クエリのパフォーマンスを向上させるためにマテリアライズドビューを管理すると同時に、ユーザーのワークロードを AutoMV オペレーションよりも優先します。

AutoMV の動作と機能は、ユーザーにより作成されたマテリアライズドビューと同じです。これらは、同じ基準と制限を使用しており、更新は自動的かつ増分的に行われます。ユーザーが作成したマテリアライズドビューと同様に、[マテリアライズドビューを使用するための自動クエリ書き換え](materialized-view-auto-rewrite.md) はシステムが作成した AutoMV から利点を享受できるクエリを特定します。これらのクエリは AutoMVS を使用するように自動的に書き換えられるため、クエリのパフォーマンスが向上します。デベロッパーは AutoMV を利用するためにクエリを更新する必要はありません。

**注記**  
自動マテリアライズドビューは断続的に更新されます。AutoMV を使用するように書き換えられたクエリは、常に最新の結果を返します。データが最新でないことを Redshift が検出した場合、クエリは自動マテリアライズドビューから読み取るように書き換えられることはありません。代わりに、クエリはベーステーブルから最新のデータを選択します。

繰り返し使用されるクエリを含むワークロードで、AutoMV のメリットが活かされます。一般的ユースケースには以下が含まれます。
+ *ダッシュボード* – ダッシュボードは、主要なビジネス指標 (KPI)、イベント、傾向、およびその他のメトリクスのビューを素早く提供するために広く使用されます。多くの場合、チャートやテーブルによる共通のレイアウトが使用されますが、フィルタリング、あるいはドリルダウンなどのディメンション選択操作では、異なるビューが表示されます。通常ダッシュボードには、異なるパラメータで繰り返し使用される共通のクエリセットが備わっています。ダッシュボードクエリは、自動化されたマテリアライズドビューから大きなメリットを得ることができます。
+  *レポート* – レポートクエリでは、ビジネス要件とレポートの種類に基づくさまざまな頻度により、スケジューリングが行えます。さらに、自動化することもオンデマンドにすることもできます。レポートクエリに通じる一般的な特徴は、クエリが長時間実行され、リソースを大量に消費するという点です。AutoMV では、クエリの実行ごとに再計算をする必要がないため、Redshift における各クエリの実行時間とリソースの使用率が削減されます。

自動マテリアライズドビューをオフにするには、`auto_mv` パラメータグループを `false` に更新します。詳細については、Amazon Redshift クラスター管理ガイドの [Amazon Redshift パラメータグループ](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)を参照してください。

## 自動マテリアライズドビューの SQL スコープと考慮事項
<a name="materialized-view-auto-mv-important"></a>
+ 自動マテリアライズドビューは、`GROUP BY` 句または SUM、COUNT、MIN、MAX、AVG のいずれかの集計関数が含まれていれば、クエリまたはサブクエリによって開始および作成できます。ただし、以下のいずれかを含めることはできません。
  + 左、右、またはフル外部結合
  + SUM、COUNT、MIN、MAX、AVG を除く集計関数 (これらの関数は、自動クエリ書き換えで動作します)。
  + DISTINCT を含むすべての集計関数
  + Window 関数
  + SELECT DISTINCT または HAVING 句
  + その他のマテリアライズドビュー

  条件を満たすクエリが自動マテリアライズドビューの作成を開始することは保証されません。システムは、ワークロードに対して期待されるメリットと、維持するリソースのコスト (更新するシステムのコストを含む) に基づいて、ビューの作成元となる候補を決定します。結果の各マテリアライズドビューは、自動クエリ書き換えによって使用可能です。
+ AutoMV は、サブクエリまたはセット演算子の個々のレッグによって開始される場合がありますが、結果のマテリアライズドビューにはサブクエリまたはセット演算子は含まれません。
+ AutoMV がクエリに使用されたかどうかを判断するには、EXPLAIN プランを表示し、出力で `%_auto_mv_%` を探します。詳細については、「[EXPLAIN](https://docs.aws.amazon.com/redshift/latest/dg/r_EXPLAIN.html)」を参照してください。
+ データ共有やフェデレーションテーブルなどの外部テーブルでは、自動マテリアライズドビューはサポートされていません。

## 自動マテリアライズドビューの制限
<a name="materialized-view-auto-mv-limitations"></a>

自動マテリアライズドビューの操作に関する制限は次のとおりです。
+ *AutoMV の最大数* - 自動マテリアライズドビューの制限はクラスター内のデータベースごとに 200 です。
+ *ストレージスペースとキャパシティ* - AutoMV は、ユーザーのワークロードに影響を与えないように、予備のバックグラウンドサイクルを使用して実行されるという点が重要な特徴です。クラスターがビジー状態であるか、ストレージ領域が不足している場合、AutoMV はアクティビティを停止します。具体的には、クラスターの総容量が 80% の場合、新しい自動マテリアライズドビューは作成されません。総容量が 90% になると、ユーザーのワークロードがパフォーマンスを低下させることなく継続できるように、これらのビューが削除されることがあります。クラスター容量の確認方法の詳細については、「[STV\_NODE\_STORAGE\_CAPACITY](r_STV_NODE_STORAGE_CAPACITY.md)」を参照してください。

## 自動マテリアライズドビューの料金
<a name="materialized-view-auto-mv-billing"></a>

 Amazon Redshift の自動最適化機能により、自動マテリアライズドビューが作成および更新されます。このプロセスのコンピューティングリソースには料金はかかりません。自動マテリアライズドビューのストレージには、通常のストレージ料金が課金されます。詳細については、[Amazon Redshift の料金](https://aws.amazon.com/redshift/pricing/)を参照してください。

## その他のリソース
<a name="materialized-view-auto-mv-resources"></a>

 次のブログ記事では、自動マテリアライズドビューについて詳しく説明しています。それらがどのように作成、管理、削除されるかを詳しく説明しています。また、こうした意思決定を左右する基礎となるアルゴリズムについても説明しています。「[Optimize your Amazon Redshift query performance with automated materialized views」](https://aws.amazon.com/blogs//big-data/optimize-your-amazon-redshift-query-performance-with-automated-materialized-views/)」(自動マテリアライズドビューで Amazon Redshift のクエリパフォーマンスを最適化する)

 このビデオでは、まずマテリアライズドビューについて説明し、マテリアライズドビューによってどのようにパフォーマンスが向上し、リソースを節約できるかを説明します。次に、プロセスフローアニメーションとライブデモンストレーションを使用して、自動マテリアライズドビューについて詳しく説明します。

[![AWS Videos](http://img.youtube.com/vi/-85GSBQOBTA/0.jpg)](http://www.youtube.com/watch?v=-85GSBQOBTA)
