【问题标题】:stl_load_errors returning invalid timestamp format I can't figure outstl_load_errors 返回无效的时间戳格式我无法弄清楚
【发布时间】:2018-10-06 01:28:22
【问题描述】:

我正在尝试使用 copy 函数在 Redshift 中创建一个表。我已经将这个在我的模式中一直失败的特定字段设置为标准timestamp,因为我不知道为什么会这样。但是当我运行这个语句时:

copy sample_table
from 's3://aws-bucket/data_push_2018-10-05.txt'
                       credentials 'aws_access_key_id=XXXXXXXXXXXXXXXXXXXX;aws_secret_access_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/XXX'
                       dateformat 'auto'
                       ignoreheader 1; 

一直返回这个错误:Invalid timestamp format or value [YYYY-MM-DD HH24:MI:SS]

raw_field_value:"2018-08-29 15:04:52"

raw_line:12039752|311525|"67daf211abbe11e8b0010a28385dd2bc"|98953|"2018-08-20"|"2018-11-30"|"active"|"risk"|||||||"sample"|15750|0|"2018-08-29 15:04:52"|"2018-08-29 16:05:01"

我们的数据库中有一个非常相似的表(我没有创建),它具有上述错误值 timestamp 并且该字段的值与 2018-08-29 15:04:52 相同,所以当我运行它时发生了什么导致问题?

【问题讨论】:

    标签: postgresql amazon-web-services type-conversion amazon-redshift


    【解决方案1】:

    您的复制命令似乎没问题,并且您似乎缺少 FORMAT as CSV QUOTE AS '"'DELIMITER AS '|' 参数,它应该可以工作。

    我在这里使用一些示例数据和命令来证明我的情况,为了简单起见,我确实简化了表格并涵盖了所有数据点。

    create table sample_table(
        salesid integer not null,
        category varchar(100),
        created_at timestamp,
        update_at timestamp );
    

    这是您的示例数据test_file.csv

    12039752|"67daf211abbe11e8b0010a28385dd2bc"|"2018-08-29 11:04:52"|"2018-08-29 14:05:01"
    12039754|"67daf211abbe11e8b0010a2838cccddbc"|"2018-08-29 15:04:52"|"2018-08-29 16:05:01"
    12039755|"67daf211abbe11e8b0010a28385ff2bc"|"2018-08-29 12:04:52"|"2018-08-29 13:05:01"
    12039756|"67daf211abbe11e8b0010a28385bb2bc |"2018-08-29 10:04:52"|"2018-08-29 15:05:01"
    

    这是你的复制命令,

    COPY sample_table FROM 's3://path/to/csv/test_file.csv'  CREDENTIALS 'aws_access_key_id=XXXXXXXXXXX;aws_secret_access_key=XXXXXXXXX'   FORMAT as CSV  QUOTE AS '"'  DELIMITER AS '|';
    

    它会返回,

    INFO:  Load into table 'sample_table' completed, 4 record(s) loaded successfully.
    COPY
    

    虽然此命令运行良好,但如果您的数据有更多问题,您也可以尝试MAXERROR 选项。

    希望它能回答你的问题。

    【讨论】:

      猜你喜欢
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 2021-11-30
      相关资源
      最近更新 更多