This is a broad topic but I'll give a few thoughts.

First off Spectrum is a (often large) set of compute elements embedded in S3 that can do some aspect of the query plan. These part centered around applying WHERE conditions and performing aggregation (GROUP BY). There are also aspects of the query plan that cannot be perform in the S3 layer such as JOINs and advanced functions such as window functions.

The next thing to understand is that while these embedded compute elements are close to S3 in terms of access speed, the S3 service is far away from the Redshift cluster (network distance). If the large amount of data stored in S3 can be pared down to a small set that is shipped to Redshift then Spectrum can be a huge performance improvement. However, if the large amount of data stored in S3 needs to be moved to the Redshift cluster completely to perform the query then there can be a large hit to performance.

Spectrum can be a huge benefit; allowing for a very large amount of data to be filtered down quickly by a fleet of small compute elements. This can result in a big win in performance and in the amount of data that can be addressed.

With these in mind you will want to have data in Spectrum that your query plan will want to get a subset transferred from S3 to redshift. This in general will apply to your fact tables and not to your dim tables. However, if your queries aren't going to apply a WHERE clause to the fact table or aggregate the data down then you won't see the advantages. Also for this to work the WHERE clause needs to apply to a column in the fact table as JOINs cannot be done in S3 so filtering on dim columns won't help. Similarly and GROUP BY needs to be applied only on the fact table columns or this won't reduce the data coming to Redshift from S3.

So fact tables.

Data generally gets into Redshift through S3 and this can be done with the COPY command. You can also get data into Redshift from S3 using Spectrum. This can be a useful tool if other tools are also using S3 for this shared data. S3 can seem like a common data store for separate data systems. This can be useful for some data solutions.

You also bring up very large, infrequently used data. Like older historical data that is usually needed but is sometimes needed. This can be helpful in that older data can be offloaded from the Redshift cluster and the access time for this data isn't important as it is very infrequently used. There is a potential issue - The Redshift cluster can only work on a certain size of data given it's disk space and memory. So you can clog up your cluster if the amount of historical data is too large. This may mean that looking at the full set of historical data in one query may not be possible. Again if the data is aggregated or filtered in S3 this issue isn't a problem.

Bottom line - Spectrum is a great tool but isn't the right tool for every problem.

Answer from Bill Weiner on Stack Overflow
🌐
AWS
docs.aws.amazon.com › amazon redshift › database developer guide › amazon redshift spectrum
Amazon Redshift Spectrum - Amazon Redshift
Using Amazon Redshift Spectrum, you can efficiently query and retrieve structured and semi-structured data from files in Amazon S3 without having to load the data into Amazon Redshift tables. Redshift Spectrum queries employ massive parallelism to run very fast against large datasets.
🌐
AWS
docs.aws.amazon.com › amazon redshift › database developer guide › amazon redshift spectrum › getting started with amazon redshift spectrum
Getting started with Amazon Redshift Spectrum - Amazon Redshift
In this tutorial, you learn how to use Amazon Redshift Spectrum to query data directly from files on Amazon S3. If you already have a cluster and a SQL client, you can complete this tutorial with minimal setup.
Discussions

amazon web services - When to use Redshift Spectrum for your Redshift data warehouse - Stack Overflow
I am still new to Redshift service and quite confused of when to use or what data to put into Spectrum. Suppose I have star schema data warehouse on Redshift, should I put fact table or dim table i... More on stackoverflow.com
🌐 stackoverflow.com
Challenges that you want to highlight with Amazon Redshift
Even teams at AWS use snowflake now… It’s based on some old PostgreSQL 9 apis but also doesn’t support the PostgreSQL data types well so it’s a leaky abstraction. You have to manage partitions and keys. It’s sort of a disaster given other options. More on reddit.com
🌐 r/dataengineering
42
24
May 18, 2023
Amazon Redshift Spectrum - Serverless Datawarehouse
umm, while spectrum is neat, it is not serverless, you have to pay for the redshift cluster whether you are using it or not. Athena is 'serverless' in the current parlance of managed, pay for what you use model of things like dynamodb or lambda. More on reddit.com
🌐 r/aws
1
21
April 27, 2017
Should I use spectrum or redshift native?
It all depends on your query patterns. Do you touch ALL of the data in most queries? Only a few? Are there different types of queries for different teams etc? If you’re building a data warehouse that multiple analysts will use multiple times a day, then moving that data to redshift will increase performance. Now, is ALL of that data used by the analysts? It’s expensive to keep all data “hot” in redshift, especially if it’s not touched by the queries at hand. Keeping it in S3 (spectrum) virtually eliminates the cost of storing all that data in your redshift cluster but has a slight impact on performance in terms of latency. In essence, if you’re using ALL the data continuously, multiple times a day by multiple analysts, then redshift will serve you well but it will also cost you. Try to filter out the data you actually need, using AWS glue, to reduce cost. If you query the data rarely, then Athena is a great option as you can query the data directly in S3. Either way, do some ETL with Glue to create the tables you actually need, and query those tables with either Athena or redshift. More on reddit.com
🌐 r/aws
10
5
November 11, 2020
People also ask

When should I use Redshift spectrum?
Amazon Redshift Spectrum is an extension of Amazon Redshift that allows you to run queries against data stored in Amazon S3 without having to load the data into Redshift tables.
🌐
hevodata.com
hevodata.com › home › learn › data warehousing
Amazon Redshift vs Redshift Spectrum: 6 Differences in 2025
How do you use Redshift a spectrum?
Set up an IAM role, create an external schema, define external tables, and query the external tables using SQL commands.
🌐
hevodata.com
hevodata.com › home › learn › data warehousing
Amazon Redshift vs Redshift Spectrum: 6 Differences in 2025
What is the Redshift spectrum layer?
The Redshift Spectrum Layer refers to the architecture component of Amazon Redshift that enables querying data directly from Amazon S3.
🌐
hevodata.com
hevodata.com › home › learn › data warehousing
Amazon Redshift vs Redshift Spectrum: 6 Differences in 2025
🌐
AWS
docs.aws.amazon.com › amazon redshift › database developer guide › amazon redshift spectrum › amazon redshift spectrum overview
Amazon Redshift Spectrum overview - Amazon Redshift
Amazon Redshift Spectrum resides on dedicated Amazon Redshift servers that are independent of your cluster. Amazon Redshift pushes many compute-intensive tasks, such as predicate filtering and aggregation, down to the Redshift Spectrum layer. Thus, Redshift Spectrum queries use much less of your cluster's processing capacity than other queries.
🌐
AWS
aws.amazon.com › blogs › big-data › tag › amazon-redshift-spectrum
Amazon Redshift Spectrum | AWS Big Data Blog
Redshift Spectrum is a feature of Amazon Redshift that allows you to query data stored on Amazon S3 directly and supports nested data types.
🌐
Hevo
hevodata.com › home › learn › data warehousing
Amazon Redshift vs Redshift Spectrum: 6 Differences in 2025
January 12, 2026 - Amazon Redshift is one of the most ... Spectrum is an Analytical service provided by AWS that works on the data stored in Amazon S3 and provides faster results when compared to other generic solutions....
🌐
AWS
aws.amazon.com › about-aws › whats-new › 2017 › 04 › introducing-amazon-redshift-spectrum-run-amazon-redshift-queries-directly-on-datasets-as-large-as-an-exabyte-in-amazon-s3
Introducing Amazon Redshift Spectrum: Run Amazon Redshift Queries directly on Datasets as Large as an Exabyte in Amazon S3 - AWS
April 19, 2017 - With Redshift Spectrum, you can extend the analytic power of Amazon Redshift beyond data stored on local disks in your data warehouse to query vast amounts of unstructured data in your Amazon S3 “data lake” — without having to load or transform any data.
Find elsewhere
Top answer
1 of 2
9

This is a broad topic but I'll give a few thoughts.

First off Spectrum is a (often large) set of compute elements embedded in S3 that can do some aspect of the query plan. These part centered around applying WHERE conditions and performing aggregation (GROUP BY). There are also aspects of the query plan that cannot be perform in the S3 layer such as JOINs and advanced functions such as window functions.

The next thing to understand is that while these embedded compute elements are close to S3 in terms of access speed, the S3 service is far away from the Redshift cluster (network distance). If the large amount of data stored in S3 can be pared down to a small set that is shipped to Redshift then Spectrum can be a huge performance improvement. However, if the large amount of data stored in S3 needs to be moved to the Redshift cluster completely to perform the query then there can be a large hit to performance.

Spectrum can be a huge benefit; allowing for a very large amount of data to be filtered down quickly by a fleet of small compute elements. This can result in a big win in performance and in the amount of data that can be addressed.

With these in mind you will want to have data in Spectrum that your query plan will want to get a subset transferred from S3 to redshift. This in general will apply to your fact tables and not to your dim tables. However, if your queries aren't going to apply a WHERE clause to the fact table or aggregate the data down then you won't see the advantages. Also for this to work the WHERE clause needs to apply to a column in the fact table as JOINs cannot be done in S3 so filtering on dim columns won't help. Similarly and GROUP BY needs to be applied only on the fact table columns or this won't reduce the data coming to Redshift from S3.

So fact tables.

Data generally gets into Redshift through S3 and this can be done with the COPY command. You can also get data into Redshift from S3 using Spectrum. This can be a useful tool if other tools are also using S3 for this shared data. S3 can seem like a common data store for separate data systems. This can be useful for some data solutions.

You also bring up very large, infrequently used data. Like older historical data that is usually needed but is sometimes needed. This can be helpful in that older data can be offloaded from the Redshift cluster and the access time for this data isn't important as it is very infrequently used. There is a potential issue - The Redshift cluster can only work on a certain size of data given it's disk space and memory. So you can clog up your cluster if the amount of historical data is too large. This may mean that looking at the full set of historical data in one query may not be possible. Again if the data is aggregated or filtered in S3 this issue isn't a problem.

Bottom line - Spectrum is a great tool but isn't the right tool for every problem.

2 of 2
2

In general, put everything into 'normal' Amazon Redshift.

Redshift Spectrum is handy for accessing data stored in Amazon S3 without having to load it into the Redshift cluster, but it will not be as fast as accessing data stored in 'normal' Redshift.

Therefore, it is useful for rarely-accessed data or for one-off queries on a dataset without having to import the data into Redshift.

Do not use Spectrum as part of your normal ETL flow. One exception to this might be if you are receiving 'landing' data via Amazon S3 (eg Seed Files) -- rather than importing the tables into Redshift, they could be referenced via Spectrum. However, normal loading tools such as Fivetran can load the data directly into Redshift, which is preferable to using Spectrum.

🌐
AWS
aws.amazon.com › blogs › big-data › amazon-redshift-spectrum-extends-data-warehousing-out-to-exabytes-no-loading-required
Amazon Redshift Spectrum Extends Data Warehousing Out to Exabytes—No Loading Required | Amazon Web Services
February 15, 2021 - We built Redshift Spectrum to end this “tyranny of OR.” With Redshift Spectrum, Amazon Redshift customers can easily query their data in Amazon S3. Like Amazon EMR, you get the benefits of open data formats and inexpensive storage, and you can scale out to thousands of nodes to pull data, filter, project, aggregate, group, and sort.
🌐
AWS
aws.amazon.com › blogs › aws › amazon-redshift-spectrum-exabyte-scale-in-place-queries-of-s3-data
Amazon Redshift Spectrum – Exabyte-Scale In-Place Queries of S3 Data | Amazon Web Services
November 3, 2022 - You can use Spectrum to run complex queries on data stored in Amazon Simple Storage Service (Amazon S3), with no need for loading or other data prep. You simply create a data source and issue your queries to your Redshift cluster as usual.
🌐
AWS
docs.aws.amazon.com › amazon redshift › database developer guide › amazon redshift spectrum › amazon redshift spectrum query performance
Amazon Redshift Spectrum query performance - Amazon Redshift
The Amazon Redshift query planner pushes predicates and aggregations to the Redshift Spectrum query layer whenever possible. When large amounts of data are returned from Amazon S3, the processing is limited by your cluster's resources. Redshift Spectrum scales automatically to process large requests.
🌐
AWS
aws.amazon.com › blogs › big-data › 10-best-practices-for-amazon-redshift-spectrum
Best Practices for Amazon Redshift Spectrum | Amazon Web Services
December 2, 2022 - Amazon Redshift Spectrum enables you to run Amazon Redshift SQL queries on data that is stored in Amazon Simple Storage Service (Amazon S3). With Amazon Redshift Spectrum, you can extend the analytic power of Amazon Redshift beyond the data ...
🌐
Medium
jelizaveta-malinina.medium.com › amazon-redshift-spectrum-cb3bb8591d2e
Amazon Redshift Spectrum - Liza Malinina
February 19, 2020 - If I had to put its definition into one sentence, I would say: “RS Spectrum is a feature within AWS Redshift data warehouse service that allows you to run fast, complex analysis on data stored in Amazon S3 buckets”. In other words, it eliminates ...
🌐
TechTarget
techtarget.com › searchaws › definition › Amazon-Redshift-Spectrum
What is Amazon Redshift Spectrum? | Definition from TechTarget
Amazon Redshift Spectrum is a feature within Amazon Web Services' RedShift data warehousing service that lets a data analyst conduct fast, complex analysis on objects stored on the AWS cloud.
🌐
Integrate.io
integrate.io › home › blog › big data › what is amazon redshift spectrum?
What is Amazon Redshift Spectrum? | Integrate.io
July 21, 2025 - A lot of data lies inert, in “cold” data lakes, unavailable for analysis. Also called “dark data”, it can hold key insights for enterprises. But the problem is, how do businesses access dark data for analysis in a scalable, efficient manner? That’s where Amazon Redshift Spectrum comes in.
🌐
AWS
docs.aws.amazon.com › amazon redshift › database developer guide › amazon redshift spectrum › amazon redshift spectrum overview › amazon redshift spectrum limitations
Amazon Redshift Spectrum limitations - Amazon Redshift
Redshift Spectrum doesn't support enhanced VPC routing with provisioned clusters. To access your Amazon S3 data, you might need to perform additional configuration steps.
🌐
AWS
docs.aws.amazon.com › aws prescriptive guidance › query best practices for amazon redshift › best practices for using amazon redshift spectrum
Best practices for using Amazon Redshift Spectrum - AWS Prescriptive Guidance
The Amazon Redshift query planner pushes predicates and aggregations to the Redshift Spectrum query layer whenever possible. When large amounts of data are returned from Amazon S3, the processing is limited by your cluster's resources. Because Redshift Spectrum scales automatically to process large requests, your overall performance improves whenever you can push processing to the Redshift Spectrum layer.
🌐
AWS
aws.amazon.com › blogs › big-data › use-amazon-redshift-spectrum-with-row-level-and-cell-level-security-policies-defined-in-aws-lake-formation
Use Amazon Redshift Spectrum with row-level and cell-level security policies defined in AWS Lake Formation | Amazon Web Services
December 16, 2022 - Amazon Redshift Spectrum is a feature of Amazon Redshift that enables you to query data from and write data back to Amazon S3 in open formats. You can query open file formats such as Parquet, ORC, JSON, Avro, CSV, and more directly in Amazon ...
🌐
Hevodata
cdn.hevodata.com › whitepapers › A Complete Guide On Amazon Spectrum.pdf pdf
A COMPLETE GUIDE ON REDSHIFT SPECTRUM Redshift Spectrum
Spectrum scales thousands of instances based on query issued. The · queries can refer any combination of data stored in Redshift cluster and · S3 i.e. Redshift tables/views, columnar files, CSV files or S3 files of all ... In a nutshell, Amazon Redshift Spectrum is directly reading data from S3.