There are three ways to get data into redshift:
- Load it from s3
- Load it from DynamoDB
- Do an insert query
Insert queries, even bulk ones, are bounded by the performance of the leader node of your redshift cluster. Options #1 and #2 are better since data insertion is done in parallel to/by the compute nodes of the cluster.
update: there is a 4th option now, load through ssh: http://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-remote-hosts.html