- a table bucket (not a normal S3 bucket)
- a namespace (similar to a database)
- an Iceberg table (with a simple schema)
Prerequisites
- AWS CLI v2 installed and configured with credentials (AK/SK), plus permissions to use S3 Tables.
- A region that supports Amazon S3 Tables.
- (Optional)
duckdbinstalled locally for verification.
Key concepts
- Table bucket: the top-level container in S3 Tables. It has an ARN like:
arn:aws:s3tables:<region>:<account-id>:bucket/<table-bucket-name>
- Namespace: a logical container inside a table bucket (think “database”).
- Namespace name is restricted: lowercase letters, digits, underscore.
- Table: an Iceberg table inside a namespace.
Step-by-step: create bucket + namespace + table
Step 0: Set variables
Step 1: Verify your AWS CLI supports s3tables
Step 2: Create a table bucket
Step 3: Create a namespace
Step 4: Create a table schema file (Iceberg)
Step 5: Create the Iceberg table
Verify by querying with DuckDB
This step is useful if you want a quick “does the table exist?” validation locally.Cleanup
Run the following when you’re done:Next: use this table in RisingWave
- If you want RisingWave to create internal Iceberg tables while using S3 Tables as the catalog, see:
- If you want RisingWave to write to or read from this table as an external table, see: