Redshift is optimized for columnar analytics. To keep loads fast and clean, you need the right ingest path. Here are five practical ways to import CSVs into Redshift, from simple COPY to managed pipelines.
1) COPY from S3 (Recommended)
Stage CSV in S3, then run COPY—fastest and most reliable approach.
COPY public.users
FROM 's3://my-bucket/import/users.csv'
CREDENTIALS 'aws_access_key_id=...;aws_secret_access_key=...'
CSV IGNOREHEADER 1
DELIMITER ','
QUOTE '"';
- Best when: standard approach; use IAM roles instead of keys in production.
2) Redshift Query Editor v2
Web UI to run COPY commands; helpful for quick, manual loads when you already staged in S3.
- Best when: manual/one-off loads with UI comfort; small/medium files.
3) DBeaver / SQL Workbench-J
Use your DB tool to run COPY (from S3) or INSERTs for small data. Good for familiar workflows.
- Best when: developer tooling preference, moderate control, not massive files via INSERT.
4) AWS Glue / Managed Pipelines
Managed ETL to move CSV from S3 into Redshift with jobs, scheduling, and monitoring.
- Best when: recurring loads, need scheduling/monitoring, low-ops.
5) Python + redshift-connector
Full control for validation, transforms, retries, and observability.
pip install redshift-connector
import redshift_connector
conn = redshift_connector.connect(
host="redshift-cluster.xxxx.aws-region.redshift.amazonaws.com",
database="dev",
user="app",
password="secret",
port=5439,
)
with conn.cursor() as cur:
cur.execute(
"""
COPY public.users
FROM 's3://my-bucket/import/users.csv'
IAM_ROLE 'arn:aws:iam::123456789012:role/RedshiftCopyRole'
CSV IGNOREHEADER 1
DELIMITER ','
QUOTE '"'
"""
)
conn.commit()
- Best when: recurring loads, custom validation/transform, need retries/logging.
Choosing the Right Approach
- Standard/fast: COPY from S3.
- Manual UI: Query Editor v2.
- Developer tools: DBeaver/SQL Workbench-J.
- Managed/recurring: AWS Glue.
- Custom: Python + redshift-connector.
If the ingestion process begins with non-technical users uploading spreadsheets inside an application, a CSV upload interface for end users can provide a smoother entry point before the data is pushed into Redshift pipelines.
Where FileFeed Fits
When CSV imports become part of onboarding or product flows, schemas drift, validation rules grow, retries and audit logs matter, and engineers become the bottleneck. FileFeed lets you define validation, mapping, and transformations once, reuse across customers/environments, and deliver clean Redshift data without bespoke glue code.
For teams receiving partner datasets on a regular basis, the workflow often evolves into recurring SFTP data feeds that validate incoming files, normalize fields, and load structured data into Redshift tables.
Final Thoughts
Redshift works best with staged CSVs via COPY. Use UI for one-offs, pipelines for recurring. FileFeed keeps ingestion predictable so you do not rewrite the same import logic repeatedly.
Many Redshift ingestion workflows rely on staging files in object storage, so teams often explore similar patterns when importing CSV into Amazon S3 before loading the data into their warehouse.
Related resources
