如何从 SQL 脚本执行 AWS S3 到 Redshift Copy 命令?

Posted

技术标签:

【中文标题】如何从 SQL 脚本执行 AWS S3 到 Redshift Copy 命令?【英文标题】:How to execute AWS S3 to Redshift Copy command from SQL script? 【发布时间】:2017-09-12 09:33:12 【问题描述】:

我正在尝试使用复制命令将一些文件从 S3 复制到 Redshift。我通过 SQL 工作台使用了以下命令,它运行良好,它将数据复制到 Redshift Table。

copy <Redshift table name> 
from 's3://my-bucket/path/to/directory/part' 
iam_role 'arn:aws:iam::<IAM ROLE>' 
delimiter '|'  dateformat 'auto' IGNOREHEADER AS 1;

但是当我将相同的命令复制到 .sql 文件并尝试使用 AWS 数据管道执行此 SQL 文件时,管道只是失败而没有给出任何明确的错误。

由于内部开发的管道定义生成工具存在一些问题,我无法使用CopyToRedshift 类型的活动。

我想知道如何从文件中执行这个复制命令?

【问题讨论】:

【参考方案1】:

试试这个!!

复制表名

来自 S3File_PATH

凭证“*AWS 凭证”

忽略标题为 1

接受字符

分隔符'|'

这个复制命令应该从一个 sql 文件中工作。如果没有尝试检查 stl_load_error_details 中的任何错误

【讨论】:

以上是关于如何从 SQL 脚本执行 AWS S3 到 Redshift Copy 命令?的主要内容,如果未能解决你的问题,请参考以下文章

用于将数据从AWS S3加载到Redshift的Python脚本

将文件从 Mac (iCloud) 保存到 S3 存储桶 (AWS) 的脚本

将文件从 GCS 复制到 AWS S3 时如何设置 acl?

如何在 aws s3 存储桶和云端执行从非 www 到 www 的 301 重定向

AWS Glue - 从 sql server 表中读取并作为自定义 CSV 文件写入 S3

何时通过 AWS Glue ETL 使用 Amazon Redshift 频谱来查询 Amazon S3 数据