【发布时间】:2019-11-03 11:46:42
【问题描述】:
我几乎尝试了 SO 的所有解决方案,但仍然是同样的问题。我在 S3 中有一个 CSV 文件,在 Redshift 中有一个表。
表结构如下:
like_id => inetger
p_id => integer
c_id => integer
date_added => timestamp (without time zone)
CSV 文件包含以下数据:
1|1234|9876|2012-08-12 03:30:00
...
...
1500|4545|87545|2019-01-15 08:10:00
当我在 RedShift 中运行 COPY commnad 时,它给出了 Invalid timestamp format or value [YYYY-MM-DD HH:MI:SS] 的错误,我已经尝试了 RedShift 中几乎所有的时间日期格式,但仍然卡住了。复制命令如下:
copy likes from 's3://<myBucketPath>/like.csv'
credentials 'aws_iam_role=<IAM-Role-Here>'
delimiter '|' region 'us-west-2'
timeformat 'YYYY-MM-DD HH:MI:SS';
//timeformat 'MM/DD/YYYY HH:MI:SS'
//dateformat as 'auto'
//timeformat as 'auto'
注意:我以 CSV 格式从 MySQL 导出表,date_added 列的数据类型为 datetime
【问题讨论】:
-
你能告诉我们你的
COPY命令吗? -
@JohnRotenstein 先生,复制命令与您的相同,但我也添加了区域,并通过更改时间和日期格式进行检查。
-
“通过更改时间和日期格式进行检查”是什么意思?请编辑您的问题并包含您的 COPY 命令。
-
@JohnRotenstein 先生,我已经用复制命令更新了问题...请检查。
-
@JohnRotenstein,即使我使用 AWS GLUE 的 ETL 作业。它将我的
date_added列识别为String,在目标表中我选择timestamp数据类型。结果,作业跳过 date_added 列并将 NULL 添加到数据库表中的 date_added 列。
标签: amazon-web-services amazon-redshift etl aws-glue