1. An analytics team needs to run complex multi-table JOIN queries on a 50 TB data warehouse hosted in Amazon Redshift. A central fact table, `orders`, contains 2 billion rows and is commonly joined to a `customers` dimension table containing 500,000 rows. Queries are slow because of data shuffling across slices. Which combination of distribution strategies will MOST reduce data movement? (Select TWO)
- A. Apply KEY distribution on the `orders` table using the customer_id join column.✓ Correct
- B. Apply ALL distribution on the `orders` fact table.
- C. Apply ALL distribution on the `customers` dimension table.✓ Correct
- D. Apply EVEN distribution on the `orders` table.
- E. Apply KEY distribution on the `customers` table using the order_id column.
Explanation
Options A and C are correct. Applying KEY distribution on the large `orders` fact table using the customer_id join column co-locates matching rows from both tables on the same slice, eliminating network shuffling during joins. Applying ALL distribution on the small `customers` dimension table (500,000 rows) broadcasts a full copy to every slice, ensuring that the join can always be resolved locally. This KEY+ALL pattern is the standard Redshift best practice for large fact-to-small-dimension joins. Option B is wrong because applying ALL distribution to a 2-billion-row fact table would be extremely slow to maintain and consume enormous storage on every node. Option D is wrong because EVEN distribution spreads rows randomly, which does not co-locate join keys and does not eliminate shuffling. Option E is wrong because distributing `customers` on order_id makes no logical sense—customers do not have order_ids as a natural key—and would not co-locate the join.