If you searched "S3 Select alternative" or "S3 Select deprecated", the news is real: AWS is phasing out S3 Select, the feature that let you run a SQL SELECT against a single S3 object via the SelectObjectContent API. It is closed to new customers, and existing users are pointed elsewhere. Here is where "elsewhere" is.
What S3 Select did
One API call ran SQL over one object (JSON, CSV or Parquet) and returned only the matching rows — handy for pulling a slice out of a big file without downloading it whole.
SELECT s.name FROM S3Object[*] s WHERE s.active = true
The alternatives, by scale
1. Amazon Athena — SQL across many objects. Serverless, standard SQL, queries a whole prefix or table at once (backed by the Glue catalog). This is the intended replacement when you were using S3 Select at any real scale. You pay per data scanned, so partition and use columnar formats (Parquet) to keep costs down.
2. S3 Object Lambda — transform on GET. If the goal was "return a filtered/reshaped version of the object to the caller", an Object Lambda Access Point runs your function on each GET and returns the transformed bytes. Good when the consumer should keep calling a GET-like API.
3. Client-side querying — one small object. For a single JSON or CSV that fits in memory, just download it and query locally:
jqfor JSON filtering/reshaping.- DuckDB to run real SQL directly over a JSON/CSV/Parquet file — the closest single-file feel to old S3 Select.
aws s3 cp s3://my-bucket/data.json - | jq '[.[] | select(.active == true) | .name]'
How to choose
| Situation | Use |
|---|---|
| SQL across many objects, at scale | Athena |
| Reshape objects for callers on GET | S3 Object Lambda |
| One small JSON/CSV, ad-hoc | Download + jq / DuckDB |
Shaping one JSON config
If you were only using S3 Select to pull and tidy a single JSON config, the client-side path is simplest — and you don't need SQL at all. Pull the object, drop it into the workspace, and describe the slice you want in plain English ("keep only active entries, sort by name"). The AI reshapes the JSON and shows you the diff, no query language required.