Redshift COPY - 无错误,成功加载 0 条记录
Redshift COPY - No Errors, 0 Record(s) Loaded Successfully
我正在尝试将 CSV 文件从 S3 存储桶复制到 Redshift。当我执行命令时,我没有收到任何错误消息,但是加载不起作用。
命令:
COPY temp FROM 's3://<bucket-redacted>/<object-redacted>.csv'
CREDENTIALS 'aws_access_key_id=<redacted>;aws_secret_access_key=<redacted>'
DELIMITER ',' IGNOREHEADER 1;
回复:
Load into table 'temp' completed, 0 record(s) loaded successfully.
我试图通过系统表找出问题,但没有迹象表明存在问题。
Table定义:
CREATE TABLE temp ("id" BIGINT);
CSV 数据:
id
123,
我重复了您的说明,效果很好:
- 首先,
CREATE TABLE
- 然后,
LOAD
(来自我自己的文本文件,其中仅包含您显示的两行)
这导致:
Code: 0 SQL State: 00000 --- Load into table 'temp' completed, 1 record(s) loaded successfully.
所以,您的命令没有明显错误。
起初,我认为您的数据行末尾的逗号可能会导致 Amazon Redshift 认为有一个额外的数据列无法映射到您的 table,但它对我来说很好。尽管如此,您可以尝试删除逗号,或创建一个额外的列来存储此 'empty' 值。
您的 csv 文件中的行结尾可能没有 unix 换行符,因此 COPY 命令可能会将您的文件视为:
id123,
假设您启用了 IGNOREHEADER
选项,并且文件中的行结尾不是 COPY 所期望的(我根据过去的经验做出的假设),文件内容将被视为一行,并且然后跳过。
我在 Windows 环境中创建的一些文件发生了这种情况。
我想有一件事要记住,CSV 不是标准,更像是一种约定,不同的 products/vendors 对 csv 文件创建有不同的实现。
我正在尝试将 CSV 文件从 S3 存储桶复制到 Redshift。当我执行命令时,我没有收到任何错误消息,但是加载不起作用。
命令:
COPY temp FROM 's3://<bucket-redacted>/<object-redacted>.csv'
CREDENTIALS 'aws_access_key_id=<redacted>;aws_secret_access_key=<redacted>'
DELIMITER ',' IGNOREHEADER 1;
回复:
Load into table 'temp' completed, 0 record(s) loaded successfully.
我试图通过系统表找出问题,但没有迹象表明存在问题。
Table定义:
CREATE TABLE temp ("id" BIGINT);
CSV 数据:
id
123,
我重复了您的说明,效果很好:
- 首先,
CREATE TABLE
- 然后,
LOAD
(来自我自己的文本文件,其中仅包含您显示的两行)
这导致:
Code: 0 SQL State: 00000 --- Load into table 'temp' completed, 1 record(s) loaded successfully.
所以,您的命令没有明显错误。
起初,我认为您的数据行末尾的逗号可能会导致 Amazon Redshift 认为有一个额外的数据列无法映射到您的 table,但它对我来说很好。尽管如此,您可以尝试删除逗号,或创建一个额外的列来存储此 'empty' 值。
您的 csv 文件中的行结尾可能没有 unix 换行符,因此 COPY 命令可能会将您的文件视为:
id123,
假设您启用了 IGNOREHEADER
选项,并且文件中的行结尾不是 COPY 所期望的(我根据过去的经验做出的假设),文件内容将被视为一行,并且然后跳过。
我在 Windows 环境中创建的一些文件发生了这种情况。
我想有一件事要记住,CSV 不是标准,更像是一种约定,不同的 products/vendors 对 csv 文件创建有不同的实现。