Pro · Lesson 8 of 9
Query the lake with Spectrum, share Redshift tables without copying them, and choose Serverless or RA3 from the workload.
Sign in to save your place.
Spectrum is a window onto files that stay in S3. Redshift asks AWS Glue what the files mean, then reads them for the query. Data sharing is two Redshift warehouses looking at one set of tables without copying them. Serverless is a way to pay for the reading. Iceberg is a table format those files can use when your region and warehouse support it.
An external schema points at a Glue database. External tables describe files in S3. Spectrum queries those files without loading them first. Use it for data you rarely need, or for a lake you already trust. Do not use it for the dashboard that runs every five minutes on a petabyte of raw JSON. Load or materialize that slice.
Where Apache Iceberg is supported, you can query Iceberg tables registered in the Glue Data Catalog. Confirm support for your region and warehouse version before you design around it. Iceberg gives the lake a table with snapshots. Spectrum is still the reader. Neither one fixes a bad distribution on a table you loaded inside Redshift.
CREATE EXTERNAL SCHEMA lake
FROM DATA CATALOG
DATABASE 'analytics_lake'
IAM_ROLE 'arn:aws:iam::123456789012:role/RedshiftSpectrum'
REGION 'us-east-1';
SELECT COUNT(*) FROM lake.events;Data sharing lets a producer warehouse share selected objects with a consumer warehouse, including across accounts. The consumer queries live data. You do not COPY it. Govern the share the way you govern a login: list the objects, name the consumer, and review it. A share is not a backup.
| Need | Reach for | Do not expect |
|---|---|---|
| Files that should stay in S3 | Spectrum, or Iceberg when supported | Local sort keys on the file |
| Another Redshift team needs the same tables | Data sharing | A silent full copy |
| Bursty SQL and no node babysitting | Serverless | A fixed RA3 bill |
| Steady heavy SQL you can size | RA3 provisioned | Scale-to-zero |
Zero-ETL, from the loading lesson, can land operational tables inside the producer. Data sharing can then publish the modeled tables to a consumer. That is a current pattern: replicate in, model, share out.
Query files in S3, read another team's tables, or pay only while queries run.
Step 1 of 3Redshift Spectrum queries Parquet files in S3 through an external schema, without loading them first.
CREATE EXTERNAL SCHEMA lake FROM DATA CATALOG
DATABASE 'lake' IAM_ROLE default;
Step 2 of 3Data sharing lets another cluster or workgroup read your live tables without copying them.
CREATE DATASHARE sales_share;
ALTER DATASHARE sales_share ADD TABLE public.sales;
Step 3 of 3Redshift Serverless charges for capacity (RPU-hours) only while queries run. Base capacity sets how much it starts with.
Workgroup → Base capacity: 8 RPU
Write one sentence for a dataset you know: does it belong in a local table, a Spectrum or Iceberg table, or a data share? The right answer names who updates it and how often it is read. If you cannot say, it is not ready to move.
Checked against vendor documentation in October 2026. Screens and plan names still change, so confirm the control in your own instance.