Pro · Lesson 5 of 9

Data loading

COPY pulls files from S3 in parallel. Zero-ETL replicates supported databases when you should not write that job.

Sign in to save your place.

Picture it this way

COPY is a loading dock. Files sit in S3. Redshift's own workers pick them up in parallel. Inserting a million rows from your laptop is a person carrying boxes through the front door. Zero-ETL is a conveyor Amazon builds from Aurora, RDS, or DynamoDB so you do not staff the dock yourself.

COPY from S3

Land files in S3 as CSV, JSON, or Parquet. Give Redshift an IAM role that can read that prefix, and attach the role to the cluster or the Serverless namespace. Do not paste long-lived keys into the SQL. A manifest file lists the objects when the folder contains extras you must not load.

COPY analytics.orders
FROM 's3://your-bucket/orders/'
IAM_ROLE 'arn:aws:iam::123456789012:role/RedshiftCopy'
FORMAT AS PARQUET;

Useful options, used on purpose: MAXERROR to tolerate a few bad lines while you inspect them, and compression that matches the files. After a large copy, confirm the row count against the source. A command that succeeds can still have skipped rows if you allowed errors.

COPY uses the warehouse's network, not yours

Your laptop can read the bucket and the COPY can still fail, because the IAM role on the warehouse is the identity that matters.

Zero-ETL when you should not build a dock

Zero-ETL integrations replicate from supported sources, including Aurora, Amazon RDS, and DynamoDB, into Redshift. Use that when the source is already on AWS and you want near-real-time tables without a COPY job. You still design distribution and sort on the Redshift side, and you still decide who may query the replica. Zero-ETL does not replace a modeled mart. It replaces the plumbing that kept the replica full.

If the source is a file drop from another company, COPY or a pipeline that writes Parquet remains the right door. Mixing both is normal: zero-ETL for operational tables, COPY for files.

Two ways in

Bulk-load files with COPY, or let a zero-ETL integration replicate a database for you.

  1. Files in S3Split and compressed
  2. COPYParallel load into a table
  3. Zero-ETLContinuous copy from Aurora, RDS or DynamoDB

Step 1 of 3Split large exports into several compressed files so every slice can load at the same time.

s3://bucket/sales/part-0001.parquet … part-0016.parquet

Practice

If you can create a bucket, write ten rows of CSV and COPY them with an IAM role. If you cannot, read a failed COPY message and name which of these it is: role, path, or file format. Those three cover most first failures.

Knowledge check

Why prefer COPY over a million inserts?

Which identity reads the S3 files during COPY?

What does zero-ETL replace?

Official sources

Checked against vendor documentation in October 2026. Screens and plan names still change, so confirm the control in your own instance.