尽管有效数据,Redshift上的COPY总是失败,并带有时间戳错误

阿米尔普

我有无法通过COPY导入到我的redshift集群中的数据:

"piXKfqz9e54V6n799BYnKSsc2nI="|"e45a2fb9-d0a1-4ffe-bb55-5e91548fbd79"|"\\N"|"2016-08-06 12:34:49"|"2016-08-06 12:34:49"|"impression"|"e45a2fb9-d0a1-4ffe-bb55-5e91548fbd79"|"marketplace_server"|"\\N"|"\\N"|"\\N"|"\\N"|"\\N"|"\\N"|"\\N"|"\\N"|"\\N"|"\\N"|"\\N"|"\\N"|"/lead_dyno/visit_store/140409475"|"lead_dyno"|"visit_store"|"140409475"|"lead_dyno"|"\\N"|"2607:fb90:6847:e17b:1304:2a57:e797:80ed"|"\\N"|"Mozilla/5.0 (Linux; Android 6.0; LGMS631 Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537.36"

错误是:

Invalid timestamp format or value [YYYY-MM-DD HH24:MI:SS]

该字段是第四个字段,其值:

"2016-08-06 12:34:49"

我基本上已经尝试过尝试通过COPY导入的每个标志:

copy event from 's3://bucket/test-manifest' credentials 'aws_access_key_id=<KEY>;aws_secret_access_key=<SECRET>' removequotes gzip manifest NULL AS '\\N';

我尝试添加

timeformat 'auto'
timeformat 'YYYY-MM-DD HH24:MI:SS' dateformat 'YYYY-MM-DD'
timeformat 'YYYY-MM-DD HH24:MI:SS'
timeformat 'YYYY-MM-DD HH:MI:SS'

我真的不知道有什么方法可以获取该行,而且我也看不到任何错误。

有什么想法吗?

大数据孩子

我认为您的错误不是由于格式化。我使用复制语句测试了您的数据,并且在我第一次尝试时就可以使用。也许清单文件的语法,表的DDL,文件在S3中的位置。

我只是使用您的数据进行了测试,结果很好。

将我的文件与您的文件进行比较,可能会帮助您找到问题所在。

这是我使用的:

我的表DDL在这里:

CREATE TABLE tba (
 text1 varchar(256) NULL
,text2 varchar(256) NULL
,text3 varchar(256) NULL
,date01 timestamp NULL
,date02 timestamp NULL
,text4 varchar(256) NULL
) DISTSTYLE EVEN;

这些是我的data1.txt文件的内容

"piXKfqz9e54V6n799BYnKSsc2nI="|"e45a2fb9-d0a1-4ffe-bb55-5e91548fbd79"|"\\N"|"2016-08-06 12:34:49"|"2016-08-06 12:34:49"|"impression"

这是我的data1清单文件

{
  "entries": [
    {"url":"s3://<<my-bucket>>/data1.txt", "mandatory":true}
  ]
}

这是我的复制声明(基本上是从您那里复制并粘贴)

copy tba from 's3://rocha-dev/data1-manifest' credentials 
'aws_access_key_id=<<mykey>>;aws_secret_access_key=<<my-secret>>' removequotes  manifest NULL AS '\\N';

下面是从我的PSQL窗口复制的,该窗口显示成功执行:

dev=# CREATE TABLE tba (
dev(#  text1 varchar(256) NULL
dev(# ,text2 varchar(256) NULL
dev(# ,text3 varchar(256) NULL
dev(# ,date01 timestamp NULL
dev(# ,date02 timestamp NULL
dev(# ,text4 varchar(256) NULL
dev(# ) DISTSTYLE EVEN;
CREATE TABLE


dev=# copy tba from 's3://<<my-bucket>>/data1-manifest' credentials 'aws_access_key_id= <<my-key>>; aws_secret_access_key=<<my-secret>>' removequotes  manifest NULL AS '\\N'; 
INFO:  Load into table 'tba' completed, 1 record(s) loaded successfully.
COPY


dev=# select * from tba;
            text1             |                text2                 | text3 |       date01        |       date02        |   text4    
------------------------------+--------------------------------------+-------+---------------------+---------------------+------------
 piXKfqz9e54V6n799BYnKSsc2nI= | e45a2fb9-d0a1-4ffe-bb55-5e91548fbd79 | \\N   | 2016-08-06 12:34:49 | 2016-08-06 12:34:49 | impression
(1 row)

我的声明与您的声明之间唯一的实质区别是我没有使用gzip,因为我只有一条记录要加载。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章