Athena Query Trap Sizer

Amazon Athena charges $5.00 per TB scanned. Model the financial destruction of a full table scan.

0% (Full Scan)0% filtered out100% (Pinpoint)

Actual Monthly Bill

$75,000
๐Ÿšจ CATASTROPHIC SPEND ALERT: Running 50 queries per day across a 10TB dataset with NO partitions means Athena scans the entire dataset every single time.

How Much Does an Athena Query Cost?

Amazon Athena has no servers to provision โ€” it bills purely on data scanned, at $5.00 per TB (us-east-1), rounded up to a 10MB minimum per query. There's no charge for DDL statements (like CREATE TABLE) or failed queries, but a poorly shaped SELECT * over an unpartitioned table can scan โ€” and pay for โ€” the entire dataset on every single run, even if the result set is tiny.

Does Parquet Compression Reduce Athena Costs?

Yes, substantially. Athena bills for bytes read from S3, so anything that shrinks those bytes shrinks the bill directly. Converting CSV to compressed, columnar Parquet attacks the cost from two angles at once: compression (typically Snappy) reduces the raw bytes stored, and Parquet's columnar layout means a query that only selects 3 of your 50 columns only reads those 3 columns' data blocks โ€” not the whole row.

Format Layout Typical Size vs Raw CSV Why It's Cheaper to Scan
CSV (uncompressed) Row-based 100% (baseline) Every column of every row is read, always
CSV + GZIP Row-based, compressed ~20โ€“30% Fewer bytes on disk, but still full-row reads
Parquet + Snappy Columnar, compressed ~10โ€“25% Compressed and only touched columns are read

What the "Partition Filtering Efficiency" Slider Models

The calculator above models any technique that reduces bytes scanned per query as a single "efficiency" percentage โ€” because in practice, partitioning and Parquet compound rather than compete. Partitioning (e.g. by date or region) lets Athena skip entire S3 prefixes before it opens a single file; Parquet's columnar compression then shrinks how much of each remaining file gets read. A table partitioned by day and stored as Parquet routinely cuts scanned data โ€” and cost โ€” by 95%+ compared to an unpartitioned CSV table queried with SELECT *.