Amazon Redshift Spectrum の外部データレイクテーブルのマテリアライズドビュー
マテリアライズドビューでは、外部データレイクテーブルの増分メンテナンスを提供できます。増分メンテナンスでは、Amazon Redshift によって、前回の更新以降にベーステーブルのデータに加えられた変更のみをマテリアライズドビューのデータに反映します。増分メンテナンスは、ベーステーブルでデータが変更されるたびにマテリアライズドビューをすべて再計算するよりもコスト効率が高くなります。
少なくても 1 つの外部テーブルにマテリアライズドビューを使用している場合、マテリアライズドビューの作成は、次のものに対して増分となります。
-
標準データレイクテーブル (パーティション化あり/なし)、サポートされている任意の形式 (Parquet、Avro、CSV など) のデータファイル。
-
Apache Iceberg テーブル (パーティション化あり/なし) は、コピーオンライトとマージオンリードです。
-
Amazon Redshift Spectrum テーブルは、同じデータベース内の任意の Amazon Redshift テーブルと結合します。
マテリアライズドビューは、次のものに対して増分となります。
-
マテリアライズドビューで集約を実行しない場合、S3 DELETE または PUT 上書き (データファイルの削除) 後の標準データレイクテーブル。
-
INSERT、DELETE、UPDATE、またはテーブル圧縮後の Apache Iceberg テーブル。
Amazon Redshift Spectrum の詳細については、「Amazon Redshift Spectrum」を参照してください。
制限
データレイクテーブルのマテリアライズドビューには、引き続き、マテリアライズドビューに関する一般的な制限が適用されます。詳細については、「マテリアライズドビューの更新」を参照してください。また、外部データレイクテーブルでマテリアライズドビューを使用する場合は、次の制限を考慮してください。
-
マテリアライズドビューの作成では、次のものは増分されません。
-
Hudi または Delta Lake テーブル。
-
ネストされた Spectrum のデータアクセス。
-
VARBYTE 列への参照。
-
-
マテリアライズドビューの更新は、次の場合に完全な再計算にフォールバックします。
-
マテリアライズドビューが集約を実行する場合、必要なスナップショットが期限切れになった Apache Iceberg テーブル。
-
マテリアライズドビューが集約を実行する場合、Amazon S3 のデータファイルの削除または更新後の標準データレイクテーブル。
-
トランザクションブロックで複数回更新された標準データレイクテーブル。
-
マニフェストによって管理される標準データレイクテーブル。マニフェストの詳細については、「マニフェストを使用し、データファイルを指定する」を参照してください。
-
Amazon Redshift は、パフォーマンスがさらに向上すると予想される場合、特に、結合を含むマテリアライズドビューで、最後の更新以降に 1 つ以上のベーステーブルが更新された場合、完全な再計算にフォールバックします。
-
-
Apache Iceberg テーブルでは、マテリアライズドビューの更新は、1 つのデータファイルで削除された最大 400 万の位置までしか処理できません。この制限に達した場合、マテリアライズドビューの更新を続行するには、Apache Iceberg ベーステーブルを圧縮する必要があります。
-
Apache Iceberg テーブルでは、マテリアライズドビューの作成および更新時に同時実行スケーリングはサポートされていません。
-
Autonomics 機能はサポートされていません。これには、自動マテリアライズドビュー、自動更新 、自動クエリ書き換えが含まれます。
-
増分マテリアライズドビューが更新されると、IAM アクセス許可は Amazon Redshift ベーステーブルのアクセス部分にのみに適用されます。
-
Lake Formation が管理するアクセス許可での変更内容は、マテリアライズドビューのクエリでは検証されません。つまり、マテリアライズドビューがデータレイクテーブルで定義されていて、Lake Formation を使用してテーブルから SELECT 権限を削除した場合でも、マテリアライズドビューをクエリできます。