制限事項
外部テーブルには、以下の制限が適用されます。サポートされているエンジンバージョン、インスタンスクラス、リージョンについては、「Aurora PostgreSQL での Apache Iceberg と Parquet データの直接クエリ」を参照してください。
データの変更
-
読み取り専用アクセス: これらの外部テーブルは読み取り専用です。外部テーブルに対する
INSERT、UPDATE、DELETE、TRUNCATE、およびCOPY FROMオペレーションはサポートされていません。データを変更するには、Amazon S3 のソースファイル (Parquet の場合) を更新するか、AWS Glue またはその他のツールを使用して Iceberg テーブルを更新します。 -
行ロックは効果がありません: クエリに
FOR UPDATE、FOR NO KEY UPDATE、FOR SHARE、およびFOR KEY SHAREのロック句を含めることができ、クエリが実行されて行が返されます。これは、この機能に固有のものではなく、PostgreSQL 外部データラッパーの標準的な動作です。
データ形式とスキーマ
-
Amazon S3 マルチリージョンアクセスポイントはサポートされていません: 外部テーブルの場所は、
s3://URI、AWS Glue Data Catalog ARN、または Amazon S3 Tables ARN です。Amazon S3 マルチリージョンアクセスポイント (MRAP) ARN とホスト名は、外部テーブルの場所としてサポートされていません。 -
データ型の制限: 一部の PostgreSQL データ型にはサポートされているマッピングがありません。
JSONB、SERIAL、配列タイプ、ネットワークタイプ、範囲タイプ、ジオメトリタイプ、およびXMLはサポートされていません。詳細については、「データ形式と型マッピング」を参照してください。 -
列名の長さの制限: Parquet または Iceberg メタデータから推測される列名は 63 文字 (PostgreSQL の
NAMEDATALENの制限) を超えることはできません。 -
大文字と小文字を区別しない列名の衝突: 外部テーブルには、ASCII 文字の大文字と小文字のみで異なる 2 つの列名を含めることはできません (例:
"Foo"および"foo")。基になるデータにこのような列が含まれている場合は、ソースデータで名前を変更します。 -
照合制限: 外部テーブル列定義では
CおよびICU照合のみがサポートされています。外部テーブル列では、libc 照合 (en_USなど) とカスタム照合はサポートされていません。クエリでは式レベルで libc 照合順序を使用できますが、これによりプッシュダウン最適化の効果が低下する可能性があります。
クエリの実行
-
クエリあたりの単一リージョンのデータアクセス: 1 つのクエリで複数の AWS リージョンのデータにアクセスすることはできません。クエリでアクセスされるすべての Amazon S3 データは、同じリージョンに存在する必要があります。
-
システム列にアクセスできません: Aurora PostgreSQL は、外部テーブルの PostgreSQL システム列 (
ctid、xmin、xmax、cmin、cmax、およびtableoid) をサポートしていません。参照すると、エラー[Aurora Analytics] system column is not supportedが返されます。
インフラストラクチャ
-
再起動時にキャッシュは保持されない: DB インスタンスが再起動またはフェイルオーバーすると、ディスク上の読み取りキャッシュはクリアされます。後続のクエリは Amazon S3 からデータを再取得します。
-
サーバーレススケーリングに関する考慮事項: Aurora Serverless v2 デプロイでは、複数のリソース集約型分析クエリを同時に実行すると、DB インスタンスのスケールアップが追いつかなくなる可能性があります。