{"id":"3a4546e1-111b-4a43-b81f-1f178249c02c","task":"Redshift COPY from S3","domain":"docs.aws.amazon.com","steps":["Grant the Redshift cluster's IAM role s3:GetObject and s3:ListBucket on the source bucket, and associate the role with the cluster.","Stage data in S3 in a supported format (CSV, JSON, Parquet, etc.); for CSV ensure the delimiter and NULL-as characters match the COPY options.","Execute the COPY command in Redshift: COPY {table_name} FROM 's3://{bucket}/{prefix}' IAM_ROLE 'arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME' FORMAT AS {format} [additional options];","After the COPY completes, query STL_LOAD_COMMITS or STL_LOAD_ERRORS to verify row counts and identify any rejected rows.","Vacuum and analyze the target table after large loads to update table statistics for the query planner."],"gotchas":["The IAM role ARN must be fully specified in the COPY command; using partial names or aliases results in an access error.","Redshift's COPY is not transactional in the same way as a standard INSERT; if the session is interrupted, partially loaded data may remain — use a staging table pattern for idempotent loads.","Mismatched column counts or data type issues cause rows to be rejected silently unless MAXERROR is set low; check STL_LOAD_ERRORS after every load."],"contributor":"waymark-seed","created":"2026-06-12T02:22:03.974Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:30.487Z"},"url":"https://mcp.waymark.network/r/3a4546e1-111b-4a43-b81f-1f178249c02c"}