CREATE FOREIGN TABLE statement for a successful Iceberg or S3 Parquet destination. Run the copied SQL yourself in your Aurora PostgreSQL database. Planasonix never connects to your Aurora cluster or changes its configuration.
Aurora’s aurora_analytics extension reads Parquet and Iceberg data from S3 without copying it into PostgreSQL. The foreign table is read-only; joins with local PostgreSQL tables use ordinary SQL. See AWS’s foreign table reference.
Before you begin
-
Confirm engine support in your Region. AWS currently documents Aurora PostgreSQL 17.11 or higher and 18.6 or higher for
aurora_analytics. Check AWS’s Aurora analytics troubleshooting guidance and your Region before upgrading or planning a rollout; support changes over time. -
Grant the cluster read access to only the data it needs. Create an IAM policy scoped to the relevant bucket prefixes, Glue table, or S3 Tables table. Create a role trusted by
rds.amazonaws.com, attach the policy, then attach the role to your Aurora cluster with featureAuroraAnalytics. For an S3 directory or wildcard path, AWS requiress3:GetObjectands3:ListBucket; an Iceberg table in Glue requiresglue:GetTableand S3 object access. SSE-KMS data also needskms:Decrypton its key. See AWS’s Aurora analytics prerequisites and least-privilege IAM examples. - Provide network access. For clusters in private subnets, configure VPC connectivity to S3 and, when using Glue, Glue. AWS recommends the corresponding S3 gateway and Glue interface endpoints.
-
Enable the extension at the cluster level. In a custom DB cluster parameter group, set
aurora_analytics.enabledtotrue. AWS documents this parameter as dynamic. If you must associate a new parameter group, that association can require a reboot. -
Install the extension in each target database. Connect to the database as a role with the required extension privilege and run:
The extension creates the
aurora_analytics_serverforeign server. To create a foreign table, the database role needsCREATEon the target schema andUSAGEon that server.
Generate and run the SQL
After a successful Planasonix load, expand the destination node in Run History and open Query from Aurora. Enter the PostgreSQL schema and foreign table name, the exact S3 prefix or catalog ARN, and the AWS Region. Review the generated statement, copy it, then run it in your own Aurora client. For Parquet partition layouts, provide the directory or wildcard path Aurora should scan, for example:version-hint.text or identify a metadata JSON file) or use its Glue/S3 Tables catalog ARN. A warehouse root alone may not identify an Iceberg table. AWS documents the location forms and format rules in Working with foreign tables.
Operational limits
- Foreign tables are read-only. Writes and table changes happen through the source lake system; PostgreSQL
INSERT,UPDATE,DELETE, andTRUNCATEare unsupported. - The first read can be cold and may take tens of seconds. Repeated reads may benefit from Aurora’s local read cache.
- Analytics queries share Aurora instance CPU and memory with application traffic. For heavy analytical work, AWS recommends using a reader instance. Monitor your workload before enabling broad access.
aurora_analytics.query_memcaps memory available to one analytics query. AWS derives a default from instance memory; increasing the cap can help a large query while reducing safe concurrency. Tune it for your workload, preferably at the narrowest useful scope, and check AWS’s configuration parameter guidance.- Keep the foreign table definition aligned with changes to the source schema. Aurora schema inference and supported type mappings have documented limitations.