skip to content

Amazon Redshift

3 roadmaps31 questionsupdated

Redshift is AWS's MPP warehouse with real nodes and slices, where distribution and sort keys remain my responsibility rather than the service's. Interviewers use it to test physical-design reasoning that fully managed warehouses hide.

on this pageshow

guide

overview

~1 min

Amazon Redshift is a columnar, massively parallel data warehouse on AWS. Unlike warehouses that hide the hardware, it leaves physical design in your hands: how rows are spread across the cluster and in what order they sit on disk still decide whether a query reads a handful of blocks locally or ships a whole table across the network. Interviewers use it to test exactly that reasoning — can you read a plan, spot data movement or a lopsided slice, and name the table change that fixes it — and to check that you treat it as an analytical engine, not a transactional database. The hub follows the life of a query. [Cluster architecture and RA3](/topics/db-redshift-architecture) covers the leader node, compute nodes and slices that every later answer refers back to. [Distribution and sort keys](/topics/db-redshift-distribution-sort-keys) is the physical design at the centre of most Redshift rounds. [Loading, UNLOAD and upserts](/topics/db-redshift-loading-transforming) is how data enters and leaves in bulk. [Spectrum and external data](/topics/db-redshift-spectrum-federation) reaches past the cluster to files in S3 and to live operational databases. [WLM and concurrency scaling](/topics/db-redshift-wlm-concurrency) decides who runs when BI, ETL and ad-hoc work share one cluster. Junior rounds check the vocabulary: slices, distribution styles, why `COPY` beats `INSERT`. Senior and principal rounds turn into diagnosis and design — a pegged node, a dashboard that waits rather than runs, a fact table joining several dimensions — where you are expected to name the system view you would check and the trade-off you would accept. Learn slices first, then the two keys; everything else in the hub is tuned against them.

primer

### Parallel by slice A cluster is a leader node that plans and assembles results, plus compute nodes that do the work. Each compute node is split into slices, and every table is spread over all of them. Each query step runs once per slice, so the cluster finishes only when its slowest slice does. Most Redshift performance answers trace back to that sentence. ### Moving data is the expensive part When rows that must meet in a join live on different slices, Redshift has to re-hash or copy one side across the network first. The distribution style decides where each row lands, and it is chosen per table, for the join that matters most. A strong answer says which join gets co-located and which ones pay for movement. ### Columnar blocks and zone maps Each column is stored compressed in fixed-size blocks, and Redshift remembers the smallest and largest value in every block. A sort key orders rows so those ranges stay narrow, letting a filter skip blocks without reading them. Pruning depends on the data staying sorted, which incremental loads slowly erode. ### Bulk in, bulk out The engine is built for set operations over many rows. Data arrives in parallel from files, changes are applied as batches through a staging table, and exports write from every slice at once. Anything row-at-a-time — single inserts, per-row updates — fights both the storage format and the commit path. ### Storage and compute, partly separated On RA3 and Serverless the durable data lives in managed storage while local disks hold hot blocks, so compute is sized for the workload rather than for the data. Spectrum goes a step further and queries files that never enter the cluster. Each step outward gives up control over physical layout in exchange for flexibility and a different bill. ### Concurrency is a budget Memory and execution slots are finite, and workload management decides how they are shared. A slow dashboard may be queueing rather than running slowly — a different problem with a different fix. Extra capacity helps queries that wait; it does nothing for one query that is already running.

Leader node
The single node clients connect to. It plans and compiles each query, hands the steps to compute nodes and assembles their partial results into the final answer.
Slice
One of the parallel workers inside a compute node, with its own share of memory and disk. Rows are assigned to slices, and query steps run once per slice.
Distribution style
The per-table rule that places rows on slices: KEY hashes a column, ALL copies the table to every node, EVEN spreads rows round-robin, AUTO lets Redshift choose.
DISTKEY
The column whose hash picks a row's slice under KEY distribution. Two tables distributed on their shared join column can join without moving rows.
Sort key
One or more columns that define the on-disk order of a table's rows, so filters on those columns can skip blocks. Compound and interleaved are the two kinds.
Zone map
The minimum and maximum value Redshift records for every block, used to skip blocks a filter cannot match.
Data skew
Uneven row counts across slices, usually from a DISTKEY with few distinct values, hot values or many NULLs. The fullest slice sets the pace of every query.
Data redistribution
Plan steps that re-hash or broadcast rows between nodes so a join or aggregation can proceed. EXPLAIN labels them with DS_ prefixes.
RA3 managed storage
The RA3 storage model: durable data lives in S3-backed managed storage and local SSDs hold the working set, so storage grows without adding nodes.
Redshift Spectrum
A query layer that reads files in S3 through external tables registered in a data catalog, without loading them into the cluster.
Workload management (WLM)
The scheduler that routes queries to queues, controls their concurrency and memory, and applies priorities and query monitoring rules.
Concurrency scaling
Transient extra clusters Redshift adds during bursts to run eligible queued queries, then removes once the queue drains.
VACUUM
Maintenance that reclaims space left by deleted rows and merges newly loaded, unsorted rows into sort order so block skipping works again.

Follow one table from load to query. A batch lands in S3 as many files; `COPY` splits them across slices, and each slice writes compressed column blocks for the rows its distribution style sends there. New rows are appended unsorted until a vacuum, automatic or manual, folds them into sort order. A dashboard query then connects to the leader node, which plans it against table statistics, and WLM decides whether it runs now, waits in a queue, or is sent to a concurrency-scaling cluster. On the compute nodes each slice scans only the blocks its zone maps cannot rule out, joins locally where tables share a DISTKEY or one side is replicated, and moves rows where they do not. The leader assembles the partial results and returns them. The rest of the hub attaches to that path. Spectrum and federated queries widen the scan step beyond the cluster: Spectrum reads S3 in a separate fleet and hands filtered rows back, where the join happens, so file format and partitioning decide what it reads. UNLOAD runs the path in reverse, and on RA3 managed storage sits under the blocks, filling the local cache on demand. The physical design is declared on the tables themselves, and the load is shaped to match it: ```sql -- two large tables distributed on their join column: the join stays on each slice CREATE TABLE orders (order_id BIGINT, customer_id BIGINT, order_date DATE) DISTKEY (order_id) SORTKEY (order_date); CREATE TABLE order_lines (order_id BIGINT, sku VARCHAR(32), amount DECIMAL(12,2), order_date DATE) DISTKEY (order_id) SORTKEY (order_date); -- small dimension replicated to each node: joins to it never move rows CREATE TABLE customers (customer_id BIGINT, region VARCHAR(32)) DISTSTYLE ALL; -- many files under one prefix, split across slices COPY order_lines FROM 's3://example-bucket/order_lines/2026-09-28/' IAM_ROLE DEFAULT FORMAT AS PARQUET; ``` Every choice here has a price. A query joining `order_lines` to another large table on `sku` would redistribute; a handful of huge orders would skew one slice; and date filters prune well only while new rows keep getting sorted in.

  1. Cluster Architecture & RA3 →

    Leader, compute nodes and slices: the model every tuning answer refers back to, plus RA3 storage and Serverless.

  2. Distribution & Sort Keys →

    The two table-level choices that decide data movement and block skipping, and the most probed part of any Redshift round.

  3. Loading, UNLOAD & Upserts →

    How data gets in and out in bulk, and why upserts go through a staging table instead of row updates.

  4. WLM & Concurrency Scaling →

    Keeping mixed BI and ETL workloads responsive once single queries are fast: queues, priorities, memory and burst capacity.

  5. Spectrum & External Data →

    Querying S3 files and live databases from the cluster, and deciding what stays external versus what gets loaded.

  • Treating Redshift like an OLTP database: row-by-row inserts and updates pay a commit each and leave blocks half-empty, so batch through COPY and a staging table.

  • Choosing a DISTKEY for high cardinality alone, without checking that it matches a large, frequent join or that no hot value or NULL piles rows onto one slice.

  • Promising co-location for every join of a fact table: a table has one DISTKEY, so say which join it serves and how the others are handled.

  • Assuming primary and foreign keys are enforced: Redshift uses them only as planner hints, so duplicates load silently and a false declaration can produce wrong results.

  • Offering more nodes or concurrency scaling for one slow query; extra clusters only absorb queued work, and a skewed query stays skewed on a bigger cluster.

  • Tuning SQL for a slow dashboard before splitting its time into queue wait and execution — see diagnosing queue time.

  • Pointing Spectrum at a few huge compressed CSV files and expecting cluster size to help — see file layout and splits.

Redshift has no release numbers a candidate is expected to quote; AWS patches it continuously. What interviewers ask about is how recommended practice shifted, because many clusters and older answers predate it. This guide assumes RA3 nodes or Serverless, automatic WLM, and tables created with the current defaults. - **Storage model.** DC2 and earlier node types kept data on local disks, so data volume dictated node count. RA3 moved the durable copy into managed storage, and Serverless removed cluster sizing altogether. - **Workload management.** Hand-tuned manual WLM queues with fixed slots and memory gave way to automatic WLM steered by priorities. - **Physical design.** Tables created without an explicit distribution style or sort key now get AUTO, and Redshift can change them over time; vacuum and analyze also run in the background. Interviewers still test the reasoning AUTO applies. - **Upserts.** The staging-table pattern once ended in `DELETE ... USING` plus `INSERT`; a native `MERGE` statement now does the same in one step. When an answer depends on one of these, say which world you are describing.

Redshift sits in AWS's analytics stack and is usually placed against two kinds of neighbour. Among cloud warehouses it competes with Snowflake, Google BigQuery and Databricks SQL. The separating trade-off is control: Redshift exposes nodes, slices and key choices and rewards teams that tune them, while the others manage physical layout and scale compute with less for you to decide. Serverless narrows that gap without removing the key choices. Inside AWS it is weighed against Amazon Athena, which queries the same S3 files through the same Glue Data Catalog with no cluster at all. Athena fits occasional, ad-hoc exploration of a lake; Spectrum fits when those files must be joined with data already in Redshift. Around the warehouse sit S3 as the lake, Glue for the catalog and ETL, Kinesis and Amazon MSK for streaming ingestion, and tools such as dbt that run SQL models inside the warehouse. Operational data stays in RDS or Aurora, reached through federated queries or replicated in.

explore

report an issue with this guide →

questions

page 1 of 2

In an Amazon Redshift provisioned cluster, what does the leader node do that compute nodes do not?

level: juniorimportance: must knowfreq 80%

answer

  1. One node talks to clients
  2. Planning happens in exactly one place
  3. User data lives only on compute nodes
  4. Final merge is single-threaded on the leader

basics

~20 s

The leader node is the only node clients connect to: it parses SQL, builds and compiles the execution plan, ships code to the compute nodes, and merges their partial results. Compute nodes store the data and execute plan segments in parallel.

solid answer

~50 s

A provisioned Redshift cluster is one leader node plus one or more compute nodes. The leader owns the client endpoint and everything single-threaded about a query: parsing, catalog lookup, optimization, compiling plan segments into executable code, distributing that code to the compute nodes, and performing the final merge of the partial results they send back. It stores **no user table data**. Compute nodes are divided into slices; each slice holds a portion of every table's rows and runs the plan segments over its own data in parallel, exchanging rows with other nodes when a join or aggregation needs it. Queries that touch only catalog tables run entirely on the leader. The practical consequence is that anything which funnels many rows through the leader — an unaggregated `SELECT *`, a final `ORDER BY` over a huge result — serializes on one machine and is where naive Redshift queries fall over.

code

sql · 7 lines
sql
-- Every row funnels through the single leader node
SELECT * FROM events ORDER BY event_ts;

-- Compute nodes aggregate in parallel; the leader merges a few rows
SELECT event_type, COUNT(*)
FROM events
GROUP BY event_type;

go deeper

for a junior

Be able to draw the box diagram: one leader node the client connects to, several compute nodes holding the data. Know that the leader stores no user table data.

for a middle

Explain what the leader actually produces — a parsed, optimized, compiled plan — and how compiled-code caching creates a slow first run. Describe how compute nodes execute segments over their own slices.

for a senior

Show that you diagnose from the architecture: identify plan shapes whose cost lands on the single leader (unaggregated result sets, final sorts, connection counts) and prescribe the fix, such as aggregating in-cluster or unloading to S3.

for a principal

Frame the leader as the cluster's serialization point and a shared resource across every workload on it, and reason about when that argues for splitting workloads across separate compute rather than adding nodes to one cluster.

## What a cluster is made of A provisioned Amazon Redshift cluster consists of exactly one **leader node** and one or more **compute nodes** connected by a fast private network. Clients — JDBC/ODBC drivers, BI tools, `psql` — connect only to the leader's endpoint; compute nodes are not reachable from outside. In a multi-node provisioned cluster you are billed for compute node hours; the leader node hours are not charged. ## What the leader node does The leader node performs all the coordination work of a query: - **Parse and validate.** It parses the SQL and resolves table and column names against the system catalog it maintains. - **Optimize.** It produces a distributed execution plan: join order, join method, and — crucially for an MPP engine — whether each join input must be broadcast to every node or redistributed on the join key. - **Compile.** Redshift does not interpret plans row by row; it generates and compiles native code for the plan's segments. Compiled segments are cached, so the *first* execution of a brand-new query shape can be noticeably slower than the second. A large scale-out compilation service backs this, but the effect still shows up in cold benchmarks. - **Distribute.** It sends the compiled segments to every compute node, along with any small pieces of data the plan needs. - **Merge and return.** It receives partial results from the nodes, performs the final aggregation, merge-sort or limit, and streams rows back to the client. The leader also runs **leader-only queries**: statements that reference only catalog tables (the `PG_*` catalog, some `STV_`/`SVV_` views) or leader-only functions never reach the compute nodes. This is the source of a classic Redshift error when someone uses a leader-only function against a user table in the same query — the plan cannot be split, and Redshift refuses it. ## What compute nodes do Each compute node is subdivided into **slices**, and each slice is an independent worker with its own share of the node's memory and disk. A table's rows are spread across all the slices in the cluster according to its distribution style, and every slice runs the same compiled segment over the rows it owns. Compute nodes: - scan, filter, aggregate, join and sort their own data; - exchange rows directly with each other over the interconnect when a step requires redistribution or broadcast; - send only their partial results to the leader. Because slices work independently, the wall-clock time of a step is set by the *slowest* slice, not the average one — which is why uneven data placement hurts so much in this architecture. ## Single-node clusters On a single-node cluster, the one node plays both roles: it is leader and compute simultaneously. This is fine for development and tiny datasets, but it means no cross-node parallelism, and it is not how production clusters are shaped. ## RA3 does not change the split On RA3 node types the authoritative copy of the data lives in Redshift Managed Storage rather than only on node-local disk, and local SSD becomes a cache. The leader/compute division of labour is exactly the same: the leader still plans and merges, compute nodes still own slices and execute segments. ## Why the split shows up in everyday SQL Several common performance surprises trace directly back to this architecture: - **Huge result sets.** Every returned row passes through the single leader node. `SELECT * FROM fact_events;` against a billion rows makes a 16-node cluster behave like a one-machine funnel. Aggregate on the cluster, or use `UNLOAD`, which writes to S3 in parallel straight from the slices without routing rows through the leader. - **Final sorts.** An `ORDER BY` at the top of a plan is merged on the leader; with a `LIMIT` that is cheap, without one it is not. - **Connection pressure.** Sessions and their state live on the leader, and a cluster has a finite connection limit, so hundreds of idle pooled connections are a leader-side cost, not a compute-side one. - **First-run latency.** A dashboard whose SQL text changes on every run (inlined literals instead of parameters) keeps missing the compiled-code cache. ## What an interviewer is listening for That you can say *one leader, many compute nodes, slices underneath the compute nodes*, that the leader holds no user data, and that you can name at least one query shape whose cost is explained by the leader being a single point of serialization.

  • Why can returning a very large result set be slow even on a large Redshift cluster?
    Every row travels back through the single leader node, which merges the compute nodes' partial results and streams them to the client. That step is not parallel, so cluster size does not help. Aggregate or sample on the cluster, or use UNLOAD to S3, which writes in parallel directly from the slices and bypasses the leader entirely.
  • Why is the first execution of a new query shape sometimes much slower than the second?
    Redshift's leader node compiles the plan's segments into executable code before shipping them to the compute nodes. That compilation happens once per query shape and the result is cached, so repeats are fast. Queries that inline literals instead of using parameters change shape every run and keep missing the cache.
  • What happens to the leader/compute split on a single-node Redshift cluster?
    The single node performs both roles: it plans, compiles and merges like a leader, and stores and scans data like a compute node. It is useful for development, but there is no cross-node parallelism and no isolation between coordination work and scan work.

The leader is a conductor: it reads the score, hands each section its part, and cues the final chord — but it never plays an instrument or holds any of the sheet music the orchestra is reading from.

saying these in an interview costs you the question

  • Claiming the leader node stores a copy of the data
  • Saying compute nodes plan their own queries independently
  • Thinking clients connect directly to compute nodes
  • Assuming a bigger cluster speeds up returning millions of rows
  • Confusing the leader node with a WLM queue or a coordinator process per query

context

open as a page

In Amazon Redshift, what do the DISTSTYLE options KEY, ALL, EVEN and AUTO do?

level: juniorimportance: must knowfreq 85%

basics

~20 s

DISTSTYLE decides how a Redshift table's rows are spread across compute slices. KEY hashes one column so equal values co-locate, ALL puts a full copy on every node, EVEN round-robins rows, and AUTO lets Redshift pick and change it.

open as a page

Why is loading Redshift with COPY from S3 faster than many single-row INSERT statements?

level: juniorimportance: must knowfreq 75%

basics

~20 s

COPY reads many S3 files at once across all node slices, applies compression, and commits once. Single-row INSERTs pay a commit each and leave 1 MB column blocks nearly empty, so the load crawls and storage balloons.

open as a page

In Amazon Redshift, what does Spectrum let you query, and what must you create first?

level: juniorimportance: must knowfreq 70%

basics

~20 s

Redshift Spectrum runs ordinary SQL directly against files in S3 without loading them into the cluster. Before querying you create an external schema that points at a data catalog database and an IAM role, then define external tables over S3 prefixes.

open as a page

In Amazon Redshift, what is a node slice and why does the total slice count govern parallelism?

level: middleimportance: must knowfreq 68%

basics

~20 s

A slice is a partition of a compute node's memory and disk that acts as an independent worker. Redshift spreads every table's rows across all slices and runs each plan segment once per slice, so total slices set the cluster's degree of parallelism.

open as a page

What does DS_BCAST_INNER in a Redshift EXPLAIN plan tell you, and how do you remove it?

level: middleimportance: must knowfreq 70%

basics

~20 s

DS_BCAST_INNER means Redshift is copying the entire inner table to every compute node before the join, because the two sides are not co-located. You remove it by giving both tables the same DISTKEY as the join column, or by making the small side DISTSTYLE ALL.

open as a page

A Redshift Spectrum query is billed per terabyte scanned from S3 — what drives that number up?

level: middleimportance: must knowfreq 65%

basics

~20 s

Bytes scanned depends on how much of S3 Spectrum must actually read: row-based formats force whole-file reads, unpruned partitions add prefixes, selecting unused columns adds column chunks, and weak compression inflates every byte. Columnar files, partition filters and narrow projections all cut the bill.

open as a page

What is the difference between manual and automatic WLM in Amazon Redshift?

level: middleimportance: must knowfreq 70%

basics

~20 s

Manual WLM makes you define queues with a fixed concurrency level and a memory percentage each. Automatic WLM lets Redshift decide concurrency and per-query memory from the query's estimated needs, and you steer it only with query priority. AWS recommends automatic.

open as a page

How do you apply a daily batch of inserts and updates to a large Redshift fact table?

level: seniorimportance: must knowfreq 65%

basics

~20 s

COPY the batch into a staging table, reduce it to one row per key, then apply it in a single transaction with MERGE, or with DELETE ... USING followed by INSERT. Never update the fact table row by row.

open as a page

How do you prove that slow Amazon Redshift dashboards are queueing rather than executing slowly?

level: seniorimportance: must knowfreq 65%

basics

~20 s

Split each query's elapsed time into wait and run. In Redshift, STL_WLM_QUERY gives total_queue_time and total_exec_time per query, and SYS_QUERY_HISTORY exposes queue and execution time directly. High wait means a WLM problem; high run time means a query or table problem.

open as a page

How does an Amazon Redshift RA3 node with managed storage differ from a DC2 node?

level: middleimportance: should knowfreq 62%

basics

~20 s

RA3 nodes keep the authoritative copy of data in Redshift Managed Storage on S3 and use node-local SSD as a cache, so compute scales independently of data volume. DC2 stores data on node-local SSD only, so storage capacity dictates how many nodes you buy.

open as a page

In Redshift, how does an INTERLEAVED SORTKEY differ from a COMPOUND SORTKEY?

level: middleimportance: should knowfreq 58%

basics

~20 s

A Redshift compound sort key orders rows by its columns strictly left to right, so it only prunes well when the leading column is filtered. An interleaved sort key gives every listed column equal weight, helping filters on any subset, but it costs far more to maintain.

open as a page

Why does a Redshift table loaded with COPY into an empty table come out compressed?

level: middleimportance: should knowfreq 55%

basics

~10 s

Redshift applies automatic compression: when COPY loads an empty table whose columns have no explicit encoding, it samples the incoming rows, picks a compression encoding per column, applies it, and then loads the data.

open as a page

How does Redshift's COPY spread work across slices, and how should you lay out the S3 files?

level: middleimportance: should knowfreq 70%

basics

~20 s

COPY divides the S3 file list across the cluster's slices, so each slice loads its own files straight from S3. Give it many similarly sized files — ideally a multiple of the slice count — rather than one huge file, which one slice must handle alone.

open as a page

What does a Redshift UNLOAD to S3 in Parquet format actually write out?

level: middleimportance: should knowfreq 48%

basics

~20 s

Each slice writes its own Parquet file directly to S3 under the prefix you give, so one UNLOAD produces many part files in parallel. PARALLEL OFF makes it write serially into a single file instead.

open as a page

What is an Amazon Redshift federated query to RDS or Aurora, and when should you use one?

level: middleimportance: should knowfreq 40%

basics

~20 s

A federated query lets Redshift read live tables in RDS or Aurora PostgreSQL and MySQL directly, through an external schema created with FROM POSTGRES or FROM MYSQL. Use it for small, fresh operational lookups — never to scan a large transactional table.

open as a page

In Amazon Redshift manual WLM, how much memory does a query get and what happens when it needs more?

level: middleimportance: should knowfreq 55%

basics

~20 s

A query gets one slot's share: the queue's memory percentage divided evenly by its concurrency level. If its hash tables or sorts exceed that, the step spills to disk instead of failing, and the query slows down sharply.

open as a page

When would you use elastic resize versus classic resize on an Amazon Redshift cluster?

level: seniorimportance: should knowfreq 50%

basics

~20 s

Elastic resize adds or removes nodes in minutes by remapping data across the new slice count, with a short pause in query processing. Classic resize provisions a new cluster and copies the data, taking far longer with the source read-only. Prefer elastic; use classic when elastic cannot make the change you need.

open as a page

One Redshift node pegs at 100% while the others idle — how do you diagnose distribution skew?

level: seniorimportance: should knowfreq 55%

basics

~20 s

Check per-table row balance across slices with the skew_rows column of SVV_TABLE_INFO, and block counts per slice in STV_BLOCKLIST. A DISTKEY on a lumpy or NULL-heavy column sends most rows to one slice, so the whole query runs at that slice's pace.

open as a page

Why does a Redshift table's sort key stop pruning blocks after weeks of incremental loads?

level: seniorimportance: should knowfreq 52%

basics

~20 s

New rows land in an unsorted region at the end of the table rather than in sort-key order, so their blocks hold wide min/max ranges and cannot be skipped. VACUUM merges that region into the sorted region and restores pruning; ANALYZE separately refreshes the statistics.

open as a page

How does Amazon Redshift execute a join between a local table and a Spectrum external table?

level: seniorimportance: should knowfreq 50%

basics

~20 s

Spectrum's scan layer reads, projects, filters and often partially aggregates the S3 data, then streams the surviving rows to the cluster's compute nodes. The join itself always runs on the cluster, and because external tables have no distribution key those rows must be broadcast or redistributed first.

open as a page

A partitioned Redshift Spectrum external table still scans every file — how do you diagnose it?

level: seniorimportance: should knowfreq 55%

basics

~20 s

Compare total_partitions with qualified_partitions in SVL_S3PARTITION for the query. If all partitions qualify, the predicate is not usable for pruning — it names a data column, wraps the partition column in a function, mismatches its type, or arrives only via a join.

open as a page

What does concurrency scaling do on Amazon Redshift, and what must be true for it to kick in?

level: seniorimportance: should knowfreq 58%

basics

~20 s

Concurrency scaling adds transient clusters when queries start queueing, routes eligible queued queries to them, and shuts them down after the burst. It needs concurrency scaling enabled on the WLM queue, actual queueing, and an eligible query — and it never speeds up a single running query.

open as a page

How would you choose between Redshift Serverless and a provisioned RA3 cluster for a new analytics platform?

level: principalimportance: should knowfreq 44%

basics

~20 s

Redshift Serverless bills compute in RPU-seconds and scales automatically with no cluster to size, which suits spiky or intermittent workloads. A provisioned RA3 cluster suits steady, predictable load where reserved pricing and direct control over cluster shape and workload management pay off.

open as a page

How do you choose distribution keys for a Redshift schema whose fact table joins three dimensions on different columns?

level: principalimportance: should knowfreq 42%

basics

~20 s

A Redshift table has one DISTKEY, so a fact can co-locate only one join. Spend it on the join that moves the most bytes, replicate small dimensions with DISTSTYLE ALL so their joins are local anyway, and accept redistribution for the rest.

open as a page

How do you decide whether a dataset stays external in S3 or gets loaded into Redshift managed storage?

level: principalimportance: should knowfreq 45%

basics

~20 s

Drive it from query volume, not data volume. Data queried repeatedly by dashboards belongs in local Redshift storage where sort keys, distribution and materialized views apply; rarely-scanned history and data other engines must also read belongs in S3 behind Spectrum.

open as a page

How would you keep daytime BI responsive on a Redshift cluster that also runs continuous ETL?

level: principalimportance: should knowfreq 38%

basics

~20 s

Route the two workloads to separate WLM queues by user group, run automatic WLM with BI at a higher priority than ETL, enable concurrency scaling on the BI queue and monitoring rules on the ad-hoc one. When contention persists, move BI to its own compute via data sharing.

open as a page

What is AQUA in Amazon Redshift, and which kinds of queries does it help?

level: middleimportance: nice to knowfreq 20%

basics

~20 s

AQUA, the Advanced Query Accelerator, is a hardware-accelerated caching and compute layer that sits between eligible RA3 compute nodes and managed storage. It pushes scan-time filtering and simple aggregation closer to the data, so fewer rows cross the network.

open as a page

Why can one 20 GB gzipped CSV file in S3 make a Redshift Spectrum query slow?

level: middleimportance: nice to knowfreq 35%

basics

~20 s

Gzip is not splittable, so the whole file must be decompressed sequentially by a single Spectrum reader. No matter how large the cluster, one worker does all the work, and because CSV is row-based every column is decoded too.

open as a page

In Redshift, how do you keep a table fed continuously without scheduling COPY jobs yourself?

level: seniorimportance: nice to knowfreq 32%

basics

~20 s

Two managed paths. Auto-copy attaches a COPY job to an S3 prefix so Redshift loads new files as they land, tracking what it already loaded. Streaming ingestion reads a Kinesis or MSK stream through an auto-refreshing materialized view.

open as a page

showing 1–30 of 31