--exclude-columns col1,col2flag to skip columns from generated INSERTs so the DB applies the column'sDEFAULTexpression (e.g.gen_random_uuid(),CURRENT_TIMESTAMP). Source records must still contain these columns in their original positions; the loader drops them by index before batching. Cannot be combined with--if-not-exists.
Rewrite in Rust with 3-5x throughput improvement and new features.
- Parquet and TSV file support
- S3 URI support (load directly from S3)
- Auto-detection of file format and AWS region
- Real-time progress bars with throughput metrics
- Resumable loads with manifest tracking
- Automatic retries and error handling
- Dry run mode and column mapping
- Quiet mode for scripting
- Breaking: New CLI (see migration below)
- Breaking: Uses AWS SDK for authentication (no manual token generation)
- Requires Rust 1.85+ to build
- Python v1 implementation
PGHOST,PGUSER,PGPASSWORDenvironment variables
Old (Python):
PGUSER=admin \
PGHOST=xxxx.dsql.us-east-1.on.aws \
PGPASSWORD="$(aws dsql generate-db-connect-admin-auth-token --hostname $PGHOST --region us-east-1)" \
./aurora-dsql-loader.py \
--filename data.csv \
--tablename my_table \
--threads 10New (Rust):
aurora-dsql-loader load \
--endpoint xxxx.dsql.us-east-1.on.aws \
--source-uri data.csv \
--table my_tableKey CLI changes:
--filename→--source-uri(now supports S3)--tablename→--table--threads→--workers--host,--user,--password→--endpoint(AWS SDK handles auth)--delim→--format csv|tsv|parquet(or auto-detect)
Initial Python implementation.