Aurora DSQL でサポートされていない PostgreSQL 機能 - Amazon Aurora DSQL

Aurora DSQL でサポートされていない PostgreSQL 機能

Aurora DSQL は PostgreSQL と互換性があります。つまり、Aurora DSQL は ACID トランザクション、セカンダリインデックス、結合、挿入、更新などのコアリレーショナル機能をサポートしています。サポートされている SQL 機能の概要については、「Supported SQL expressions」を参照してください。

以下のセクションでは、Aurora DSQL で現在サポートされていない PostgreSQL 機能について説明します。

サポートされていないオブジェクト

Aurora DSQL でサポートされていないオブジェクトは次のとおりです。

  • 単一の Aurora DSQL クラスター上の複数のデータベース

  • 一時テーブル

  • トリガー

  • 型 (部分的なサポート)

  • テーブルスペース

  • SQL 以外の言語で記述された関数

  • シーケンス

  • パーティション

サポートされていない制約

  • 外部キー

  • 排他制約

サポートされていないコマンド

  • ALTER SYSTEM

  • TRUNCATE

  • SAVEPOINT

  • VACUUM

    注記

    Aurora DSQL はバキューム処理を必要としません。システムは統計を維持し、手動バキュームコマンドを使用せずにストレージの最適化を自動的に管理します。

サポートされていない拡張機能

Aurora DSQL は PostgreSQL 拡張機能をサポートしていません。以下の表は、サポートされていない拡張機能を示しています。

  • PL/pgSQL

  • PostGIS

  • PGVector

  • PGAudit

  • Postgres_FDW

  • PGCron

  • pg_stat_statements

サポートされていない SQL 式

次の表は、Aurora DSQL でサポートされていない句を示しています。

カテゴリ プライマリ句 サポートされていない句

CREATE

INDEX ASYNC

ASC | DESC

CREATE

INDEX 1

TRUNCATE

ALTER

SYSTEM

すべての ALTER SYSTEM コマンドがブロックされます。

CREATE

TABLE

COLLATE, AS SELECT, INHERITS, PARTITION

CREATE

FUNCTION

LANGUAGE non-sql-langnon-sql-langSQL 以外の言語です。

CREATE

TEMPORARY

TABLES

CREATE

EXTENSION

CREATE

SEQUENCE

CREATE

MATERIALIZED

VIEW

CREATE

TABLESPACE

CREATE

TRIGGER

CREATE

TYPE

CREATE

DATABASE

追加のデータベースを作成することはできません。

1 指定したテーブルの列にインデックスを作成するには、「Aurora DSQL の非同期インデックス」を参照してください。

PostgreSQL 互換性に関する Aurora DSQL の考慮事項

Aurora DSQL を使用する場合は、次の互換性の制限を考慮してください。一般的な考慮事項については、「Amazon Aurora DSQL の使用に関する考慮事項」を参照してください。クォータと制限については、「Amazon Aurora DSQL のクラスタークォータとデータベース制限」を参照してください。

  • Aurora DSQL は、postgres という名前の単一の組み込みデータベースを使用します。追加のデータベースを作成することや、postgres データベースを名前変更、削除することはできません。

  • postgres データベースは UTF-8 文字エンコードを使用します。エンコードを変更することはできません。

  • データベースは C のみを使用します。

  • Aurora DSQL はシステムのタイムゾーンに UTC を使用します。パラメータまたは SET TIMEZONE などの SQL ステートメントを使用してタイムゾーンを変更することはできません。

  • トランザクション分離レベルは PostgreSQL Repeatable Read で固定されています。

  • トランザクションには次の制約があります。

    • トランザクションでは DDL オペレーションと DML オペレーションを混在させることはできません。

    • トランザクションに含めることができる DDL ステートメントは 1 つのみです。

    • トランザクションは、セカンダリインデックスの数に関係なく、3,000 行まで変更できます。

    • 3,000 行の制限は、すべての DML ステートメント (INSERTUPDATEDELETE) に適用されます。

  • データベース接続は 1 時間後にタイムアウトします。

  • Aurora DSQL では現在、GRANT [permission] ON DATABASE を実行できません。そのステートメントを実行しようとすると、Aurora DSQL はエラーメッセージ ERROR: unsupported object type in GRANT を返します。

  • Aurora DSQL は、管理者以外のユーザーロールに CREATE SCHEMA コマンドの実行を許可しません。GRANT [permission] on DATABASE コマンドを実行して、データベースに対する CREATE アクセス許可を付与することはできません。管理者以外のユーザーロールがスキーマを作成しようとすると、Aurora DSQL はエラーメッセージ ERROR: permission denied for database postgres を返します。

  • 管理者以外のユーザーは、パブリックスキーマにオブジェクトを作成できません。パブリックスキーマにオブジェクトを作成できるのは、管理者ユーザーのみです。管理者ユーザーロールには、これらのオブジェクトへの読み取り、書き込み、変更のアクセス許可を管理者以外のユーザーに付与する権限がありますが、パブリックスキーマ自体に CREATE アクセス許可を付与することはできません。管理者以外のユーザーは、オブジェクトの作成に、ユーザーが作成した別のスキーマを使用する必要があります。

  • Aurora DSQL は ALTER ROLE [] CONNECTION LIMIT コマンドをサポートしていません。接続制限の引き上げが必要な場合は、AWS サポートにお問い合わせください。

  • Aurora DSQL は、Python 用の非同期 PostgreSQL データベースドライバーである asyncpg をサポートしていません。