AWS
S3, Glue, Athena, Redshift — pick the service in sixty seconds
10 questions with solutions
- Q1AmazonTwilioNetflix
S3 + Glue + Athena vs Redshift — how do you choose in sixty seconds?
Solution
Ad-hoc and cheap scans: Athena on partitioned Parquet with a Glue catalog. Concurrent BI and predictable SLAs: Redshift (or Redshift Serverless). Glue is the job runner / catalog, not the warehouse. “Everything in Athena” dies on 40 concurrent dashboards.
- Q2AirbnbLyftPinterest
How do you partition an S3 data lake so Athena does not scan the year?
Solution
Hive-style dt=YYYY-MM-DD (and maybe hour) on the columns you filter. Do not partition on high-cardinality ids (customer_id). Compact tiny files (target ~128–512 MB). Clustering / sort inside the file helps, but partition pruning is the first win.
- Q3AmazonCapital OneJPMorgan
Glue job vs Lambda vs EMR. Who owns a 40-minute Spark transform?
Solution
Lambda is for minutes and megabytes, not Spark. Glue is managed Spark for batch ETL you do not want to babysit. EMR (or EKS + Spark) when you need custom images, long-running clusters, or cheaper reserved capacity. Say the timeout and the data size first.
- Q4AmazonSlackDatadog
Kinesis vs MSK vs SQS. One sentence each.
Solution
SQS: decouple workers, no replay of a stream, competing consumers. Kinesis: managed stream, shards, AWS-native. MSK: Kafka protocol on AWS when you already think in topics and consumer groups. Do not put a 7-day clickstream on SQS.
- Q5AmazonMcKinseyDeloitte
Redshift DISTKEY / SORTKEY (or AUTO). What mistake shows up as a broadcast of a 2 TB table?
Solution
A join on a column that is not the dist key, so every slice shuffles everything. Even in AUTO, a bad mental model (SELECT * fact JOIN huge dim ON a non-selective key) will not be saved by a wizard. Explain slice-local joins in one sentence.
- Q6AWSAccentureSlalom
Lake Formation vs bucket policies. When do you need the extra product?
Solution
Bucket policies are path-coarse. Lake Formation (or a catalog-centric grant model) is for column/row filters across Athena/Redshift Spectrum on the same Glue tables. If you only have two roles and one bucket, IAM is enough. Do not buy a governance product to hide a public bucket.
- Q7AmazonNetflixDatabricks
S3 committers — why did a failed Spark write leave a partial prefix?
Solution
The default committer can list/rename badly on S3. Use a magic committer and an idempotent overwrite of a partition.
- Q8AmazonCapital OneTwilio
Cost tags on Glue/Athena/Redshift. Why do interviewers ask?
Solution
Untagged shared resources become a mystery bill. You should be able to say which DAG spent the credits.
- Q9AmazonJPMorganStripe
CDC from RDS to the lake. Sketch the path.
Solution
DMS or Debezium to Kinesis/MSK, then MERGE into Iceberg/Delta/Redshift. A nightly dump is not CDC.
- Q10AmazonAccentureSlalom
Public bucket plus “we will add Lake Formation later.”
Solution
Close public access first. LF does not excuse a public prefix. Encryption and logging are next.