Overview
AWS Redshift is a cloud-based relational database service optimized for online analytical processing (OLAP) workloads. Launched in 2012 by Amazon Web Services, it focuses on enabling rapid query performance against large datasets, ranging from gigabytes to petabytes. The service is designed for applications requiring complex analytical queries, such as business intelligence dashboards, real-time analytics, and operational reporting. Redshift uses columnar storage and parallel processing to accelerate query execution, differing from traditional row-oriented transactional databases.
Redshift offers two primary deployment models: Redshift Serverless and Redshift Provisioned Clusters. Redshift Serverless automatically provisions and scales data warehousing capacity, allowing users to run analytics without managing infrastructure. For precise control over cluster configuration and performance, Redshift Provisioned Clusters allow users to select node types and sizes. Both options support integration with other AWS services, including Amazon S3 for data lakes via Redshift Spectrum, and AWS Glue for ETL processes.
Developers primarily interact with Redshift using SQL for data definition, manipulation, and querying. The service supports standard SQL and integrates with various SQL clients and business intelligence tools. Its architecture is built for scalability, allowing users to expand compute and storage resources independently. Redshift ML extends its capabilities by enabling the creation, training, and deployment of machine learning models directly within the data warehouse using SQL commands, simplifying predictive analytics workflows without requiring specialized ML expertise.
Redshift's suitability extends to scenarios requiring high-performance analytics on vast amounts of data, often combined with data originating from diverse sources. Its data lake integration capabilities allow querying data stored in Amazon S3 directly, without needing to load it into Redshift, which can optimize storage costs and simplify data architecture for hybrid analytical workloads. Organizations use Redshift to power enterprise data warehouses, drive predictive analytics initiatives, and consolidate data for comprehensive reporting.
Key features
- Columnar Storage: Stores data in a column-oriented format, which can reduce I/O operations and accelerate analytical query performance by reading only the necessary columns.
- Massively Parallel Processing (MPP): Distributes data and query processing across multiple nodes and cores, enabling parallel execution of complex analytical queries.
- Redshift Serverless: Provides an on-demand, auto-scaling data warehousing option that automatically provisions and scales compute capacity, allowing users to pay only for the compute used. Users can learn more about this on the AWS Redshift Serverless page.
- Redshift Provisioned Clusters: Offers dedicated clusters with configurable node types (e.g., RA3, DC2) for predictable performance and custom resource management.
- Redshift Spectrum: Allows querying data directly from files stored in Amazon S3 without loading it into Redshift, facilitating data lake integration and reducing data movement. Detailed information is available in the Redshift Spectrum documentation.
- Redshift ML: Enables developers to create, train, and deploy machine learning models using SQL within Redshift, simplifying the integration of ML into data analytics workflows.
- Concurrency Scaling: Automatically adds temporary capacity to handle bursts in query demand, ensuring consistent performance during peak times.
- Data Sharing: Facilitates secure sharing of live data across Redshift clusters and AWS accounts without copying data, enabling collaboration and data monetization.
- Automated Backups and Snapshots: Provides automatic and incremental backups to Amazon S3, enabling point-in-time recovery and disaster recovery capabilities.
Pricing
AWS Redshift pricing is structured around compute capacity, storage, and data transfer. The models vary based on whether Redshift Serverless or Redshift Provisioned Clusters are used. As of May 2026, a free trial is available for new users.
| Service Component | Pricing Model | Details (as of May 2026) | Free Tier / Trial |
|---|---|---|---|
| Redshift Serverless Compute | Pay-as-you-go | Billed per Redshift Processing Unit (RPU) hour. Minimum 30-minute charge. | 2 months free trial (up to 750 RPU-hours/month) |
| Redshift Provisioned Clusters (On-Demand) | Per node hour | Billed per hour for each node, varies by instance type (e.g., RA3, DC2). | 2 months free trial (750 hours/month for DC2.Large node) |
| Managed Storage (RA3 nodes) | Per GB-month | Separate charge for managed storage (RA3 nodes automatically scale storage independently). | Included with trial limits |
| Data Storage (DC2 nodes) | Included with compute | Storage is local to the cluster nodes. | Included with trial limits |
| Redshift Spectrum | Per TB scanned | Billed per terabyte of data scanned from Amazon S3. | No specific free tier, standard S3 pricing applies for underlying data. |
| Data Transfer | Per GB | Standard AWS data transfer rates apply (inbound typically free, outbound charged). | Standard AWS free tiers for data transfer |
For current and detailed pricing information, refer to the official AWS Redshift Pricing page.
Common integrations
- Amazon S3: For data lake integration using Redshift Spectrum to query data directly from S3, or for loading data into Redshift. Documentation on COPY command from S3.
- AWS Glue: For ETL (Extract, Transform, Load) operations, creating data catalogs, and preparing data for Redshift. The AWS Glue documentation provides details on Redshift integration.
- Amazon Kinesis: For real-time data ingestion into Redshift, enabling live analytics and dashboards. Information is available in the Redshift streaming ingestion documentation.
- Amazon RDS/Aurora: For connecting to operational databases as sources for data warehousing, using tools like AWS Data Migration Service or custom ETL.
- Amazon QuickSight: AWS's business intelligence service for creating dashboards and visualizations from Redshift data. Refer to the QuickSight Redshift connection guide.
- Tableau, Power BI: Third-party business intelligence tools that connect to Redshift via JDBC/ODBC drivers for data visualization and reporting.
- AWS Lambda: For serverless event-driven processing, often used to trigger data loading or transformation tasks related to Redshift.
Alternatives
- Snowflake: A cloud data platform offering a unique architecture that separates compute and storage, providing flexibility and scalability for various workloads.
- Google BigQuery: A fully managed, serverless enterprise data warehouse that enables rapid SQL queries against petabytes of data using Google's infrastructure.
- Databricks Lakehouse Platform: Combines elements of data lakes and data warehouses, built on open-source technologies like Apache Spark, aiming to unify data, analytics, and AI.
Getting started
To begin using AWS Redshift, developers typically provision a cluster or utilize the serverless option, then connect using a SQL client. The following Python example demonstrates connecting to a Redshift cluster using the psycopg2 library and executing a simple query. This example assumes you have a Redshift cluster configured and its connection details (host, port, database, user, password).
import psycopg2
import os
# Redshift connection details from environment variables or direct configuration
REDSHIFT_HOST = os.environ.get('REDSHIFT_HOST', 'your-redshift-cluster.xxxx.us-east-1.redshift.amazonaws.com')
REDSHIFT_PORT = os.environ.get('REDSHIFT_PORT', '5439')
REDSHIFT_DB = os.environ.get('REDSHIFT_DB', 'dev')
REDSHIFT_USER = os.environ.get('REDSHIFT_USER', 'awsuser')
REDSHIFT_PASSWORD = os.environ.get('REDSHIFT_PASSWORD', 'YourStrongPassword123')
try:
# Establish connection to Redshift
conn = psycopg2.connect(
host=REDSHIFT_HOST,
port=REDSHIFT_PORT,
database=REDSHIFT_DB,
user=REDSHIFT_USER,
password=REDSHIFT_PASSWORD
)
conn.autocommit = True # Auto-commit changes
# Create a cursor object
cur = conn.cursor()
# Example: Create a table if it doesn't exist
print("Creating table 'employees' if it doesn't exist...")
cur.execute("""
CREATE TABLE IF NOT EXISTS employees (
id INT IDENTITY(1,1),
first_name VARCHAR(128),
last_name VARCHAR(128),
hire_date DATE
);
""")
print("Table 'employees' created or already exists.")
# Example: Insert data into the table
print("Inserting sample data...")
cur.execute("INSERT INTO employees (first_name, last_name, hire_date) VALUES ('John', 'Doe', '2023-01-15');")
cur.execute("INSERT INTO employees (first_name, last_name, hire_date) VALUES ('Jane', 'Smith', '2022-06-01');")
print("Sample data inserted.")
# Example: Query data from the table
print("Querying data from 'employees'...")
cur.execute("SELECT id, first_name, last_name, hire_date FROM employees ORDER BY id;")
rows = cur.fetchall()
print("Employees:")
for row in rows:
print(f"ID: {row[0]}, Name: {row[1]} {row[2]}, Hire Date: {row[3]}")
# Clean up (optional): Drop the table
# print("Dropping table 'employees'...")
# cur.execute("DROP TABLE IF EXISTS employees;")
# print("Table 'employees' dropped.")
except psycopg2.Error as e:
print(f"Error connecting to Redshift or executing query: {e}")
finally:
# Close the cursor and connection
if 'cur' in locals() and cur:
cur.close()
if 'conn' in locals() and conn:
conn.close()
print("Connection closed.")
This script demonstrates the fundamental steps: establishing a connection, executing DDL (Data Definition Language) for table creation, DML (Data Manipulation Language) for data insertion, and DQL (Data Query Language) for retrieving data. For more advanced interactions, consider using AWS SDKs for managing Redshift clusters and integrating with other AWS services, as detailed in the AWS Redshift Getting Started Guide.